Amazon EC2 Auto Scaling
Tự thêm/bớt máy
Tự động tăng hoặc giảm số lượng EC2 theo tải hoặc lịch, và thay thế instance bị lỗi.
- Chi phí$ Rẻ
- Độ khó●●●●●
- Để không có tốn tiền?Không
- AWS quản lý
- Có trong đềCLF · SAA · SOA
Hình dungNhư quản lý nhà hàng gọi thêm nhân viên giờ cao điểm và cho về bớt lúc vắng.
EC2 Auto Scaling đứng ở đâu trong hệ thống?
Gọi tới EC2 Auto Scaling
EC2 Auto Scaling gọi tới
Một ví dụ thật, từng bước
- Website bán vé thường có 2 máy EC2 là đủ, nhưng 20 giờ tối mở bán vé concert thì lượng truy cập tăng gấp 10.
- Bạn tạo Auto Scaling group: tối thiểu 2 máy, tối đa 20 máy, rải đều qua 3 AZ, với chính sách giữ CPU trung bình quanh 50%.
- Khi CPU vượt 50%, nhóm tự chạy thêm máy từ launch template và gắn vào load balancer; khách không thấy web bị chậm.
- Hết đợt bán vé, CPU giảm và nhóm tự tắt bớt máy về lại 2 máy, bạn chỉ trả tiền cho số máy trong lúc thật sự cần.
- Nếu một máy bị lỗi, health check phát hiện và nhóm thay bằng máy mới mà không cần ai thức đêm xử lý.
Khi nào nên dùng
✓ Nên dùng khi
Tải thay đổi theo giờ, cần tự phục hồi khi một máy chết.
✗ Không nên dùng khi
Ứng dụng chỉ chạy được trên đúng một máy (có trạng thái cục bộ).
Ví dụ hay gặp
- Tầng web tự tăng/giảm theo CPU hoặc số request
- Giữ cố định N máy và tự thay máy hỏng (self-healing)
- Scale theo lịch, ví dụ giờ hành chính
EC2 Auto Scaling, ELB hay Lambda?
| Làm gì | Thêm, bớt, thay máy EC2 | Chia request cho các máy đang chạy | Tự chạy thêm bản sao của hàm |
|---|---|---|---|
| Bạn cấu hình | Số máy tối thiểu/tối đa, chính sách scaling | Listener, target group, health check | Gần như không cần (có giới hạn concurrency) |
| Tốn tiền | Miễn phí, chỉ trả cho máy EC2 | Theo giờ + lượng xử lý | Theo request và thời gian chạy |
| Hay dùng cùng | Load balancer + CloudWatch | Auto Scaling group | API Gateway, SQS, S3 |
Tốn bao nhiêu tiền?
- Cách tính: Miễn phí. Chỉ trả tiền cho các EC2 mà nhóm tạo ra và các alarm CloudWatch đi kèm.
- Miễn phí: Bản thân Auto Scaling miễn phí.
Đặt giới hạn tối đa quá cao hoặc thu nhỏ (scale-in) quá chậm làm chạy dư máy; health check sai khiến máy bị thay liên tục.
Đề muốn “chịu được khi một AZ hỏng” → Auto Scaling group trải nhiều AZ kèm ALB. Biết trước giờ cao điểm → scheduled scaling; muốn giữ một chỉ số ổn định → target tracking. Máy phải không giữ trạng thái: session đưa ra ElastiCache hoặc DynamoDB.
Thử sức với câu hỏi thi thật
1In an experiment, if the minimum size for an Auto Scaling group is 1 instance, which of the following statements holds true when you terminate the running instance?
- AAuto Scaling must launch a new instance to replace it.
- BAuto Scaling will raise an alarm and send a notification to the user for action.
- CAuto Scaling must configure the schedule activity that terminates the instance after 5 days.
- DAuto Scaling will terminate the experiment.
Xem đáp án
Đáp án đúng: A
Auto Scaling luôn giữ số instance không thấp hơn mức tối thiểu. Instance bị tắt thì nhóm tự chạy instance mới thay thế.
2You need to pass a custom script to new Amazon Linux instances created in your Auto Scaling group. Which feature allows you to accomplish this?
- AUser data.
- BEC2Config service.
- CIAM roles.
- DAWS Config.
Xem đáp án
Đáp án đúng: A
User data là đoạn script chạy khi instance khởi động lần đầu, khai báo trong launch template của Auto Scaling group. EC2Config chỉ dành cho Windows bản cũ; IAM role và AWS Config không chạy script.
Câu hỏi thường gặp
Có những kiểu scaling policy nào?
Target tracking giữ một chỉ số quanh mức mục tiêu (ví dụ CPU 50%). Step scaling thêm bớt theo từng ngưỡng cảnh báo. Scheduled scaling chạy theo lịch đã biết trước. Predictive scaling dự đoán tải từ lịch sử để chuẩn bị máy trước.
EC2 Auto Scaling có tính phí không?
Bản thân Auto Scaling miễn phí. Bạn chỉ trả tiền cho các instance EC2 và tài nguyên mà nhóm tạo ra, cùng các cảnh báo CloudWatch dùng để kích hoạt scaling.
Đề thi AWS hay hỏi gì về Auto Scaling?
Dùng nhiều AZ để chịu được khi một AZ hỏng, kết hợp với ALB health check để tự thay máy lỗi, chọn đúng policy cho tình huống (target tracking hay scheduled), và launch template là nơi khai báo cấu hình máy.