0

[SAP C02] Containers on AWS

Amazon ECS

EC2 Lauch Type

Việc lauch docker container trên aws đồng nghĩa với việc lauch ECS tasks trên ECS cluster. Với EC2 lauch type bạn phải cung cấp và quản lý infra. Mỗi EC2 instance phải chạy một ECS agent để đăng ký với ECS cluster.

image.png

Farget Lauch Type

Với kiểu lauch này bạn không cần phải tự cung cấp và quản lý infrastructure, nó là serverless. ECS sẽ chạy ECS tasks cho bạn dựa vào CPU/RAM mà bạn muốn. Để scale chỉ cần tăng số lượng task.

image.png

IAM role for ECS

EC2 Instance Profile (EC2 lauch type only)

Được sử dụng bởi ECS Agent.Tạo API calls đến ECS, gửi containers log đến CloudWatch logs, pull container image từ ECR,tham chiếu đến các dữ liệu ở secret manager hoặc parameter store.

ECS Task role

Cho phép mỗi task có một role riêng. Việc này giúp từng task có thể thực hiện các công việc khác nhau. Task role được định nghĩa ở Task Definition.

Load Balancer

ALB được hỗ trợ và có thể sử dụng trong hầu hết các trường hợp. NLB được đề xuất trong trường hợp cần high throughput và high performance. Classic Load Balancer được hỗ trợ nhưng không được khuyến khích.

Screenshot 2025-02-09 at 18.00.09.png

Data Volume

EFS có thể làm việc được với cả EC2 lauch type và Fargate lauch type. Task ở nhiều AZ sẽ chia sẻ dữ liệu với nhau. Fargate + EFS = serverless. Cần lưu ý là S3 không thể được sử dụng như một data mount system.

Auto Scaling

Ta có thể tự động tăng hoặc giảm số lượng các ECS task sử dụng Application Auto Scaling. Có 3 loại metric có thể được sử dụng:

  • ECS service average CPU ultilization
  • ECS service average Memory ultilization
  • ALB Request Count per target

Một số kiểu scaling:

  • Target Tracking: scale dựa trên metric cụ thể ở CloudWatch
  • Step Scaling: scale dựa trên CloudWatch Alarm cụ thể
  • Scheduled Scaling: scale dựa trên thời gian

Screenshot 2025-02-09 at 18.27.19.png

ECS solution architecture

ECS tasks invoked by EventBridge

Screenshot 2025-02-09 at 18.31.00.png

ECS tasks invoked by EventBridge Schedule

Screenshot 2025-02-09 at 18.33.08.png

ECS + SQS

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

Screenshot 2025-02-09 at 18.36.52.png

Amazon EKS

Là dịch vụ giúp chạy kubernetes container được quản lý bởi aws. Nó tương tự như ECS, cùng mục tiêu nhưng khác API. Nó có 2 lauch mode là EC2 instance lauch mode và fargate lauch mode. EKS pods = ECS tasks, EKS Node = ECS service. Với Aws Fargate không cần quản lý node nào cả.

**Node types : **

  • Managed Node Groups: Tạo và quản lý nodes giúp người dùng, Node là một phần của ASG được quản lý bởi AKS. Nó chỉ hỗ trợ on-demand hoặc spot instances.
  • Self Manage Nodes: Các node được tạo bởi người dùng, đăng ký đến EKS và quản lý bởi ASG. Hỗ trợ on-demand hoặc spot instances.

Data Volume

Cần phải định nghĩa StorageClass manifest on EKS cluster. Leverage Container Storage Interface compliant driver. Hỗ trợ EBS, EFS(loại duy nhất được dùng cho Fargate) , FSx for Lustre and FSx for NetApp ontap.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí