Trong bài viết này vHost sẽ hướng dẫn Quý khách cách thiết lập một hệ thống cân bằng tải để phân phối lưu lượng truy cập qua nhiều máy chủ hoặc ứng dụng trong mạng VPC.
1. Giới thiệu #
1.1. VPC #
Đây là một mạng ảo được cung cấp trong môi trường đám mây công cộng, cho phép mình tạo ra một hạ tầng mạng riêng biệt, như việc mình sở hữu một trung tâm dữ liệu (Data Center) riêng biệt và được cô lập hoàn toàn về mặt logic so với các khách hàng khác trên cùng một nhà cung cấp dịch vụ đám mây.

Các tính năng cốt lõi của VPC:
- Isolation: được dùng để tự định nghĩa dải địa chỉ IP, Subnet (mạng con), bảng định tuyến (Route Tables) và Gateway riêng.
- Security: kiểm soát chặt chẽ lưu lượng ra và vào bằng các công cụ tường lửa lớp mạng như Security Group và Network ACLs.
- Cấu trúc linh hoạt: Chia mạng thành các khu vực Công cộng (Public Subnet) để chứa các tài nguyên ra ngoài Internet (ví dụ: Load Balancer, NAT Gateway) và các khu vực Riêng tư (Private Subnet) để chứa các tài nguyên cơ sở dữ liệu.
Quý khách có thể tham khảo thêm các bài viết liên quan về VPC Cloud Gen 4 của vHost tại đây:
1.2. Load Balancing #
Load Balancing là quá trình phân phối đồng đều lưu lượng truy cập mạng hoặc ứng dụng trên một nhóm máy chủ server farm/pool. Thay vì gửi tất cả các yêu cầu đến một máy chủ duy nhất, Load Balancer đóng vai trò như một “Người điều phối giao thông thông minh”, giúp tối ưu hiệu năng và độ sẵn sàng.

Lợi tích của Load Balancing:
- Giúp ngăn chặn một máy chủ nào đó bị quá tải khi phải xử lý quá nhiều yêu cầu, đảm bảo tốc độ phản hồi nhanh và ổn định.
- Khi một máy chủ bị lỗi hoặc đang bảo trì, hệ thống sẽ tự động chuyển hướng lưu lượng đến các máy chủ còn lại đang hoạt động (đây là cơ chế Health Check), đảm bảo dịch vụ không bị gián đoạn .
- Cho phép bạn dễ dàng thêm hoặc bớt máy chủ để thích ứng với sự thay đổi về nhu cầu người dùng.
Quý khách có thể tìm hiểu thêm bài viết giới thiệu về Load Balancing của Cloud Gen 4 vHost tại đây:
2. Thực nghiệm #
2.1. Tạo VPC #
Quý khách truy cập vào giao diện của Cloud Gen 4 để tạo VPC, nếu Quý khách chưa có tài khoản, thì có thể đăng kí tại đây để trải nghiệm dịch vụ:

Lưu ý:
- CIDR ở đây được sử dụng để xác định dải địa chỉ IP nội bộ mà Quý khách muốn gán cho các máy ảo bên trong.
- Quý khách có thể sử dụng công cụ IP Calculator để chia các Subnet phù hợp tại đây:

2.2. Tạo Guest Networks #
Việc tạo các Guest Networks (mạng con) bên trong VPC giúp cô lập lưu lượng mạng giữa các nhóm máy chủ ảo, từ đó ngăn chặn hiệu quả sự lây lan của các cuộc tấn công nếu một máy chủ bị xâm nhập.
Nếu Quý khách muốn tìm hiểu thêm về các chức năng và tính năng có trong Guesst Networks thì có thể tham khảo tại đây:

Lưu ý:
- Phần Network Offering thì mình sẽ chọn: Offering for Isolated VPC networks with Source NAT service enable. Tùy chọn này cho phép tạo mạng VPC dạng cách ly và kích hoạt dịch vụ Source NAT để quản lý lưu lượng truy cập ra ngoài Internet từ bên trong.
- Tiếp theo, Quý khách nhập địa chỉ Gateway cho Guest Network và cấu hình thêm Netmask tương ứng.

Hiện tại trạng thái State đang là Allocated khi mới tạo, vì chưa có máy ảo nào sử dụng.

Tiếp đến bật Rule Allow để cho máy ảo bên trong có thể truy cập ra ngoài VPC và kết nối tới các mạng khác:


2.3. Tạo 2 VM trên Instances chạy Nginx làm Web #
Về cách tạo VM trên Instances, Quý Khách có thể tham khảo tại đây ở mục.
Lưu ý ở mục Network mình sẽ chọn là Guest Network vừa tạo nãy :

=> Quý khách có thể chọn mặc định địa chỉ IP Adress hoặc MAC Adress của máy ảo mà mình muốn tạo.

Sau khi truy cập WM thành công Quý khách có thể copy và dán lệnh này vô cả hai Instances.
Nội dung Web-1
sudo apt update -y<br>sudo apt install nginx -y<br>echo "Hello, I am web1" | sudo tee /var/www/html/index.html<br>sudo systemctl enable nginx<br>sudo systemctl start nginx
Nội dung Web-2
sudo apt update -y
sudo apt install nginx -y
echo "Hello, I am web2" | sudo tee /var/www/html/index.html
sudo systemctl enable nginx
sudo systemctl start nginx
2.4. Cấu hình Load Balancing #
a) Thêm IP Public cho VPC #
Sau khi cấu hình hai Instances xong mình vô lại VPC tiến hành Add thêm một IP Public, IP này đóng vai trò để người dùng truy cập.

b) Phân biệt Source NAT và IP Public #
Sau khi Add xong ta có thêm một IP public và truy cập vào nó để cấu hình load balancing:
Địa chỉ IP được gán tag Source NAT là địa chỉ mặc định được cấp cho VPC ngay khi tạo. Các máy chủ ảo trong VPC sẽ sử dụng địa chỉ này để truy cập ra ngoài Internet.
Lưu ý: Địa chỉ Source NAT chỉ hỗ trợ kết nối đi ra ngoài, không thể sử dụng để truy cập ngược lại từ Internet vào hệ thống nội bộ. Do đó, mình cần thêm một địa chỉ IP Public riêng để phục vụ cho việc truy cập từ bên ngoài vào.

c) Thiết lập Load Balancer Rule #
Ở mục Load Balancing ta cấu hình như sau:

Lưu ý:
- Source CIDR list : ở đây là mình sẽ cho phép địa chỉ IP nào truy cập nếu để như hình thì mình sẽ cho phép tất cả các IP trên toàn thế giới có thể truy cập được
- Private Port: là công thường dùng để để giao tiếp các web backend với nhau.
- Public Port: đây là công người dùng sẽ truy cập qua http .
- Algorithm: mình sẽ chọn loại giao thức là Roud-robin ở đây sẽ cân bằng lưu lượng truy cập giữa hai web.

d) So sánh các thuật toán Load Balancing #
Bảng so sách các thuật toán Load Balancing:
Algorithm | Nguyên lý hoạt động | Ưu điểm | Hạn chế | Khi nào sử dụng |
Round-robin | Phân phối yêu cầu luân phiên tuần tự giữa các máy chủ trong nhóm (1 → 2 → 3 → 1 → …). | +) Cấu hình đơn giản, dễ triển khai. +) Đảm bảo phân phối đều khi các máy chủ có cấu hình tương đương. | +) Không xét đến mức tải hiện tại của máy chủ. +) Dễ gây quá tải nếu có sự chênh lệch hiệu năng giữa các backend. | +) Hệ thống stateless (không lưu session). +) Ứng dụng có tải đồng đều giữa các request. |
Least Connections | Gửi yêu cầu đến máy chủ có ít kết nối đang hoạt động nhất tại thời điểm đó. | +) Cân bằng tải động theo thời gian thực. +) Tránh tình trạng một server bị quá tải. +) Hiệu quả cho ứng dụng có thời gian xử lý không đồng đều. | +) Cần theo dõi liên tục số kết nối của từng backend (phức tạp hơn). +) Không hiệu quả với request cực ngắn (tạo/xoá kết nối liên tục). | +) Ứng dụng có kết nối lâu dài (WebSocket, API stream). +) Hệ thống có tải không đồng đều. |
Source | Băm (hash) địa chỉ IP nguồn của client, ánh xạ cố định mỗi client đến một backend. | +) Duy trì session ổn định (sticky session). +) Không cần lưu cookie hay session persistence tại LB. +) Phù hợp với ứng dụng lưu session cục bộ. | +) Có thể mất cân bằng tải nếu nhiều client cùng một IP (NAT). +) Khi thêm/bớt backend, nhiều client bị đổi backend. +) Không phản ánh được tải thực tế của từng server. | +) Ứng dụng stateful (lưu session trên backend). +) Cần giữ ổn định session cho từng client. |
Sau đó ta truy cập địa chỉ IP Public của Load Balancing để cân bằng hai web.


Tổng kết #
Việc cấu hình Load Balancing cho mô hình VPC Network giúp Quý Khách tối ưu hoá hiệu năng hệ thống, đảm bảo khả năng mở rộng và duy trì tính sẵn sàng cao cho các dịch vụ trong môi trường đám mây.
Thông qua việc phân phối lưu lượng truy cập đồng đều giữa các máy chủ backend, hệ thống sẽ hoạt động ổn định, giảm thiểu tình trạng quá tải và tăng tính linh hoạt trong quá trình vận hành.
Nếu Quý Khách hàng có thắc mắc trong quá trình thực hiện, vui lòng liên hệ qua các kênh hỗ trợ sau:
Tổng đài hỗ trợ khách hàng: 19006806 – phím 2
Email: support@vHost.vn
Ticket: https://members.vhost.vn/tickets/new/
Nếu Quý Khách có bất kỳ câu hỏi hoặc phản hồi nào, xin vui lòng để lại bình luận bên dưới.