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 ScalingHorizontal Scaling
Cách làmNâng cấp instance (RAM, CPU)Thêm nhiều instance
Còn gọiScale up / Scale downScale out / Scale in
Giới hạnBị giới hạn bởi phần cứngGần như không giới hạn
Dùng choDatabase, app đơn luồngWeb app, distributed system
Ví dụ AWSt2.nano → u-12tb1.metalDù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ạiLayerProtocolDùng khi
ALB (Application LB)Layer 7HTTP, HTTPSWeb app, routing theo path/host
NLB (Network LB)Layer 4TCP, UDPHigh performance, low latency
Classic LBLayer 4 & 7Cả 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

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ệmNhớ nhanh
Vertical ScalingTo hơn
Horizontal ScalingNhiều hơn
ElasticityTự động co giãn
ELBChia đều traffic
ASGĐúng số instance
HAKhông downtime, multi-AZ