Skip to content

Elastic Load Balancing & Auto Scaling Groups¤


1. Scalability vs High Availability — Phân biệt nhanh¤

Scalability (Khả năng mở rộng): Hệ thống có thể xử lý tải tăng lên bằng cách thích nghi với nhu cầu.

High Availability (Tính sẵn sàng cao): Hệ thống luôn hoạt động được, giảm thiểu downtime khi có sự cố.

Hai khái niệm này liên quan nhưng không phải một — bạn có thể scale mà không đảm bảo HA, và ngược lại.


2. Vertical vs Horizontal Scalability¤

Vertical Scaling Horizontal Scaling
Cách làm Nâng cấp instance (RAM, CPU) Thêm nhiều instance
Còn gọi Scale up / Scale down Scale out / Scale in
Giới hạn Bị giới hạn bởi phần cứng Gần như không giới hạn
Dùng cho Database, app đơn luồng Web app, distributed system
Ví dụ AWS t2.nano → u-12tb1.metal Dùng ASG + ELB

3. Ba khái niệm hay nhầm lẫn¤

  • Scalability: Có khả năng mở rộng khi cần.
  • Elasticity: Tự động co giãn theo thời gian thực dựa trên tải — tránh over/under provisioning. Đây là điểm mạnh của cloud.
  • Agility: Tốc độ triển khai nhanh, linh hoạt phản ứng với thay đổi (không liên quan trực tiếp đến scaling).

Exam tip: Elasticity = tự động, real-time. Scalability = khả năng, không nhất thiết tự động.


4. Load Balancing là gì?¤

Phân phối traffic đến nhiều target (EC2, container, IP) để không resource nào bị quá tải.

Lợi ích chính:

  • Fault tolerance: traffic tự động chuyển hướng khi có instance bị lỗi
  • Health check: kiểm tra instance còn hoạt động không
  • SSL termination: xử lý HTTPS tại load balancer, giảm tải cho backend
  • High Availability khi deploy multi-AZ

Tại sao dùng ELB (Elastic Load Balancer)? ELB là managed service — AWS lo toàn bộ infrastructure, maintenance, HA. Bạn chỉ cần cấu hình.


5. Ba loại ELB — nhớ theo Layer¤

Loại Layer Protocol Dùng khi
ALB (Application LB) Layer 7 HTTP, HTTPS Web app, routing theo path/host
NLB (Network LB) Layer 4 TCP, UDP High performance, low latency
Classic LB Layer 4 & 7 Cả hai Đang bị retire, không dùng mới

Exam tip: Câu hỏi về HTTP/HTTPS → ALB. Cần hiệu năng cực cao → NLB.


6. Auto Scaling Group (ASG)¤

Đảm bảo luôn có đúng số lượng EC2 instance cần thiết.

ASG làm được gì:

  • Scale out (thêm instance) khi tải tăng
  • Scale in (bớt instance) khi tải giảm
  • Giữ số instance trong khoảng min/max đã định
  • Tự động register instance mới vào load balancer
  • Tự thay thế instance unhealthy
  • Tiết kiệm chi phí — chỉ chạy đúng mức cần thiết

7. Các Scaling Strategy của ASG¤

Manual Scaling: Tự điều chỉnh số instance thủ công — dùng khi bạn đã biết trước lịch sự kiện nhỏ.

Dynamic Scaling — có 2 loại:

  • Simple/Step: CloudWatch alarm kích hoạt → thêm/bớt instance theo bước. Ví dụ: CPU > 70% → thêm 2 instance.
  • Target Tracking: Giữ metric ở mức mục tiêu. Ví dụ: CPU trung bình ~40%. Đơn giản hơn Simple/Step.

Scheduled Scaling: Scale theo lịch cố định. Ví dụ: tăng capacity lên 10 vào 5h chiều thứ Sáu.

Predictive Scaling: Dùng ML để dự đoán traffic, scale trước khi tải đến — phù hợp với traffic có pattern rõ ràng.


8. Kết hợp ELB + ASG — Bức tranh hoàn chỉnh¤

Text Only
Internet → ELB → ASG (nhiều EC2, nhiều AZ)
  • ELB phân phối traffic + health check
  • ASG tự động thêm/bớt instance theo tải
  • Multi-AZ → đảm bảo High Availability
  • Kết hợp lại → vừa scalable, vừa elastic, vừa highly available

Tóm tắt một dòng để nhớ nhanh¤

Khái niệm Nhớ nhanh
Vertical Scaling To hơn
Horizontal Scaling Nhiều hơn
Elasticity Tự động co giãn
ELB Chia đều traffic
ASG Đúng số instance
HA Không downtime, multi-AZ