Skip to content
Go back

[AWS] Amazon Elastic Container Service (ECS)

Updated:  at  02:30 AM

Bài viết được tham khảo và tổng hợp lại từ Jayendra’s Blog, xem bài viết gốc ở đây: https://jayendrapatil.com/aws-ecs.

AWS Elastic Container Service (ECS) là dịch vụ quản lý container giúp chạy, dừng và quản lý các container trên cụm EC2 hoặc AWS Fargate. ECS hỗ trợ Docker và tích hợp sâu với hệ sinh thái AWS.

Table of contents

Open Table of contents

ECS Kiến Trúc & Thành Phần Chính

📌 ECS Cluster – Nhóm tài nguyên để chạy container (EC2 hoặc Fargate).

📌 Task Definition – Định nghĩa cấu hình container (image, CPU, RAM, network, volumes).

📌 Task – Một đơn vị triển khai container, chạy một hoặc nhiều container theo Task Definition.

📌 Service – Quản lý và scale số lượng Task theo yêu cầu.

📌 Container Agent – Chạy trên EC2 để kết nối với ECS và quản lý container.

📌 Launch Type – Cách chạy container:

ECS Cluster

🔹 ECS Cluster là nhóm tài nguyên compute để chạy container.

🔹 Có thể sử dụng EC2 (do người dùng quản lý) hoặc Fargate (AWS quản lý).

🔹 Cluster có thể chứa nhiều loại instances khác nhau để tối ưu tài nguyên.

ECS Task & Task Definition

🔹 Task Definition: Định nghĩa container (image, CPU, RAM, volumes, network).

🔹 Task: Một instance của Task Definition, có thể chứa nhiều container.

📌 Ví dụ Task Definition JSON:

{
  "family": "my-task",
  "containerDefinitions": [
    {
      "name": "my-container",
      "image": "nginx",
      "memory": 512,
      "cpu": 256,
      "portMappings": [
        {
          "containerPort": 80,
          "hostPort": 80
        }
      ]
    }
  ]
}

ECS Service

🔹 Service giúp chạy và duy trì số lượng Task theo yêu cầu.

🔹 Hỗ trợ Auto Scaling, Load Balancer, Deployment Strategy (Rolling Update, Blue/Green).

ECS Networking & Load Balancing

🔹 ECS hỗ trợ Bridge, Host, AWS VPC Networking Mode.

🔹 Có thể dùng Application Load Balancer (ALB) hoặc Network Load Balancer (NLB).

ECS Scaling & Auto Scaling

🔹 Service Auto Scaling – Tự động scale số lượng Task theo CPU, Memory, hoặc custom metric.

🔹 Cluster Auto Scaling – Tự động scale số lượng EC2 instances.

🔹 Spot Instances – Giảm chi phí bằng cách chạy ECS trên Spot Instances.

ECS Security

🔹 IAM Roles – ECS cần IAM Role để quản lý quyền truy cập tài nguyên AWS.

🔹 Security Groups – Kiểm soát truy cập inbound/outbound traffic.

🔹 Encryption – Hỗ trợ AWS KMS để mã hóa dữ liệu.

ECS Logging & Monitoring

🔹 Amazon CloudWatch Logs – Lưu logs của container.

🔹 AWS X-Ray – Theo dõi request flow trong ứng dụng.

🔹 CloudWatch Metrics – Giám sát CPU, RAM, network.

ECS Use Cases – Ứng Dụng Thực Tế

Microservices – ECS giúp deploy các microservices với scaling linh hoạt.

Machine Learning – Chạy container để xử lý dữ liệu AI/ML.

Big Data Processing – Kết hợp với S3, Kinesis để xử lý dữ liệu lớn.

Continuous Deployment – ECS kết hợp với CodePipeline để triển khai CI/CD.

So sánh ECS vs EKS vs Fargate

FeatureECS (EC2 Launch Type)ECS (Fargate)EKS (Kubernetes)
Quản lý ServerTự quản lý EC2AWS quản lýTự quản lý EC2
ScalingAuto ScalingAuto ScalingKubernetes Scaling
Tích hợp AWSRất tốtRất tốtHạn chế hơn
Chi phíCao hơn (phải quản lý EC2)Chỉ trả tiền cho containerTốn phí quản lý EKS
Quản lý phức tạpDễRất dễPhức tạp hơn

🔹 Tổng Kết


Suggest Changes

Previous Post
[AWS] Amazon Machine Image (AMI)
Next Post
[AWS] EC2 Enhanced Networking