Azure Load Balancing
1. Giới thiệu
Load Balancing là gì?
- Phân phối traffic đến nhiều servers
- Tăng availability (server chết → traffic chuyển sang server khác)
- Tăng scalability (thêm server khi cần)
Health Check: Load Balance liên tục ping servers, server không phản hồi → ngừng gửi traffic
2. Layer 4 vs Layer 7
| Layer 4 | Layer 7 | |
|---|---|---|
| Hiểu được | IP + Port | HTTP URL, Headers, Cookies |
| Ví dụ routing | Port 80 → Server Pool | /api/* → API Pool |
| Tốc độ | Nhanh | Chậm hơn |
| Protocol | TCP/UDP/Bất kỳ | Chỉ HTTP/HTTPS |
| Tính năng | Đơn giản | WAF, SSL Termination, URL routing |
3. Các dịch vụ Load Balancer
A. Azure Load Balancer (Layer 4)
-
Loại: Regional (Trong 1 Region).
-
Chức năng: Phân phối traffic TCP/UDP đơn giản.
-
Public LB: Có Public IP. Dùng để nhận traffic từ Internet vào VM.
-
Internal LB: Chỉ có Private IP. Dùng để cân bằng tải giữa các tầng nội bộ (VD: Web Server gọi xuống DB Cluster).
-
Tính năng:
- Hash-based Distribution: Phân phối traffic dựa trên hash của Source IP, Destination IP, Port
- Session Persistence: Client IP affinity (2-tuple, 3-tuple, 5-tuple hash)
- Port Forwarding: Inbound NAT rules để RDP/SSH vào specific VM
- High Availability: Zone-redundant deployment (Standard SKU)
- Outbound Connectivity: SNAT cho VMs không có Public IP
B. Azure Application Gateway (Layer 7)
Đặc điểm chính
- Layer: Layer 7 (Application Layer)
- Scope: Regional (1 Azure Region)
- Protocol: Chỉ HTTP và HTTPS
- Đặc biệt: Hiểu được nội dung HTTP request
Kiến trúc
- Tính năng:
- URL-based Routing (Path-based Routing): Routing dựa trên URL path
- Multi-site Hosting: Host nhiều websites trên 1 Application Gateway
- SSL Termination: Giải mã SSL tại Gateway, giảm tải cho Web Server.
- Cookie-based Affinity: Giữ User luôn kết nối vào đúng Server cũ (Sticky Session).
- WAF (Web Application Firewall): Chống hack (SQL Injection, XSS).
C. Azure Front Door (Layer 7 - Global)
Đặc điểm chính
- Layer: Layer 7 (Application Layer)
- Scope: Global (toàn cầu, tất cả Azure Regions)
- Protocol: HTTP và HTTPS
- Đặc biệt: CDN tích hợp + Global load balancing
- Cơ chế: Sử dụng mạng lưới CDN của Microsoft. User ở VN sẽ kết nối vào trạm (Edge) gần nhất ở VN, sau đó đi đường cáp quang riêng của Microsoft về Server ở Mỹ -> Tăng tốc độ truy cập.
Kiến trúc Global
- Tính năng:
- Global Load Balancing: latency thấp
- Routing Methods: Priority-based (Failover), Weighted (Load Distribution), Latency-based (Performance)
- CDN & Caching
- SSL/TLS Management: Free managed certificates (auto-renewal),...
- WAF (Web Application Firewall): Chống hack (SQL Injection, XSS).
D. Azure Traffic Manager (DNS-based)
Đặc điểm chính
- Type: DNS-based Global Load Balancer
- Scope: Global (toàn cầu)
- Protocol: Bất kỳ (vì chỉ trả lời DNS)
- Đặc biệt: Không nằm trên data path, chỉ chỉ đường DNS
- Cơ chế: Khi User hỏi "IP của web là gì?", Traffic Manager trả lời IP của Region gần User nhất. Nó không nằm trên đường truyền dữ liệu (Data Path), chỉ chỉ đường.
4. Bảng chọn nhanh (Decision Guide)
So sánh tổng hợp 4 dịch vụ
| Load Balancer | App Gateway | Front Door | Traffic Manager | |
|---|---|---|---|---|
| Layer | 4 (TCP/UDP) | 7 (HTTP/S) | 7 (HTTP/S) | DNS-based |
| Scope | Regional | Regional | Global | Global |
| Protocol | Any | HTTP/S only | HTTP/S only | Any |
| Routing | IP:Port | URL/Host | URL/Host/Geo | DNS methods |
| WAF | ❌ | ✅ | ✅ | ❌ |
| SSL | ❌ | ✅ | ✅ | ❌ |
| CDN | ❌ | ❌ | ✅ | ❌ |
| Latency | ⚡ Rất thấp | ⚡ Thấp | ⚡ Thấp | N/A |
| Failover | Trong Region | Trong Region | Global auto | Global (DNS TTL) |
| Data Path | ✅ | ✅ | ✅ | ❌ |
| Price/month | ~$20 | ~$150 | ~$300 | ~$7 |
Kết luận:
| Nhu cầu | Dịch vụ nên dùng |
|---|---|
| Web App (HTTP/S), cần WAF, trong 1 Region | Application Gateway |
| Web App toàn cầu, cần tăng tốc độ | Azure Front Door |
| Non-HTTP (Game, DB, TCP), trong 1 Region | Azure Load Balancer |
| Điều hướng traffic đa vùng đơn giản, giá rẻ | Traffic Manager |
Tài liệu tham khảo: