0
0
Lập trình
Admin Team
Admin Teamtechmely

Hướng Dẫn Triển Khai Hệ Thống AWS ECS Bằng AWS CLI (Phần 1)

Đăng vào 3 tuần trước

• 4 phút đọc

Tổng Quan

Trong bài viết này, chúng ta sẽ cùng khám phá cách triển khai một hệ thống hoàn chỉnh trên Amazon Web Services (AWS) thông qua Command Line Interface (CLI) của AWS. Hệ thống này bao gồm các thành phần chính như:

  • Application Load Balancer (ALB): Phân phối tải cho ứng dụng.
  • Amazon ECS (Elastic Container Service): Quản lý các ứng dụng container hóa trên AWS.
  • Amazon RDS (Relational Database Service): Dịch vụ cơ sở dữ liệu quan hệ quản lý.
  • AWS Secrets Manager: Quản lý và bảo mật thông tin nhạy cảm.

Việc sử dụng AWS CLI không chỉ mang lại trải nghiệm thú vị mà còn giúp bạn làm quen với các lệnh và nguyên tắc hoạt động của các dịch vụ AWS.

Kiến Trúc Hệ Thống

Giới Thiệu Các Dịch Vụ AWS Sử Dụng

Amazon ECS (Elastic Container Service)

  • Dịch vụ quản lý ứng dụng container hóa, cho phép triển khai và mở rộng các container Docker trên các máy chủ EC2.

Amazon RDS (Relational Database Service)

  • Cung cấp khả năng triển khai và quản lý cơ sở dữ liệu quan hệ như PostgreSQL, MySQL,... Sẽ được sử dụng trong hệ thống của chúng ta.

Amazon ALB (Application Load Balancer)

  • Phân phối tải cho các ứng dụng dựa trên nội dung yêu cầu HTTP/HTTPS để tăng tính hiệu quả và độ tin cậy.

AWS Secrets Manager

  • Dịch vụ bảo mật giúp lưu trữ và quản lý các thông tin nhạy cảm như thông tin đăng nhập và khóa API.

Cài Đặt Và Cấu Hình AWS CLI

Tổng Quan

AWS CLI là công cụ giúp bạn tương tác với các dịch vụ AWS qua dòng lệnh. Điều này cho phép bạn thực hiện các tác vụ một cách dễ dàng và linh hoạt hơn.

Tra Cứu Lệnh AWS CLI

  • Trên Terminal: Sử dụng từ khóa help hoặc ? để tìm kiếm lệnh. Ví dụ: aws s3 help, aws s3 ?.
  • Trên Web Browser: Trang tài liệu chính thức của AWS CLI cung cấp thông tin chi tiết và hướng dẫn.

Cài Đặt AWS CLI

Dưới đây là hướng dẫn cài đặt AWS CLI V2 trên hệ điều hành Linux:

bash Copy
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
rm -rf awscliv2.zip aws/install
aws --version

Cấu Hình AWS CLI

Bạn cấu hình AWS CLI bằng lệnh sau:

bash Copy
aws configure

Nhập các thông tin cần thiết:

  • Access Key ID
  • Secret Access Key
  • Region
  • Default output format

Tệp cấu hình sẽ được lưu trữ tại ~/.aws/config~/.aws/credentials.

Kiểm Tra Cấu Hình

Sử dụng lệnh sau để kiểm tra các thông số đã cấu hình:

bash Copy
aws configure list

Cấu Hình Terminal

Công Cụ JQ

jq là công cụ hữu ích cho việc xử lý dữ liệu JSON từ dòng lệnh. Cài đặt trên Ubuntu:

bash Copy
sudo apt install jq -y

Công Cụ Tee

tee cho phép bạn lần lượt đọc và ghi dữ liệu vào nhiều tệp. Cài đặt trên Ubuntu:

bash Copy
sudo apt install tee -y

Biến Môi Trường

Sử dụng biến môi trường để lưu trữ các giá trị thường dùng:

bash Copy
project=workshop2
region=ap-southeast-1
# ...

Tạo Instance Profile cho EC2

Tổng quan

AWS Instance Profile giúp gán IAM Role cho EC2 để truy cập các dịch vụ AWS một cách an toàn.

Quy Trình

  1. Tạo IAM Role:
bash Copy
ecs_instance_role_name="$project-ecs-instance-role"
aws iam create-role \
... 
  1. Gán policy cho IAM Role:
bash Copy
aws iam attach-role-policy \
... 
  1. Tạo IAM instance profile:
bash Copy
aws iam create-instance-profile \
... 
  1. Thêm Role vào Instance profile:
bash Copy
aws iam add-role-to-instance-profile \
... 
  1. Lấy thông tin Instance Profile:
bash Copy
ecs_instance_profile_arn=$(aws iam get-instance-profile \
... 

Tạo EC2 Keypair

Tổng quan

Key Pair bao gồm một khóa công khai và một khóa riêng tư, được sử dụng để xác thực khi kết nối tới một Amazon EC2 instance.

Quy trình

Tạo keypair bằng lệnh:

bash Copy
aws ec2 create-key-pair \
... 

Quyền Kết Nối

Cần thiết lập quyền cho tệp key riêng tư:

bash Copy
chmod 400 key.pem

Tạo Elastic Container Registry

Tổng quan

Amazon ECR giúp quản lý và lưu trữ ảnh Docker container cho sử dụng với ECS, EKS hoặc các dịch vụ khác.

Quy trình

  1. Tạo ECR Repository:
bash Copy
aws ecr create-repository \
... 
  1. Xác thực vào ECR:
bash Copy
aws ecr get-login-password \
... 
  1. Tải Source Code:
bash Copy
# Download source
  1. Tạo Docker image:
bash Copy
docker build -t $ecr_name .
  1. Đặt tag cho image:
bash Copy
docker tag ...
  1. Push image lên ECR:
bash Copy
docker push ...
  1. Pull image từ ECR:
bash Copy
docker pull ...

Tạo Mạng

Tổng quan

Mạng AWS VPC cho phép bạn tạo không gian mạng ảo cho các tài nguyên AWS.

Quy trình

  1. Tạo VPC:
bash Copy
vpc_id=$(aws ec2 create-vpc \
... 
  1. Tạo Subnet:
bash Copy
# Tạo public và private subnet.
  1. Tạo Internet Gateway:
bash Copy
gateway_id=$(aws ec2 create-internet-gateway \
... 
  1. Tạo và kết nối Route Table:
bash Copy
# Tạo route table cho public và private subnet.

Tạo Security Group

Tổng quan

Security Group hoạt động như một tường lửa ảo cho EC2.

Quy trình

  1. Tạo Security Group cho Instance:
bash Copy
ecs_instance_sgr_id=$(aws ec2 create-security-group \
... 
  1. Tạo Security Group cho RDS:
bash Copy
rds_sgr_id=$(aws ec2 create-security-group \
... 
  1. Tạo Security Group cho ALB:
bash Copy
alb_sgr_id=$(aws ec2 create-security-group \
... 

Kết thúc phần 1

Trong phần này, chúng ta đã chuẩn bị và cài đặt các dịch vụ cần thiết cho triển khai ứng dụng lên ECS trong phần tiếp theo. Chúng ta sẽ tập trung vào việc triển khai RDS, SecretsManager, ALB và ECS.
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào