Skip to content

Tính năng nâng cao của Elastic Load Balancer

Bên cạnh chức năng phân phối lưu lượng cơ bản, Elastic Load Balancer (ELB) còn hỗ trợ nhiều tính năng mở rộng nhằm nâng cao hiệu năng, trải nghiệm người dùng và tính bảo mật của hệ thống.

Trong bài này, bạn sẽ tìm hiểu về:

  • Sticky Sessions
  • Cross-Zone Load Balancing
  • Load Balancer và SSL Certificates
  • Connection Draining

Sticky Sessions (Session Affinity)

Sticky Sessions là cơ chế cho phép Load Balancer ghi nhớ và duy trì việc gửi request của một client đến cùng một backend instance trong suốt phiên làm việc.

🔧 Cách hoạt động:

  • ELB sử dụng Cookie để gắn user với một instance cụ thể.
  • Mỗi lần người dùng gửi request mới, Cookie giúp định tuyến lại đến cùng server.

Khi nào cần dùng?

  • Ứng dụng có session lưu trong memory (RAM) của server.
  • Ví dụ: giỏ hàng, user login chưa lưu vào DB.

⚠️ Lưu ý:

  • Sticky session làm giảm hiệu quả phân phối tải đều, nên chỉ nên dùng khi thực sự cần.
  • Để scale tốt hơn, hãy cân nhắc lưu session vào Redis hoặc DynamoDB.

Cross-Zone Load Balancing

Khi hệ thống chạy ở nhiều Availability Zones, Cross-Zone Load Balancing giúp Load Balancer phân phối đều lưu lượng đến tất cả các instance, bất kể chúng nằm ở zone nào.

Nếu KHÔNG bật Cross-Zone:

  • Mỗi zone chỉ nhận được lưu lượng từ request ở zone đó.
  • Có thể dẫn đến mất cân bằng nếu số lượng instance khác nhau giữa các zone.

Khi bật Cross-Zone:

  • Mỗi request có thể được phân phối đến bất kỳ instance nào, bất kể zone.
  • Tăng hiệu quả sử dụng tài nguyên.
Cross-Zone Load Balancing là gì

Chi phí của Cross-Zone Load Balancing

  • Application Load Balancer: KHÔNG tính phí thêm.
  • Network Load Balancer & Gateway Load Balancer: Tính phí theo số lượng request được phân phối qua các zone (inter AZ data).

⚙️ Trạng thái mặc định:

Loại Load BalancerCross-Zone mặc địnhCó thể bật/tắt
ALB✅ Bật mặc định
NLB, GWLB❌ Tắt mặc định

Load Balancer và SSL Certificates

SSL Certificates giúp mã hóa lưu lượng HTTPS giữa client và Load Balancer để bảo vệ dữ liệu truyền qua Internet.

SSL Termination (Offloading):

  • SSL được xử lý tại Load Balancer, backend không cần xử lý HTTPS.
  • Giảm tải cho backend server.
  • ALB và NLB đều hỗ trợ termination với TLS/SSL.

Cách cấu hình:

  • Cấp chứng chỉ qua AWS Certificate Manager (ACM).
  • Gắn chứng chỉ vào listener HTTPS trên Load Balancer.

SSL - Server Name Indication (SNI) là gì

  • SNI cho phép nhiều chứng chỉ SSL trên cùng một IP (gán nhiều SSL trên cùng 1 HTTPs Listener).
  • ALB hỗ trợ SNI, giúp tiết kiệm IP và dễ dàng quản lý nhiều tên miền.
  • NLB không hỗ trợ SNI, chỉ dùng một chứng chỉ cho mỗi IP.

Ví dụ:

DomainSSL Certificate
example.comCert A
api.example.comCert B

AWS Certificate Manager (ACM)

AWS Certificate Manager là dịch vụ giúp bạn dễ dàng:

  • Tạo và quản lý chứng chỉ SSL/TLS miễn phí
  • Tự động gia hạn (renew)
  • Sử dụng trên các dịch vụ như ALB, CloudFront, API Gateway

Ưu điểm:

  • Không cần thao tác thủ công với file .pem hay .crt
  • Dễ cấu hình, bảo mật tốt
  • Không phát sinh chi phí nếu dùng trong AWS

Connection Draining (ALB) / Deregistration Delay (ASG)

Khi một instance bị loại khỏi target group (do scale in, bảo trì, hoặc lỗi), Connection Draining đảm bảo:

  • Instance vẫn tiếp tục xử lý các kết nối đang hoạt động.
  • Load Balancer không gửi thêm kết nối mới, nhưng giữ kết nối hiện tại cho đến khi hoàn tất hoặc hết thời gian chờ.

Mục tiêu:

  • Tránh gián đoạn đột ngột cho người dùng.
  • Đảm bảo trải nghiệm mượt mà khi update hoặc scale in.

Cấu hình:

  • Có thể cài đặt thời gian “grace period”, ví dụ: 300 giây.
  • Được hỗ trợ trong ALB, NLB và Auto Scaling Group.