0
0
Lập trình
TT

Hướng Dẫn Toàn Diện về Containers Trên AWS với Amazon ECS và EKS

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

• 3 phút đọc

Amazon ECS - Dịch Vụ Quản Lý Containers Trên AWS

Kiểu Khởi Chạy EC2 (EC2 Launch Type)

Khi bạn khởi chạy Docker container trên AWS, điều này đồng nghĩa với việc bạn đang khởi chạy ECS tasks trên ECS cluster. Với kiểu khởi chạy EC2, bạn cần cung cấp và quản lý cơ sở hạ tầng của mình. Mỗi EC2 instance cần chạy một ECS agent để đăng ký với ECS cluster.

Kiểu Khởi Chạy Fargate (Fargate Launch Type)

Với kiểu khởi chạy Fargate, bạn không cần phải tự cung cấp và quản lý cơ sở hạ tầng. Đây là một giải pháp serverless, nơi ECS sẽ tự động chạy các ECS tasks dựa trên yêu cầu về CPU và RAM của bạn. Để mở rộng quy mô, bạn chỉ cần tăng số lượng tasks.

IAM Role cho ECS

EC2 Instance Profile (chỉ dành cho EC2 Launch Type)

EC2 Instance Profile được sử dụng bởi ECS Agent, cho phép tạo API calls đến ECS, gửi log của containers đến CloudWatch, kéo ảnh container từ ECR, và tham chiếu đến thông tin trong Secret Manager hoặc Parameter Store.

ECS Task Role

Mỗi task trong ECS có thể có một role riêng, giúp cho từng task có thể thực hiện những công việc khác nhau. Task role này được định nghĩa trong Task Definition.

Bộ Cân Bằng Tải (Load Balancer)

Amazon Elastic Load Balancing (ALB) được hỗ trợ và có thể sử dụng trong hầu hết các tình huống. Network Load Balancer (NLB) được đề xuất cho các trường hợp cần tốc độ throughput cao và hiệu suất tốt. Classic Load Balancer cũng được hỗ trợ nhưng không được khuyến khích sử dụng.

Volume Dữ Liệu (Data Volume)

EFS (Elastic File System) có thể làm việc với cả EC2 Launch Type và Fargate Launch Type. Các tasks chạy trên nhiều Availability Zone (AZ) có thể chia sẻ dữ liệu với nhau. Sự kết hợp giữa Fargate và EFS tạo ra một giải pháp serverless hoàn chỉnh. Lưu ý rằng S3 không thể được sử dụng như một hệ thống lưu trữ dữ liệu mount.

Tự Động Mở Rộng (Auto Scaling)

Bạn có thể tự động điều chỉnh số lượng các ECS tasks thông qua Application Auto Scaling. Có ba loại metric có thể được sử dụng để tự động mở rộng:

  • Độ sử dụng CPU trung bình của dịch vụ ECS
  • Độ sử dụng bộ nhớ trung bình của dịch vụ ECS
  • Số lượng yêu cầu từ ALB cho mỗi mục tiêu

Các kiểu mở rộng:

  • Target Tracking: mở rộng dựa trên một metric cụ thể trong CloudWatch
  • Step Scaling: mở rộng dựa trên một CloudWatch Alarm cụ thể
  • Scheduled Scaling: mở rộng dựa trên thời gian cụ thể

Kiến Trúc Giải Pháp ECS

ECS Tasks được kích hoạt bởi EventBridge

ECS Tasks được kích hoạt theo lịch trình từ EventBridge

ECS và SQS

Gửi thông báo về sự thay đổi trạng thái của task

Amazon EKS - Dịch Vụ Quản Lý Kubernetes trên AWS

Amazon EKS là dịch vụ cho phép chạy containers Kubernetes được quản lý bởi AWS. Dịch vụ này tương tự như ECS với cùng mục tiêu nhưng khác API. EKS hỗ trợ hai chế độ khởi chạy: EC2 instance launch mode và Fargate launch mode. Trong đó, EKS pods tương đương với ECS tasks, và EKS Nodes tương đương với ECS services. Với AWS Fargate, bạn không cần phải quản lý bất kỳ node nào.

Loại Node (Node Types):

  • Managed Node Groups: AWS sẽ tự động tạo và quản lý nodes cho người dùng. Các node này là một phần của Auto Scaling Group (ASG) và chỉ hỗ trợ on-demand hoặc spot instances.
  • Self Manage Nodes: Các node được tạo bởi người dùng và đăng ký vào EKS để quản lý bởi ASG. Loại node này hỗ trợ on-demand hoặc spot instances.

Volume Dữ Liệu trong EKS

Để sử dụng volume cho dữ liệu, bạn cần định nghĩa StorageClass manifest trên EKS cluster. Kết hợp với các driver tuân thủ Container Storage Interface. EKS hỗ trợ các loại volume như EBS, EFS (được sử dụng cho Fargate), FSx for Lustre và FSx for NetApp ONTAP.
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