Skip to content

22010176/dtdm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bước 1: Tạo VPC

Tạo VPC.

Truy cập vào trang VPC để tạo VPC. alt text

Khi vào trang giao diện, chọn Create VPC. alt text

Ở đây, chọn VPC and more. Đặt tên theo ý muốn bản thân, còn lại giữ nguyên các cài đặt mặc định của VPC. Sau đó ấn Create VPC alt text

Sau khi tạo xong, ấn View VPC. alt text

Kiểm tra xem Resource map có giống như trên hình ảnh không. Thế là tạo thành công VPC cho dự án.

Tạo Security Group.

Truy cập trang Security Group để tạo Security Group cho dự án. alt text

Chọn Create security group. Đặt tên Security GroupDescription theo ý muốn bản thân. Sau đó phần VPC chọn cái vừa tạo lúc nãy. alt text

Phần Inbound rules, chọn Add Rule. Phần Type chọn All trafic, phần Source chọn Anywhere-IPv4. Làm thêm một cái nữa cho Anywhere-IPv6. alt text

Không nên để cấu hình Inbound Rules như trên vì sẽ cho phép tất cả lưu lương internet truy cập vào dịch vụ AWS.

Phần Outbound rules, làm tương tự như trên. alt text

Kéo xuống dưới cuối trang, ấn Create security group để tạo Security group. Ẫn xong, ta sẽ có giao diện: alt text

Xong bước 1 là tạo VPC.

Bước 2: Tạo EC2

Tạo Key Pair để kết nối SSH

Truy cập trang Key Pairs để tạo Key Pair. Ấn Create key pair. alt text

Ta đặt tên cho Key pair rồi ấn Create key pair. Để cài đặt giống như ảnh. alt text

Trang web sẽ tải về cho ta một tệp tin chưa key. Ta sẽ sử dụng nó sau. Thế là xong bước tạo Key pair

Khởi tạo EC2

Try cập Trang Instances để tạo EC2. Sau khi truy cập, ta chọn Launch instances. alt text

Name and tags.

Phần này là phần đặt tên cho EC2. Ta có thể chọn tên gì mà ta muốn. alt text

Application and OS Images (Amazon Machine Image).

Phần này là nơi ta chọn hệ điều hành cho EC2, có thể là windows, linux hoặc ubuntu, tùy vào mục đích sử dụng của chúng ta. Bài tập này, mục đích sử dụng chính là để kết nối với RDS nên giữ nguyên là Amazon Linux. Phần Amazon Machine Image, chọn Amazon Linux 2023 AMI. Tiếp theo là Architecture, ta chọn 64-bit (x86). alt text

Instance type.

Phần này, ta sẽ chọn cấu hình phần cứng cho EC2. Ta sẽ sử dụng t2.micro. alt text

Key pair (login).

Phần Key pair giúp ta kết nối với EC2 thông qua SSH. Ta sẽ sử dụng key tạo vừa nãy. alt text

Network settings.

Phần này cho ta cấu hình mạng của EC2. Ta chọn Edit.

  1. VPC: chọn VPC tạo ở phần trên.
  2. Subnet: chọn 1 trong 2 Public Subnet.
  3. Auto-assign public IP: chọn Enable để hệ thống tự động gán địa chi IPv4 cho EC2.
  4. Firewall (security groups): chọn Select existing security group. Sau đó chọn Security group tạo ở trên. alt text

Configure storage.

Ta giữ nguyên, không cần thay đổi gì cả. alt text

Advanced details.

Ta cũng giữ nguyên. alt text

Sau khi chọn các cài đặt trên. Ta ấn Launch instance. alt text

Thế là xong bước tạo EC2.

Bước 3: Tạo Amazon RDS

Tạo cơ sở dữ liệu

Ta truy cập trang Trang Amazon RDS để tạo cơ sở dữ liệu. Sau khi truy cập, ta chọn Create database. alt text

Choose a database creation method

Ta chọn Standard create. alt text

Engine options

Ta chọn MySQL. Phần Engine version, ta chọn phiên bản 8.0.x. alt text alt text

Templates

Ta chọn Free tier. alt text

Availability & durability

Ta không cần để ý. alt text

Settings

  • DB instance identifier: ta đặt tên theo ý muốn.
  • Credentials Settings: (tự chọn)
    • Master username: admin
    • Master password: admin123

alt text

Instance configuration

Ta giữ nguyên cài đặt của Amazon. alt text

Storage

Ta giữ nguyên cài đặt. alt text

Connectivity

  • Compute resource: chọn Connect to an EC2 compute resource
  • EC2 instance: chọn EC2 vừa tạo ban nãy.
  • VPC security group (firewall): chọn security group tạo ở phần VPC.
  • Còn lại: giữ nguyên.

alt text alt text alt text

Tags - optional

Ta giữ nguyên. alt text

Database authentication

Ta giữ nguyên. alt text

Monitoring

Ta giữ nguyên. alt text

Additional configuration

Ta giữ nguyên. alt text

Sau đó ta ấn Create database và chờ nó tạo xong.

Kết nối với RDS thông qua MySQL Workbench

Để tiếp tục, yêu cầu có MySql Workbench cài đặt trên máy tính. Nếu chưa có thì cài đặt. Nếu đã cài đặt, ta sẽ mở nó ra và thiết lập kết nối với RDS trên AWS. Mở ra, cạnh MySQL Connections, ta chọn nút +. alt text

Nó sẽ hiện thị ra một cửa số. Ở chỗ Connection Method, chọn Standard TCP/IP over SSH

SSH Hostname là địa chỉ IP của EC2 thiết lập ban nãy. Ta sao chép ở Public IPv4 address.
alt text

SSH Usernameec2-user
SSH Password ta bỏ qua.
SSH Key File ta sẽ điền địa chỉ file key pair ta tải về ở bước trước.
MySql Hostname là endpoint của RDS.
MySql Server Port là cổng của RDS.
Username là tên ta đặt ở phần cài đặt RDS.
Sau khi cài đặt, ta sẽ có bảng thông tin như sau: alt text

Sau đó ta điền mật khẩu và tạo kết nối. Tiếp theo mở file thiết lập cơ sở dữ liệu chứa trong thư mục database và chạy nó. alt text

Sau bước này là ta đã hoàn thành thiết lập cơ sở dữ liệu. alt text

Bước 4: Tạo Lambda Function

Tạo Lambda Layer

Bước này giúp ta có thể thêm các dependencies cần thiết của Lambda Function.

Chuẩn bị mã nguồn cho Layer

Ta truy cập trang Lambda Function. Ta chọn Create layer. alt text

Tùy vào môi trường ta dùng để code mà sẽ có cách thêm layer khác nhau. Ta có thể tham khảo thêm ở trang này. Ở dự án này, ta sẽ xử dùng nodejs để phát triển trên Lambda Function.

Truy cập folder chứa mã nguồn của Lambda Function alt text

Ta tạo một tệp mới tên là nodejs và sao chép tệp node_modules và đặt nó vào trong tệp nodejs vừa tạo. Sau đó ta nén lại thành file zip. Folder sẽ có dạng
nodejs.zip

  • nodejs/
    • node_modules/
      • dependenccies1/
      • dependenccies2/
      • ...
      • dependencciesN/

alt text

Thế là hoàn thành bước đầu tiên.

Tạo layer.

Ta quay lại trang trên. Ta chọn Create layer.

Name: ta đặt tên cho layer.
Upload: ta chọn Upload a .zip file rồi ấn Upload và tải file zip trên lên.
Compatible architectures - optional: ta chọn x86_64.
Compatible runtimes - optional: ta chọn Node.js 20.x.
Sau đó ta ấn Create. alt text

Tạo Lambda Funciton

Ta truy cập trang Lambda Function và chọn Create function. alt text

Khởi tạo Function.

Chọn Author from scratch.
Function name: ta đặt tên cho function. Runtime: ta chọn Node.js 20.x. Architecture: ta chọn x86_64.
Change default execution role: ta không thay đổi gì cả. alt text

Additional Configurations

  • Enable VPC:
    • VPC: chọn VPC ta vừa tạo ở bước trên.
    • Subnets: chọn 4 cái subnet ta tạo ban đầu.
    • Security groups: chọn cái security group ta tạo ban đầu.

alt text alt text

Sau đó ta ấn Create function.

Chuẩn bị mã nguồn cho Function.

Ta ấn vào Layers, trang web sẽ điều hướng ta đến phần Layers. Ta chọn Add a layer. alt text alt text

Ở đây, ta chọn Custom layers, chọn layers ta vừa tạo ban nãy. Chọn version đầu tiên. Sau đó chọn Add. alt text

Ở phần trên, ta chọn Upload from và chọn .zip file. Sau đó ta chọn tệp .zip chứa mã nguồn của lambda function. alt text

Tiếp theo, ta chọn Configuration và chọn Environment variables. alt text

Sau đó ta chọn Edit rồi ấn Add environment variable. alt text

Ta điền tương ứng key với value sau:

  • db_host: <endpoint RDS>
  • db_user: admin
  • db_password: admin123
  • db_database: btl

alt text

Kết nối Lambda Function với Amazon RDS

Ta quay lại trang RDS, tìm cơ sở dữ liệu vừa tạo ban nãy. Tìm phần Connected compute resources và chọn Actions, chọn Set up Lambda connection. alt text

Select Lambda function

  • Chọn Choose existing function.
  • Chọn Lambda Function tạo ở trên.

alt text

RDS Proxy Chọn như ở ảnh: (passwordadmin123) alt text

Connection summary là giải thích các bước AWS thực hiện để kết nối với Lambda. Có thể đọc để hiểu hơn. alt text

Ta chọn Set up để tạo kết nối.

Kiểm tra kết nối

Ta quay lại trang chứa thông tin Lambda Funciton ta tạo lúc nãy. alt text

Ta chọn Test và chọn Configure test event. Nó sẽ hiện thị giao diện: alt text

Ta thêm dòng code sau vào trong Event JSON.

{
  "body-json": {},
  "params": {
    "path": {},
    "querystring": {
      "table": "rom"
    },
    "header": {}
  },
  "stage-variables": {},
  "context": {
    "http-method": "GET",
    "resource-path": "/thuoc-tinh"
  }
}

Sau đó ta ấn Invoke. alt text

Nếu nó hiện thị kết quả sau thì là đã thành công: alt text

Bước 4: Tạo Amazon API Gateway

Tạo Restful API

Khởi tạo API

Truy cập trang API Gateway, chọn BuildREST API. alt text alt text

Chọn New API.
API name: đặt tên cho API.
API endpoint type: chọn Regional.
Sau đó ấn Create API. alt text

Ta sẽ có giao diện sau: alt text

Khởi tạo resource

Ta chọn Create resource. Chọn tên cho đường dẫn, ở đây ta đặt tên là thuoc-tinh. Sau đó bật CORS (Cross Origin Resource Sharing). Sau đó chọn Create resource. alt text

Sau khi tạo xong resource trên, ta làm tương tự với 2 resource san-phamcau-hinh. alt text

Khởi tạo method

thuoc-tinh, ta chọn Create method. alt text

Ta sử dụng các cài đặt sau:

  • Method type: GET
  • Integration type: Lambda function
  • Lambda function: Lambda Function tạo ở bước trước.
  • Integration timeout: giữ nguyên.
  • Method request settings: giữ nguyên.
  • URL query string parameters: giữ nguyên.
  • HTTP request headers: giữ nguyên.
  • Request body: giữ nguyên.

Sau đó chọn Create method. alt text alt text

Ta chọn Get ở phần /thuoc-tinh, chọn Integration request, chọn Edit. alt text

Thay đổi ở:

  • Request body passthrough: chọn When there are no templates defined (recommended).
  • Mapping templates:
    1. Chọn Add mapping template.
    2. Content type: application/json.
    3. Generate template: Method request passthrough.

Sau đó ấn Save. alt text alt text

Ta vào Test. Phần Query strings đánh table=rom. alt text

Nếu kết quả chạy ra như thế này thì thành công: alt text

{
  "body": [
    {
      "ma": "a",
      "ten": "4GB",
      "trangthai": 1
    },
    {
      "ma": "b",
      "ten": "8GB",
      "trangthai": 1
    },
    {
      "ma": "c",
      "ten": "12GB",
      "trangthai": 1
    }
  ],
  "message": "Success",
  "event": {
    "body-json": {},
    "params": {
      "path": {},
      "querystring": {
        "table": "rom"
      },
      "header": {}
    },
    "stage-variables": {},
    "context": {
      "account-id": "688567306327",
      "api-id": "lb4dviezfc",
      "api-key": "test-invoke-api-key",
      "authorizer-principal-id": "",
      "caller": "688567306327",
      "cognito-authentication-provider": "",
      "cognito-authentication-type": "",
      "cognito-identity-id": "",
      "cognito-identity-pool-id": "",
      "http-method": "GET",
      "stage": "test-invoke-stage",
      "source-ip": "test-invoke-source-ip",
      "user": "688567306327",
      "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36 Edg/129.0.0.0",
      "user-arn": "arn:aws:iam::688567306327:root",
      "request-id": "4d18e1d2-5178-4362-a9c8-66babe73c9d3",
      "resource-id": "lwg4xg",
      "resource-path": "/thuoc-tinh"
    }
  }
}

Làm tương tự với các Method PUT , POST, DELETE. Sau khi xong, ta sẽ có giao diện: alt text

Sau đó ta chọn /thuoc-tinh, chọn Enable CORS. alt text

Cài đặt:

  • Access-Control-Allow-Methods: ta chọn hết.
  • Additional settings
    • Access-Control-Allow-Credentials: chọn cái này.

Sau đó, ta ấn Save. alt text alt text

Sau đó, ta kiểm tra theo thứ tự: PUT, POST, DELETE.
Để kiểm tra hàm có hoạt động không, paste code dưới đây vào Request body, Query strings để table=rom

PUT POST DELETE
{ "ten": "test"} { "ma":"a", "ten":"6GB"} { "ma":"a"}

Làm tương tự với các resource trên. Sau khi hoàn thành: alt text

Sau đó, ta ấn Deploy API.

  • Stage, chọn *New stage*.
  • Stage name: đặt tên mình muốn.

alt text

Hoàn thành ta sẽ có như dưới. Ta copy Invoke URL và đặt nó vào trong dự án code. alt text

Bước 5: Tạo S3 Bucket

Tạo S3 bucket

Vào trang S3 để tạo một S3 bucket mới. Chọn Create bucket. alt text

Các cài đặt ta sử dụng:

  • Bucket name: userID-<tên bucket> (688567306327-project).
  • Object Ownership: ACLs disabled (recommended).
  • Block Public Access settings for this bucket: tắt Block all public access.

Các cái không đề cập thì sẽ giữ nguyên. alt text alt text alt text alt text alt text

Sau khi tạo xong, ta truy cập vào bucket. alt text

Chọn Upload và tải code trang web lên trên bucket. alt text

Sau khi ấn upload và tải tệp tin lên, ta ấn Upload: alt text

Sau khi tải xongn, ta vào phần Properties, kéo xuống cuối và chọn Static website hosting. Chọn Edit alt text

Sau đó, ta để các cài đặt sau:

  • Static website hosting: chọn Enable.
  • Hosting type: Host a static website.
  • Index document: index.html
  • Error document: index.html

Sau đó ấn Save changed. alt text

Sang Permissions, ta tìm Bucket policy, Ấn Edit. alt text

Ấn Add new statement. alt text

Ta điền code ở dưới rồi ấn Save changes

{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Sid": "Statement1",
			"Principal": "*",
			"Effect": "Allow",
			"Action": [
				"s3:GetObject"
			],
			"Resource": [
		    "arn:aws:s3:::688567306327-project/*"
			]
		}
	]
}

Sau bước trên, ta có thể truy cập trang web thông qua url cung cấp ở chỗ Properties, Static website hosting alt text

Bước 6: Tạo Amazon CloudFront

Truy cập CloudFront, chọn Create a CloudFront distribution. alt text

Các cài đặt:

  • Origin domain: link lấy ở S3, Static website hosting.
  • Enable Origin Shield: Yes (ap-southeast-1).
  • Default cache behavior:
    • Viewer protocol policy: Redirect HTTP to HTTPS.
    • Allowed HTTP methods: GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE.
  • Web Application Firewall (WAF): Do not enable security protections.
  • Settings:
    • Default root object: index.html.

Sau đó ấn Create Distribution

Bước 7: Kiểm tra chức năng trang web

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors