Giới thiệu & Thiết lập ban đầu
Load Balancer là gì?
Cân bằng tải (Load Balancer) là việc phân phối tải đến một nhóm máy chủ ảo hoặc nhóm tài nguyên backend. Trong môi trường hiện đại, các website và ứng dụng phải xử lý hàng trăm nghìn khách hàng mỗi ngày với hàng triệu yêu cầu đồng thời — một máy chủ đơn lẻ không thể đáp ứng được.
Thay vì phụ thuộc vào một máy chủ duy nhất, FPT Cloud Load Balancer phân phối lưu lượng một cách thông minh trên nhiều máy chủ. Hệ thống liên tục giám sát tình trạng máy chủ và tự động chuyển hướng lưu lượng sang máy chủ khác nếu một máy chủ gặp sự cố, đảm bảo dịch vụ không bị gián đoạn cho đến khi máy chủ phục hồi.
Lợi ích chính
- Tối ưu hiệu suất: Phân phối đồng đều các yêu cầu giúp tối đa hóa tốc độ xử lý.
- Khả năng sẵn sàng cao: Tự động chuyển đổi dự phòng (failover) duy trì tính liên tục của dịch vụ.
- Độ tin cậy: Liên tục kiểm tra sức khỏe (health check) các máy chủ backend, đảm bảo chỉ những máy chủ hoạt động tốt mới nhận lưu lượng.
- Khả năng mở rộng: Dễ dàng mở rộng quy mô bằng cách thêm máy chủ vào Server Pool khi nhu cầu tăng.
Các yếu tố cần lên kế hoạch trước khi triển khai
Trước khi triển khai Load Balancer, hãy chuẩn bị:
- Số lượng máy chủ backend cần thiết dựa trên khối lượng công việc.
- Lựa chọn gói (size) phù hợp — FPT Cloud cung cấp các gói high-availability Basic-1, Basic-2, Standard, Advanced.
- Khu vực địa lý (region) đặt Load Balancer để tối ưu độ trễ.
- Thuật toán phân phối tải phù hợp (Round Robin, Least Connections, ...).
Thiết lập ban đầu
Trước khi sử dụng dịch vụ FPT Cloud Load Balancer, hãy hoàn thành các bước sau:
- Tạo tài khoản FPT Cloud và đăng nhập vào FPT Cloud Portal.
- Tạo máy chủ ảo trên FPT Cloud.
- Gắn Security Group vào máy chủ ảo.
Tạo tài khoản và đăng nhập FPT Cloud Portal
- Truy cập https://console.fptcloud.com và đăng nhập bằng thông tin tài khoản FPT Cloud của bạn.
- Chọn đúng Tenant, Region và VPC cho dịch vụ của bạn.
Nếu chưa có tài khoản FPT Cloud, truy cập https://fptcloud.com/, nhấn Sign Up và làm theo hướng dẫn. Đội hỗ trợ sẽ liên hệ để xác nhận thông tin tài khoản.
Tạo máy chủ ảo
FPT Cloud Load Balancer hỗ trợ cân bằng tải cho các máy chủ ảo trên FPT Cloud. Tham khảo tài liệu hướng dẫn FPT Cloud Server để tạo và quản lý máy chủ ảo.
Gắn Security Group vào máy chủ ảo
Security Group hoạt động như tường lửa mạng ở cấp độ máy ảo, kiểm soát lưu lượng vào (inbound) và ra (outbound). Mặc định, máy ảo FPT Cloud cho phép toàn bộ lưu lượng ra nhưng chặn toàn bộ lưu lượng vào — vì vậy nếu chưa cấu hình Security Group, Load Balancer sẽ không thể tiếp cận các cổng dịch vụ trên backend và health check sẽ luôn báo DOWN.
Load Balancer yêu cầu mở các cổng cụ thể trên máy chủ backend để có thể nhận được lưu lượng do Load Balancer chuyển đến. Cần mở:
- Các cổng dịch vụ mà ứng dụng đang lắng nghe (ví dụ: HTTP cổng 80, HTTPS cổng 443, ...).
- Các cổng dùng cho health check mà Load Balancer sử dụng để kiểm tra sức khỏe máy chủ (thường trùng với cổng dịch vụ).
Cổng cần mở theo kịch bản
| Kịch bản | Cổng inbound cần mở trên backend | Nguồn (Source) |
|---|---|---|
| Web HTTP | TCP 80 | Subnet của Load Balancer |
| Web HTTPS (SSL terminate ở backend) | TCP 443 | Subnet của Load Balancer |
| Web HTTPS (SSL terminate ở Load Balancer) | TCP 80 | Subnet của Load Balancer |
| API tùy biến | TCP <service-port> | Subnet của Load Balancer |
| Health check riêng (HTTP/TCP) | TCP <health-check-port> | Subnet của Load Balancer |
Subnet của Load Balancer chính là dải IP nội bộ mà Load Balancer dùng để gửi request tới backend. Bạn có thể xem dải này tại tab Overview → Subnet của Load Balancer sau khi tạo. Nếu muốn nhanh, có thể tạm cho phép cả VPC CIDR, sau đó thu hẹp lại đúng subnet để tăng tính bảo mật.
Ví dụ minh họa
Để tạo Load Balancer LB1 cân bằng tải cho một web server chạy trên cổng 80 thuộc hai máy ảo A và B:
- Tạo một Security Group mới dành riêng cho cụm web server này. Tham khảo cách tạo và quản lý Security Group trong tài liệu FPT Cloud Server.
- Thêm rule Inbound cho cổng 80 (giao thức TCP) — Source là subnet của Load Balancer (xem tại tab Overview của
LB1). - Thêm rule Inbound cho cổng dùng cho health check (ví dụ: cổng 80 nếu health check dùng HTTP, hoặc cổng riêng nếu bạn cấu hình endpoint health check tách biệt).
- Giữ nguyên rule Outbound mặc định (
allow all) hoặc tối thiểu cho phép trả response về subnet của Load Balancer. - Gắn Security Group vào máy ảo A và máy ảo B từ trang chi tiết của từng máy ảo trên FPT Cloud Portal.
- Nếu
LB1là External Load Balancer (có gán Public IP), gắn thêm Security Group phù hợp vào chínhLB1để cho phép lưu lượng từ internet vào — thông thường mởTCP 80/TCP 443với Source0.0.0.0/0.
Nếu nhiều máy chủ backend dùng chung cấu hình cổng, bạn có thể tái sử dụng cùng một Security Group cho tất cả — chỉ cần đảm bảo các rule Inbound bao phủ đầy đủ các cổng dịch vụ và cổng health check. Khi thay đổi cổng dịch vụ về sau, chỉ cần sửa rule trong Security Group dùng chung, không cần thao tác trên từng máy ảo.
Sau khi gắn xong Security Group, kiểm tra tab Members của Server Pool — nếu trạng thái vẫn là DOWN sau 30–60 giây, hãy kiểm tra lại:
- Cổng health check trên Server Pool có khớp với cổng đang mở trong Security Group không.
- Source của rule Inbound đã bao phủ đúng subnet của Load Balancer chưa.
- Ứng dụng trên backend đã thực sự lắng nghe trên cổng đó (
netstat -tlnphoặcss -tlnp).