ASG (Auto Scaling Group)

Tổng quan

- Trong thực tế, tải (load) trên website và ứng dụng của bạn có thể thay đổi.
- Trên nền tảng đám mây, bạn có thể tạo và loại bỏ server một cách nhanh chóng.
- Mục tiêu của một Auto Scaling Group (ASG) là:
- Scale out (thêm các EC2 instance) để đáp ứng khi tải tăng lên.
- Scale in (loại bỏ các EC2 instance) khi tải giảm xuống.
- Đảm bảo rằng số lượng EC2 instance luôn nằm trong giới hạn tối thiểu và tối đa đã được cấu hình.
- Tự động tạo lại EC2 instance nếu một instance bị terminate (ví dụ: do không còn "healthy").
- Tự động đăng ký các instance mới với load balancer.

- ASG là miễn phí, bạn chỉ cần trả tiền cho các EC2 instance đang chạy.
Các thuộc tính của Auto Scaling Group
- Launch Template (lưu ý: Launch Configurations cũ đã bị deprecated):
- AMI + Instance Type: Amazon Machine Image và loại instance EC2.
- EC2 User Data: Script/command chạy khi instance khởi tạo.
- EBS Volumes: Cấu hình ổ đĩa lưu trữ (Elastic Block Store).
- Security Groups: Nhóm bảo mật cho instance.
- SSH Key Pair: Khóa để SSH vào EC2 instance.
- IAM Roles for your EC2 Instances: Gán IAM role cho instance.
- Network + Subnets Information: Thông tin mạng và subnet để triển khai.
- Load Balancer Information: Thông tin load balancer để gán instance vào.
- Min Size / Max Size / Initial Capacity:
- Số lượng instance tối thiểu, tối đa và số lượng khởi tạo ban đầu.
- Min Size:
- Đây là số lượng EC2 tối thiểu mà Auto Scaling Group phải luôn duy trì.
- Không bao giờ scale-in thấp hơn
Min Size.
- Initial Capacity (Desired Capacity):
- Là số lượng EC2 instance được khởi tạo ban đầu khi bạn vừa tạo ASG.
- Nó chỉ ảnh hưởng ở thời điểm tạo, sau đó thì Scaling Policies sẽ can thiệp.
- Nếu bạn không set rõ thì nó sẽ default bằng Min Size.
- Tưởng tượng thực tế:
- Bạn mở 1 sàn TMĐT cho đợt flash sale.
- Bạn dự đoán load ban đầu là cao → bạn không muốn khởi tạo 2 EC2 (Min Size), rồi chờ CloudWatch alarm phát hiện CPU cao để scale ra → vì nó sẽ delay vài phút.
- Bạn muốn có 5 EC2 ngay từ đầu để kịp đáp ứng ngay.
- Scaling Policies:
- Các chính sách mở rộng/thu hẹp tự động dựa trên metric (ví dụ: CPU, network...).
Auto Scaling – CloudWatch Alarms và Scaling
- Có thể thực hiện scale Auto Scaling Group (ASG) dựa trên các cảnh báo (alarm) từ CloudWatch.
- Một alarm sẽ giám sát một chỉ số (metric), ví dụ như:
- Average CPU, hoặc
- Một custom metric do người dùng định nghĩa.
- Các metric như Average CPU được tính toán trên toàn bộ các EC2 instance thuộc ASG (tức là lấy trung bình các instance hiện có).
- Dựa trên alarm, chúng ta có thể:
- Tạo scale-out policy: tăng số lượng EC2 instance.
- Tạo scale-in policy: giảm số lượng EC2 instance.

- Phía bên trái là Auto Scaling Group, gồm nhiều EC2 instance.
- Khi một CloudWatch Alarm được kích hoạt (ví dụ: CPU trung bình vượt ngưỡng), nó sẽ trigger một hành động scale:
- Nếu vượt ngưỡng cao → scale out.
- Nếu dưới ngưỡng thấp → scale in.
Bạn thấy bài này thế nào?