ASG (Auto Scaling Group)

3 phút đọcSeries: NoteBook: AWS Certified Solutions Architect Associate SAA-C031 lượt xem

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?