Các loại Load Balancer
- Classic Load Balancer - 2009 - CLB
- Application Load Balancer - 2016 - ALB
- Network Load Balancer - 2017 - NLB
- Gateway Load Balancer - 2020 - GLB Chúng ta nên sử dụng các phiên bản mới nhất để được hỗ trợ nhiều tính năng nhất có thể. Classic Load Balancer hiện tại không còn được sử dụng nhiều.
Application Load Balancer trong AWS
- Giải pháp này hoạt động ở tầng ứng dụng (layer 7), phù hợp nhất để cân bằng lưu lượng HTTP và HTTPS
- Load balancing đến nhiều HTTP ứng dụng qua nhiều machine
- Hỗ trợ redirect HTTP/HTTPs
- Hỗ trợ route đến nhiều target group
- VD: sample/users và sample/pots sẽ gọi đến 2 target group khác nhau
- ALB rất phù hợp với ứng dụng micro service
- Chúng ta sẽ truy cập vào ALB trông qua 1 fixed hostname (
xxx.region.elb.amazon.com
)
Network Load Balancer trong AWS
Hoạt động ở layer 4 dùng để forward TCP&UDP traffic đến instance của bạn. có thể xử lý hàng triệu request trong 1 giây nhưng vẫn đảm bảo độ trễ thấp (~100ms, so với ALB ~400ms).
- NLB có 1 static IP mỗi AZ
- Chú ý: NLB không support free tier nên chú ý khi sử dụng.
Gateway Load Balancer trong AWS
- GLB cho phép bạn triển khai, mở rộng, quản lý các ứng dụng 3th party network (Firewall...)
- Hoak động ở Layer 3 (Network layer)
- Sử dụng GENEVE protocol trên port 6081
Sticky Session trong load balancer
Sticky Session là một tính năng trong một hệ thống cân bằng tải cho website. Khi 1 user gửi request lần đầu tiên đến được Load Balancer chỉ định 1 server xử lý request đó, đến lần request sau, cũng sẽ vẫn là server đó xử lý request. Tính năng này chủ yếu được sử dụng để đảm bảo một in-proc session nào đó sẽ không bị mất bởi các yêu cầu cho session được route đến các máy chủ khác nhau.
- Option này chỉ hoạt động với Classic Load Balancer & Application Load Balancers
- Để tính năng này hoạt động, Client phải hỗ trợ cookies
Cross-Zone Load Balancing
Như hình vẽ chúng ta có thể hình dung được Cross-Zone Load Balancing là gì, ở bổi cảnh này chúng ta có 1 AZ là A và B, trong AZ A có 4 server và B có 4 server. AWS ELB cung cấp 2 option bât/tắt Cross-Zone Load Balancing (enable/disable)
- Khi enable: traffic sẽ được chia đều cho các target khác nhau, mỗi server có 10%
- Khi disable: một bên là 8.33% còn 1 bên nhận 12.5% traffic
Application Load Balancer
- Luôn bật (không thể tắt option này đi)
- Không bị tính phí inter AZ
Network Load Balancer
- Mặc định sẽ disabled
- Nếu enable lên AWS sẽ tính phí inter AZ của bạn
Classic Load Balancer - Mặc định sẽ disabled
- Nếu enable, không bị tính phí inter AZ