Trong bài này, mình sẽ hướng dẫn chi tiết cách tạo và cấu hình một Network Load Balancer (NLB) trên AWS. Bạn sẽ hiểu được từ khái niệm cơ bản đến cách kiểm tra hoạt động và xử lý lỗi liên quan đến health check.
Xem thêm:
AWS IPv4 Public – Cách tính phí mới nhất – Bài 7
EBS Volumes – EBS Snapshot – Lưu trữ cho EC2 Instances – Bài 8
1. Network Load Balancer (NLB) là gì?
Network Load Balancer (NLB) là bộ cân bằng tải tầng 4 (Layer 4) trong mô hình OSI, giúp xử lý lưu lượng TCP và UDP. Điều này khác với Application Load Balancer (ALB), vốn hoạt động ở tầng 7 và chỉ hỗ trợ HTTP/HTTPS.
Điểm mạnh của NLB:
- Xử lý được hàng triệu request mỗi giây.
- Độ trễ cực thấp, phù hợp với ứng dụng cần phản hồi nhanh.
- Có thể cấp IP tĩnh hoặc sử dụng Elastic IP.
- Hỗ trợ PrivateLink để kết nối riêng tư trong VPC.
- Có thể đặt NLB trước ALB để kết hợp tính năng.
Lưu ý: Không nằm trong Free Tier của AWS

2. Khi nào nên dùng NLB?
Bạn nên chọn NLB nếu ứng dụng của bạn:
- Ứng dụng yêu cầu hiệu suất cực cao (hàng triệu kết nối đồng thời, độ trễ dưới 1ms).
- Cần sử dụng giao thức tầng 4 như TCP, UDP (ví dụ DNS, VoIP, gaming, streaming).
- Muốn có địa chỉ IP cố định để quản lý firewall.
- Muốn kết hợp với ALB để có IP cố định và routing HTTP/HTTPS thông minh.
3. Cách NLB hoạt động
- Client gửi request (TCP hoặc UDP) đến DNS của NLB.
- NLB sẽ xem Target Group để biết instance nào đang hoạt động.
- NLB chuyển tiếp request đến backend EC2 mà không thay đổi nội dung gốc.
- EC2 xử lý và trả lại kết quả.
4. Các loại Target Group mà NLB hỗ trợ
| Target Type | Mô tả |
|---|---|
| EC2 Instance | Gửi lưu lượng TCP/UDP đến EC2 |
| IP Addresses | Định tuyến tới IP riêng trong hoặc ngoài AWS |
| ALB | Gửi lưu lượng TCP đến ALB khác |
| AWS PrivateLink | Kết nối đến dịch vụ riêng trong VPC |

5. Connection Draining / Deregistration Delay
Connection Draining (CLB) hoặc Deregistration Delay (ALB, NLB) cho phép instance được gỡ khỏi Load Balancer một cách êm ái, tức là:
- Không nhận request mới
- Tiếp tục xử lý các request hiện tại
Cách hoạt động:
Instance được đánh dấu gỡ bỏ sẽ tiếp tục xử lý kết nối hiện tại, sau đó mới được ngắt hoàn toàn khỏi Load Balancer.
Cấu hình:
- Thời gian từ 1 đến 3600 giây
- Mặc định: 300 giây
- Nếu không muốn dùng: đặt về 0
6. Network Load Balancer – HandOn
Mục tiêu: Tạo Network Load Balancer (NLB) để phân phối lưu lượng TCP tới các EC2 Instance
6.1. Tạo 2 EC2 Instance để làm target
- Truy cập:
AWS Console > EC2 > Launch Instances - Cấu hình:
- Tên: WebServer01
- AMI: Amazon Linux 2
- Instance type: t2.micro
- Key pair: Proceed without a key pair
- Network: Tạo security group
alb-sg(cho phép HTTP và SSH) - Storage: Mặc định
- User data:
#!/bin/bash # Use this for your user data (script from top to bottom) # install httpd (Linux 2 version) yum update -y yum install -y httpd systemctl start httpd systemctl enable httpd echo "<h1>Hello EC2 Instance 1</h1>"> /var/www/html/index.html







6.2. Tạo Network Load Balancer (ALB)
- Truy cập:
EC2 Dashboard > Load Balancers > Create Load Balancer - Chọn loại: Application Load Balancer
- Cấu hình:
- Tên:
DemoNLB - Scheme: Internet-facing
- Address type: IPv4
- Availability Zones: chọn tất cả các AZ có EC2
- Tạo Security Group mới:
- Tên: demo-sg-load-balancer
- Mô tả: Allow HTTP into NLB
- Inbound rule: cho phép HTTP (port 80) từ Anywhere
- Outbound: để mặc định
- Tên:




6.3. Tạo Target Group và gắn EC2
- Trong phần Listener and Routing → Chọn Create target group
- Cấu hình:
- Target type: Instances
- Tên:
demo-tg-nlb - Protocol: HTTP
- Port: 80
- Health check: mặc định
- Đăng ký cả hai EC2 instance vào target group.






6.4. Gắn Target Group vào Load Balancer và tạo
- Chọn lại demo-tg-nlb làm đích đến cho listener port 80.
- Nhấn Create Load Balancer.
- Sau khi ALB được tạo, copy DNS name và truy cập từ trình duyệt.




6.5. Kiểm tra cân bằng tải
- Truy cập DNS của NLB nhiều lần (refresh liên tục).
- Quan sát nội dung “Hello World” thay đổi qua lại giữa các EC2 instance → xác nhận Load Balancer hoạt động.

6.7. Kiểm tra tính năng Health Check
- Stop 1 EC2 instance từ EC2 Console.
- Vào Target Group > Targets để xem trạng thái unhealthy.
- Truy cập lại DNS ALB → chỉ còn phản hồi từ instance còn lại.
- Start lại EC2 bị stop → Target sẽ quay lại trạng thái healthy.
Network Load Balancer là lựa chọn hoàn hảo cho những hệ thống yêu cầu hiệu suất cực cao và xử lý giao thức tầng 4 như TCP/UDP. Qua hướng dẫn trên, bạn đã biết cách tự tay tạo một NLB và xử lý các lỗi thường gặp.
Cảm ơn bạn đã tham khảo AWS Certified Solutions Architect Associate trên ttnguyen.net.
Bài viết cùng chủ đề:
AWS Budget – Thiết lập ngân sách và cảnh báo chi phí – Bài 3
Amazon EC2 là gì? Các loại EC2 Instance phổ biến – Bài 4
Hướng dẫn tạo EC2 Instance chạy Amazon Linux trên AWS – Bài 5