[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.
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.
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.
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
ECS solution architecture
ECS tasks invoked by EventBridge
ECS tasks invoked by EventBridge Schedule
ECS + SQS
Gửi thông báo về sự thay đổi trạng thái của task
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