NLB (Network Load Balancer)

Tổng quan
- Network Load Balancer (NLB) hoạt động ở Layer 4 (Transport Layer – TCP/UDP), cho phép:
- Forward TCP & UDP traffic đến các instance trong target group
- TCP: Bao gồm cả HTTP, HTTPS, gRPC, v.v.
- UDP: Hữu ích cho game servers, VoIP, DNS, custom protocols
- Xử lý hàng triệu request mỗi giây (scale cực lớn)
- Độ trễ cực thấp (Ultra-low latency) – phù hợp cho hệ thống real-time hoặc latency-sensitive (game, VoIP, stock...)
- Forward TCP & UDP traffic đến các instance trong target group
- NLB cung cấp 1 địa chỉ IP tĩnh (static IP) trên mỗi Availability Zone (AZ)
→ Cho phép gán Elastic IP nếu cần
→ Rất phù hợp cho các hệ thống cần whitelist IP (ví dụ firewall, client system yêu cầu IP cố định) - NLB thường được sử dụng cho hệ thống yêu cầu hiệu năng cực cao, xử lý traffic dạng TCP hoặc UDP
→ Ví dụ: Load balancing cho database TCP, game server, SIP traffic... - Không nằm trong AWS Free Tier (khác với ALB có giới hạn miễn phí)

NLB - Target Group
NLB có thể route đến các kiểu Target Group sau:

EC2 Instances
Target là instance ID cụ thể (VD:
i-1234567890abcdef0)
✅ Phù hợp khi bạn dùng EC2, không cần biết IP vì AWS tự xử lý.
IP Addresses (Private IP)
Target là IP cụ thể (VD:
192.168.1.118,10.0.4.21)
✅ Dùng khi muốn forward tới 1 service không phải EC2, hoặc ngoài tài khoản AWS hiện tại. Miễn là IP đó private và kết nối được trong VPC.
⚠️ Chỉ private IP — không forward đến public IP.
Application Load Balancer (ALB)
Target là một ALB khác — rất hay ho để làm chained load balancing.
✅ Dùng khi cần chia NLB xử lý traffic tầng 4 (TCP) rồi đẩy cho ALB xử lý tầng 7 (HTTP routing, header, path, v.v.)
- Kiến thức nền: OSI Model
| Layer | Tên | Giao thức thường gặp | Vai trò |
|---|---|---|---|
| 7 | Application | HTTP, HTTPS, WebSocket, gRPC | Xử lý nội dung request (path, headers, cookies, v.v.) |
| 6 | Presentation | SSL/TLS | Mã hóa/giải mã |
| 5 | Session | - | Quản lý phiên |
| 4 | Transport | TCP, UDP | Xác định kết nối giữa client-server (port) |
| 3 | Network | IP | Định tuyến |
| 2 | Data Link | Ethernet | Trao đổi frame giữa các thiết bị mạng |
| 1 | Physical | Cáp, Wifi | Bit-level data |
Về Health Check:
- NLB có thể dùng protocol health check là: TCP, HTTP, HTTPS
- Nghĩa là bạn dùng NLB nhưng vẫn có thể check tình trạng service qua HTTP (ví dụ:
/healthz) để xem service có OK không, dù bản thân NLB hoạt động ở layer 4.
- Nghĩa là bạn dùng NLB nhưng vẫn có thể check tình trạng service qua HTTP (ví dụ:
Bạn thấy bài này thế nào?