Cấu hình Anycast Layer 4 Load Balancing đa vùng với Envoy Proxy và Keepalived trên VPS giá rẻ
Đặt vấn đề: Thách thức về tính sẵn sàng và độ trễ của hệ thống toàn cầu
Đối với các doanh nghiệp công nghệ, việc duy trì một hệ thống có tính sẵn sàng cao (High Availability - HA) và giảm thiểu tối đa độ trễ mạng (Network Latency) cho người dùng cuối luôn là bài toán sống còn. Khi lượng người dùng phân bố ở nhiều khu vực địa lý khác nhau, một cụm máy chủ đặt tại một vùng duy nhất không còn đủ khả năng đáp ứng. Các giải pháp Cloud danh tiếng như AWS Router 53 Latency-Based Routing hay Google Cloud Load Balancing là những lựa chọn hàng đầu nhưng chi phí lại quá đắt đỏ đối với các startup hoặc doanh nghiệp SME.
Để giải quyết bài toán này với ngân sách tối ưu, bài viết này sẽ hướng dẫn bạn cách tự xây dựng một hệ thống Anycast Layer 4 Load Balancing đa vùng (Multi-Region) bằng cách kết hợp sức mạnh của Envoy Proxy, Keepalived và giao thức định tuyến BGP (Border Gateway Protocol) ngay trên hạ tầng VPS giá rẻ (như Vultr, DigitalOcean, hoặc Linode - những nhà cung cấp hỗ trợ BGP và mang lại dải IP riêng BGP).
Kiến trúc hệ thống Anycast L4 Load Balancing đa vùng
Hệ thống của chúng ta sẽ được triển khai trên ít nhất 2 vùng (ví dụ: Region A - Singapore và Region B - Tokyo). Tại mỗi vùng, kiến trúc bao gồm hai tầng cốt lõi:
- Tầng định tuyến Anycast (BGP & Keepalived): Các VPS tại cả hai vùng sẽ cùng công bố (announce) một địa chỉ IP duy nhất (Anycast IP) lên môi trường Internet thông qua giao thức BGP. Người dùng sẽ tự động được định tuyến đến vùng có khoảng cách mạng ngắn nhất (mức AS-Path tối ưu nhất). Tại mỗi vùng, Keepalived sử dụng giao thức VRRP để đảm bảo tính sẵn sàng cao cục bộ cho địa chỉ IP Anycast đó giữa các node máy chủ nội vùng.
- Tầng cân bằng tải hiệu năng cao (Envoy Proxy): Khi traffic chạm đến IP Anycast tại một vùng, Envoy Proxy hoạt động ở Layer 4 (TCP/UDP) sẽ tiếp nhận dữ liệu và thực hiện cân bằng tải xuống các cụm máy chủ ứng dụng (Backend Application Servers) phía sau với thuật toán tối ưu, xử lý hàng trăm nghìn kết nối đồng thời với bộ nhớ cực kỳ tiết kiệm.
Các bước triển khai chi tiết
Bước 1: Đăng ký BGP và thiết lập IP Anycast với nhà cung cấp VPS
Để triển khai Anycast, bạn cần có một dải IP riêng (thường là tối thiểu /24 đối với IPv4) và một số hiệu mạng độc lập (ASN - Autonomous System Number), hoặc bạn có thể sử dụng dịch vụ BGP Customer Route Announcing do chính các nhà cung cấp VPS giá rẻ hỗ trợ (ví dụ như Vultr cho phép bạn mang IP riêng hoặc thuê IP của họ để phát quảng bá).
Sau khi được nhà cung cấp chấp thuận, bạn sẽ nhận được các thông tin cấu hình BGP Session bao gồm: Neighbor IP, Remote ASN, và Local ASN. Bạn cần cấu hình một phần mềm định tuyến như FRRouting (FRR) hoặc BIRD trên VPS để thiết lập phiên BGP, giúp biến địa chỉ IP đó thành IP Anycast chạy song song ở cả hai vùng.
Bước 2: Cấu hình độ sẵn sàng cao cục bộ với Keepalived
Tại mỗi vùng, nhằm tránh tình trạng một node Load Balancer duy nhất bị sập (Single Point of Failure), chúng ta sử dụng cặp VPS cấu hình Keepalived chạy chế độ Master-Backup chia sẻ chung IP Anycast được gán cục bộ qua VRRP. Khi node Master lỗi, IP sẽ ngay lập tức được chuyển dịch sang node Backup trong vòng vài mili-giây.
Dưới đây là file cấu hình mẫu /etc/keepalived/keepalived.conf cho node Master tại Region A:
vrrp_script check_envoy {
script "/usr/bin/pgrep envoy"
interval 2
weight 2
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 101
advert_int 1
authentication {
auth_type PASS
auth_pass Secret_Token_Here
}
virtual_ipaddress {
192.0.2.1/24 # Đây là IP Anycast của bạn
}
track_script {
check_envoy
}
}Đoạn mã cấu hình trên liên tục kiểm tra tiến trình Envoy Proxy thông qua đoạn script check_envoy. Nếu Envoy gặp sự cố, Keepalived sẽ tự động hạ độ ưu tiên và nhường quyền xử lý IP Anycast cho node dự phòng.
Bước 3: Cấu hình Envoy Proxy tối ưu cho Layer 4 Load Balancing
Envoy Proxy nổi tiếng với kiến trúc hướng sự kiện (event-driven) và hiệu năng vượt trội so với Nginx truyền thống trong các tác vụ xử lý Layer 4 nâng cao. Chúng ta sẽ cấu hình Envoy để lắng nghe trên IP Anycast tại cổng mong muốn (ví dụ: cổng 443 cho traffic mã hóa) và phân phối traffic đến các ứng dụng nội bộ.
Dưới đây là cấu hình chi tiết cho file /etc/envoy/envoy.yaml:
static_resources:
listeners:
- name: l4_forward_listener
address:
socket_address:
address: 192.0.2.1
port_value: 443
filter_chains:
- filters:
- name: envoy.filters.network.tcp_proxy
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy
stat_prefix: ingress_tcp
cluster: backend_application_cluster
clusters:
- name: backend_application_cluster
connect_timeout: 0.25s
type: STRICT_DNS
lb_policy: ROUND_ROBIN
load_assignment:
cluster_name: backend_application_cluster
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: backend-node1.local
port_value: 8080
- endpoint:
address:
socket_address:
address: backend-node2.local
port_value: 8080Cấu hình này sử dụng filter envoy.filters.network.tcp_proxy nhằm đảm bảo luồng dữ liệu TCP được chuyển tiếp trực tiếp xuống tầng ứng dụng ở mức cực kỳ thô, giảm thiểu tối đa overhead CPU và tối ưu hóa thông lượng hệ thống.
Chiến lược xử lý sự cố Failover: Toàn cục và Cục bộ
Điểm tinh túy của hệ thống này nằm ở chiến lược xử lý sự cố đa tầng:
- Sự cố cấp Node (Cục bộ): Nếu một máy chủ chạy Envoy tại Singapore bị chết, Keepalived nội vùng sẽ phát hiện và chuyển IP Anycast sang node dự phòng tại Singapore. Thời gian gián đoạn dưới 1 giây và người dùng tại Đông Nam Á hoàn toàn không nhận ra sự thay đổi.
- Sự cố cấp Vùng (Toàn cục): Nếu toàn bộ hạ tầng mạng hoặc toàn bộ cụm VPS tại Singapore bị sập hoàn toàn, phiên BGP kết nối với nhà cung cấp tại vùng này sẽ bị đứt. Hệ thống router Internet toàn cầu sẽ tự động hiểu rằng phân đoạn Anycast tại Singapore không còn tồn tại và ngay lập tức tái định tuyến toàn bộ người dùng từ Đông Nam Á sang vùng gần nhất kế tiếp (ví dụ là Tokyo). Hệ thống vẫn hoạt động liên tục.
Lời kết và Đánh giá hiệu năng chi phí
Bằng cách kết hợp linh hoạt giữa BGP Anycast, cơ chế HA cục bộ của Keepalived và hiệu suất đỉnh cao từ Envoy Proxy, chúng ta đã kiến tạo thành công một mạng lưới cân bằng tải đa vùng chuẩn doanh nghiệp lớn. Giải pháp này giúp doanh nghiệp tiết kiệm đến 80% chi phí vận hành mạng so với việc thuê các dịch vụ Cloud Native đắt đỏ, đồng thời làm chủ hoàn toàn hạ tầng công nghệ. Hãy bắt tay vào thử nghiệm trên các hệ thống VPS giá rẻ của bạn ngay hôm nay để trải nghiệm sự khác biệt về tốc độ phản hồi hệ thống!
