Monday, July 8, 2024

[AWS-] Amazon ECS – Auto Scaling

-

ECS Service Auto Scaling

Amazon ECS Auto Scaling là một tính năng giúp tự động tăng hoặc giảm số lượng các ECS tasks theo nhu cầu sử dụng thực tế của ứng dụng. Amazon ECS Auto Scaling sử dụng AWS Application Auto Scaling để thực hiện việc này.

Có nhiều phương pháp để tự động điều chỉnh số lượng tasks bao gồm:

  • ECS Service Average CPU Utilization: điều chỉnh số lượng tasks dựa trên CPU sử dụng trung bình của các tasks trong service.
  • ECS Service Average Memory Utilization: điều chỉnh số lượng tasks dựa trên RAM sử dụng trung bình của các tasks trong service.
  • ALB Request Count Per Target: điều chỉnh số lượng tasks dựa trên số lượng request mà Application Load Balancer (ALB) nhận được cho mỗi target.
  • Target Tracking: tự động điều chỉnh số lượng tasks để đạt được giá trị mục tiêu cho một metric cụ thể trong CloudWatch.
  • Step Scaling: điều chỉnh số lượng tasks dựa trên CloudWatch Alarm đã thiết lập.
  • Scheduled Scaling: điều chỉnh số lượng tasks theo lịch trình đã được thiết lập trước đó.

Ngoài ra, ECS Service Auto Scaling hoạt động ở mức task level, khác với EC2 Auto Scaling hoạt động ở mức EC2 instance level. Việc cấu hình Fargate Auto Scaling dễ dàng hơn do tính Serverless của Fargate.

EC2 Launch Type – Auto Scaling EC2 Instances

Để tăng khả năng mở rộng của ECS Service, có thể thêm các EC2 Instances phía sau. Có hai cách để thực hiện điều này: thông qua Auto Scaling Group hoặc Capacity Provider của ECS Cluster.

Với Auto Scaling Group Scaling, ta sẽ tăng số lượng EC2 instances thông qua Auto Scaling Group khi CPU Utilization tăng lên. Điều này cho phép thêm EC2 instances theo thời gian, đáp ứng tốt với nhu cầu sử dụng của ECS Service.

Trong khi đó, ECS Cluster Capacity Provider được sử dụng để tự động cung cấp và mở rộng cơ sở hạ tầng cho các ECS Tasks. Khi ta thiết lập Capacity Provider kết hợp với Auto Scaling Group, ta có thể thêm các EC2 Instances khi thiếu năng lực (CPU, RAM,…) cho các tasks của mình. Khi ta không cần sử dụng đến các tasks, thì ta có thể giảm số lượng EC2 instances lại để tiết kiệm chi phí.

ECS Scaling – Service CPU Usage Example

ECS Scaling – Service CPU Usage Example là một cách tự động điều chỉnh số lượng task của Amazon ECS dựa trên mức sử dụng CPU của dịch vụ. Nếu mức sử dụng CPU vượt quá ngưỡng đã định trước, nó sẽ tự động thêm thêm các task mới vào cluster để đáp ứng nhu cầu về tài nguyên. Nếu mức sử dụng CPU giảm xuống dưới ngưỡng đã định trước, nó sẽ tự động giảm số lượng các task để giảm chi phí.

Ví dụ, nếu bạn có một dịch vụ web trên Amazon ECS và nó đang chạy một số lượng task nhất định, nếu lưu lượng truy cập tăng đột biến và CPU của các task hiện có đạt tới 80% trong một khoảng thời gian, ECS sẽ tự động tăng số lượng task lên để giải quyết việc này. Ngược lại, nếu lưu lượng truy cập giảm và CPU của các task hiện có giảm xuống dưới một ngưỡng nhất định, ECS sẽ tự động giảm số lượng task để giảm chi phí về tài nguyên.

Đây là một cách tự động, linh hoạt và tiết kiệm chi phí để quản lý các tài nguyên trên Amazon ECS.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories