Elastic Load Balancing
Chia tải request
Phân phối request tới nhiều EC2/container/IP, kiểm tra sức khoẻ và bỏ qua máy hỏng. Có ALB (HTTP), NLB (TCP/UDP), GWLB.
- Chi phí$$ Vừa phải
- Độ khó●●●●●
- Để không có tốn tiền?Có
- AWS quản lý
- Có trong đềCLF · SAA · DVA · SOA
Hình dungNhư nhân viên lễ tân chia khách vào các quầy còn trống.
ELB đứng ở đâu trong hệ thống?
ELB gọi tới
Một ví dụ thật, từng bước
- Ứng dụng web chạy trên 3 máy EC2 ở 3 AZ, cần một địa chỉ duy nhất cho người dùng truy cập.
- Bạn tạo Application Load Balancer, gắn chứng chỉ ACM để dùng HTTPS và trỏ tên miền vào bằng Route 53.
- ALB chia request đều cho 3 máy; đường dẫn /api chuyển tới nhóm máy API, còn lại tới nhóm máy web.
- Health check mỗi 30 giây; một máy không trả lời thì ALB ngừng gửi request tới máy đó.
- Kết hợp Auto Scaling, máy hỏng được thay và máy mới tự được thêm vào load balancer.
Khi nào nên dùng
✓ Nên dùng khi
Có từ 2 máy/container trở lên phục vụ cùng ứng dụng.
✗ Không nên dùng khi
API serverless thuần → API Gateway.
Ví dụ hay gặp
- Chia tải web/API tới EC2 hoặc ECS (ALB)
- Định tuyến theo path/host cho microservices
- TCP/UDP độ trễ thấp, IP tĩnh (NLB)
- Chèn firewall ảo vào luồng mạng (GWLB)
ELB, API Gateway hay CloudFront?
| Làm gì | Chia traffic cho máy/container trong region | Cổng quản lý API: xác thực, giới hạn tốc độ | CDN cache nội dung gần người dùng |
|---|---|---|---|
| Tầng | HTTP (ALB) hoặc TCP/UDP (NLB) | HTTP | HTTP |
| Tính tiền | Theo giờ + đơn vị xử lý | Theo request | Theo dữ liệu truyền + request |
| Hợp nhất với | Web app trên EC2/ECS, lưu lượng lớn | API serverless với Lambda | Nội dung tĩnh, người dùng toàn cầu |
Tốn bao nhiêu tiền?
- Cách tính: ALB: ~$0,0225/giờ + ~$0,008/LCU-giờ (LCU tính theo kết nối mới, kết nối đang mở, băng thông và số rule).
- Miễn phí: Tài khoản cũ: 750 giờ + 15 LCU trong 12 tháng.
Mỗi môi trường/mỗi service một ALB riêng (nên gộp bằng rule); load balancer do Kubernetes tạo ra bị bỏ quên; IPv4 public của load balancer cũng tính phí.
Định tuyến theo đường dẫn hoặc tên miền, sticky session, gắn WAF → ALB. Cần IP tĩnh, TCP/UDP, độ trễ cực thấp → NLB. Đưa traffic qua thiết bị tường lửa bên thứ ba → Gateway Load Balancer.
Thử sức với câu hỏi thi thật
1A company has a three-tier environment on AWS that ingests sensor data from its users' devices. The traffic flows through a Network Load Balancer (NLB) then to Amazon EC2 instances for the web tier, and finally to EC2 instances for the application tier that makes database calls. What should a solutions architect do to improve the security of data in transit to the web tier?
- AConfigure a TLS listener and add the server certificate on the NLB.
- BConfigure AWS Shield Advanced and enable AWS WAF on the NLB.
- CChange the load balancer to an Application Load Balancer and attach AWS WAF to it.
- DEncrypt the Amazon Elastic Block Store (Amazon EBS) volume on the EC2 instances using AWS Key Management Service (AWS KMS).
Xem đáp án
Đáp án đúng: A
Thêm TLS listener và chứng chỉ trên NLB để mã hoá đường truyền tới web tier. WAF và Shield chống tấn công chứ không mã hoá; mã hoá ổ EBS là mã hoá dữ liệu lưu trữ, không phải dữ liệu đang truyền.
2A company runs a web application on Amazon EC2 instances in an Auto Scaling group that has a target group. The company designed the application to work with session affinity (sticky sessions) for a better user experience. The application must be available publicly over the internet as an endpoint. A WAF must be applied to the endpoint for additional security. Session affinity (sticky sessions) must be configured on the endpoint. Which combination of steps will meet these requirements? (Choose two.)
- ACreate a public Network Load Balancer. Specify the application target group.
- BCreate a Gateway Load Balancer. Specify the application target group.
- CCreate a public Application Load Balancer. Specify the application target group.
- DCreate a second target group. Add Elastic IP addresses to the EC2 instances.
- ECreate a web ACL in AWS WAF. Associate the web ACL with the endpoint.
Xem đáp án
Đáp án đúng: C, E
Application Load Balancer public hỗ trợ sticky session và gắn được web ACL của AWS WAF. NLB và Gateway Load Balancer không gắn được WAF.
Câu hỏi thường gặp
ALB, NLB và Gateway Load Balancer khác nhau thế nào?
ALB làm việc ở tầng HTTP/HTTPS, định tuyến theo đường dẫn, tên miền hay header. NLB làm việc ở tầng TCP/UDP, độ trễ rất thấp, có IP tĩnh. Gateway Load Balancer đưa traffic qua các thiết bị bảo mật như tường lửa của bên thứ ba.
Load balancer có tự gỡ máy hỏng ra không?
Có. Health check định kỳ kiểm tra từng target; target không đạt sẽ không nhận request mới. Kết hợp với Auto Scaling, máy hỏng còn được thay bằng máy mới.
Elastic Load Balancing tính tiền thế nào?
Theo giờ chạy của mỗi load balancer cộng với đơn vị dung lượng (LCU cho ALB, NLCU cho NLB) phản ánh số kết nối, request và lượng dữ liệu. Load balancer không còn dùng vẫn tính tiền giờ nên cần xoá.
Đề thi AWS hay hỏi gì về load balancer?
Chọn ALB, NLB hay GWLB theo yêu cầu, gắn chứng chỉ ACM để dùng HTTPS, cross-zone load balancing, sticky session, và dùng NLB khi cần IP tĩnh hoặc giao thức không phải HTTP.