Tác giả: Luis Felipe Silveira da Silva và Lucas Rolim
Ngày phát hành: 02 APR 2026
Chuyên mục: Best Practices, Cloud Cost Optimization, Elastic Load Balancing, Networking & Content Delivery
Tiếp nối bài viết trước của chúng tôi, Khám phá chi phí truyền dữ liệu cho AWS Network Load Balancers, bài viết này khám phá các mẫu kiến trúc giúp tối ưu hóa các chi phí này.
Hiểu về chi phí truyền dữ liệu giữa các vùng
Khi lưu lượng mạng di chuyển qua các Availability Zone (AZ) của Amazon Web Services (AWS), dù là từ máy khách đến Network Load Balancer (NLB) hay từ NLB đến các đích, AWS áp dụng phí truyền dữ liệu giữa các vùng (inter-zone data transfer) là 0,01 USD mỗi GB cho mỗi chiều. Phí này áp dụng cho cả bộ cân bằng tải và các phiên bản Amazon Elastic Compute Cloud (Amazon EC2) liên quan đến việc truyền dữ liệu. Ví dụ, khi gửi 1 GB dữ liệu từ một phiên bản EC2 của máy khách đến một NLB trong một AZ khác, phí truyền dữ liệu sẽ phát sinh ở cả hai đầu kết nối: máy khách và NLB.
Để hiểu rõ hơn về cấu trúc giá này, hãy xem xét kịch bản sau, được thể hiện trong Hình 1:
- Chi phí truyền dữ liệu giữa các AZ là 0,02 USD mỗi GB.
- Lưu lượng di chuyển từ máy khách ở AZ A đến NLB ở AZ B, phí được chia nhỏ như sau:
- 0,01 USD mỗi GB ở phía người gửi
- 0,01 USD ở phía người nhận
Truyền dữ liệu giữa NLB và đích của nó trong cùng một AZ không phát sinh thêm chi phí nào khác.

Hình 1: Máy khách ở một AZ khác, NLB và đích ở cùng một AZ
- Khi dữ liệu truyền giữa các AZ, chi phí truyền 0,02 USD mỗi GB sẽ phát sinh.
- Khi lưu lượng vượt qua ranh giới AZ hai lần—một lần từ máy khách đến NLB và một lần từ NLB đến đích—tổng chi phí truyền dữ liệu lên tới 0,04 USD mỗi GB cho mỗi chiều. Điều này xảy ra khi máy khách ở AZ A, NLB ở AZ B và đích trở lại AZ A, như thể hiện trong Hình 2.

Hình 2: Máy khách và NLB ở các AZ khác nhau, và đích không ở cùng AZ với NLB
- Nếu luồng lưu lượng vẫn nằm trong cùng một AZ, thì không có phí truyền dữ liệu, như thể hiện trong Hình 3:

Hình 3: Máy khách, NLB và đích đều ở cùng một AZ
Bây giờ chúng ta đã thảo luận về các kịch bản này, hãy xem xét cách lưu lượng di chuyển giữa các AZ và khám phá các tính năng giúp tối ưu hóa và giảm chi phí liên quan.
Lưu lượng từ máy khách đến NLB
Trong các ví dụ trước, chúng ta đã thảo luận về một NLB nội bộ được truy cập bởi một máy khách nội bộ trong cùng một Amazon Virtual Private Cloud (Amazon VPC). Tuy nhiên, các nguyên tắc tương tự áp dụng cho các máy khách truy cập NLB nội bộ thông qua AWS Transit Gateway hoặc kết nối VPC peering.
Theo mặc định, NLB có cài đặt độ ưu tiên vùng DNS (Availability Zone DNS affinity) là 0 phần trăm. Điều này có nghĩa là khi máy khách thực hiện các truy vấn DNS bằng Amazon Route 53 resolver, họ nhận được phản hồi chứa bất kỳ địa chỉ IP NLB khỏe mạnh nào trên tất cả các AZ nơi NLB hiện diện. Mặc dù cách tiếp cận này thường đạt được phân phối lưu lượng tốt hơn, nhưng nó cũng có nghĩa là máy khách có thể gửi lưu lượng đến bất kỳ AZ NLB nào với xác suất ngang nhau, bất kể vị trí của họ. Khi máy khách gửi lưu lượng đến một Elastic Network Interface (ENI) của NLB trong một AZ khác, phí truyền dữ liệu sẽ áp dụng.
Để giảm thiểu chi phí truyền dữ liệu giữa các AZ, bạn có thể bật độ ưu tiên vùng 100% (100% zonal affinity), điều này giữ lưu lượng từ máy khách đến NLB trong cùng một AZ. Tuy nhiên, nếu không có địa chỉ IP NLB khỏe mạnh nào có sẵn trong AZ của máy khách, thì các truy vấn DNS vẫn có thể định tuyến lưu lượng đến các vùng khác.
Các cân nhắc
Việc bật độ ưu tiên vùng 100% có thể dẫn đến phân phối lưu lượng không đồng đều ở cấp NLB. Sự mất cân bằng này có thể mở rộng đến cấp đích khi cân bằng tải giữa các vùng (cross-zone load balancing) bị tắt. Để giải quyết tình huống này:
- Mục tiêu là duy trì phân phối lưu lượng máy khách cân bằng trên tất cả các địa chỉ IP khỏe mạnh và AZ của NLB của bạn.
- Điều này có thể đạt được hiệu quả nhất bằng cách tuân theo các phương pháp hay nhất về kết nối DNS và TCP.
- Nếu không thể đạt được phân phối đồng đều, hãy điều chỉnh dung lượng đích (target capacity) trong mỗi vùng để phù hợp với các mẫu lưu lượng dự kiến.
- Các dịch vụ AWS sau có thể giúp quản lý dung lượng của bạn:
Cách bật độ ưu tiên vùng
Để bật độ ưu tiên AZ bằng AWS Management Console, hãy làm theo các bước sau, cũng được thể hiện trong Hình 4:
- Mở Amazon EC2 console.
- Trong ngăn điều hướng, chọn Load Balancers.
- Chọn tên của NLB để mở trang chi tiết của nó.
- Trên tab Attributes, chọn Edit.
- Trong Availability Zone routing configuration, Client routing policy (DNS record), chọn Availability Zone affinity hoặc Partial Availability Zone affinity.
- Chọn Save changes.

Hình 4: Đặt độ ưu tiên AZ cho NLB
Để bật độ ưu tiên AZ bằng AWS Command Line Interface (AWS CLI):
- Sử dụng lệnh
modify-load-balancer-attributesvới thuộc tínhdns_record.client_routing_policy.
Lưu lượng từ NLB đến đích
Lưu lượng giữa các vùng (cross-zone traffic) giữa NLB và các đích của nó được kiểm soát bởi cấu hình cân bằng tải giữa các vùng ở cả cấp bộ cân bằng tải và nhóm đích (target group). Khi cân bằng tải giữa các vùng được bật, mỗi nút cân bằng tải có thể phân phối lưu lượng đến trên tất cả các đích đã đăng ký trong mọi AZ được bật. Tuy nhiên, khi một nút cân bằng tải định tuyến lưu lượng đến một đích trong một AZ khác, nó sẽ dẫn đến lưu lượng giữa các vùng phát sinh chi phí.
Theo mặc định, NLB có cân bằng tải giữa các vùng bị tắt ở cả cấp bộ cân bằng tải và nhóm đích. Mặc dù một số người dùng bật nó để đạt được phân phối lưu lượng cân bằng hơn trên các đích của họ, quyết định này dẫn đến phí truyền dữ liệu giữa các vùng bất cứ khi nào lưu lượng được gửi đến các đích ở các AZ khác nhau.
Các cân nhắc
Khi cân bằng tải giữa các vùng bị tắt, phân phối lưu lượng giữa các đích có thể trở nên mất cân bằng. Nên duy trì số lượng đích tỷ lệ thuận trong mỗi AZ. Cấu hình này giúp đạt được phân phối lưu lượng nhất quán và hiệu quả trên toàn bộ cơ sở hạ tầng ứng dụng của bạn.
Cách tắt cân bằng tải giữa các vùng
Để sửa đổi cân bằng tải giữa các vùng cho bộ cân bằng tải bằng console, hãy làm theo các bước sau, cũng được thể hiện trong Hình 5:

Hình 5: Tắt cân bằng tải giữa các vùng cho NLB
Để sửa đổi cân bằng tải giữa các vùng cho bộ cân bằng tải của bạn bằng AWS CLI:
- Sử dụng lệnh
modify-load-balancer-attributesvới thuộc tínhload_balancing.cross_zone.enabled.
Để sửa đổi cân bằng tải giữa các vùng cho một nhóm đích bằng console, hãy làm theo các bước sau, cũng được thể hiện trong Hình 6:
- Mở Amazon EC2 console.
- Trên ngăn điều hướng, dưới Load Balancing, chọn Target Groups.
- Chọn tên của nhóm đích để mở trang chi tiết của nó.
- Trên tab Attributes, chọn Edit.
- Trên trang Edit target group attributes, chọn On cho Cross-zone load balancing.
- Chọn Save changes.

Hình 6: Tắt cân bằng tải giữa các vùng cho nhóm đích của NLB
Để sửa đổi cân bằng tải giữa các vùng cho một nhóm đích bằng AWS CLI:
- Sử dụng lệnh
modify-target-group-attributesvới thuộc tínhload_balancing.cross_zone.enabled.
Độc lập Vùng sẵn sàng
Một khía cạnh đáng chú ý khác của cách tiếp cận này là khả năng đạt được Độc lập Vùng sẵn sàng (Availability Zone Independence – AZI) bằng cách tắt cân bằng tải giữa các vùng và bật độ ưu tiên vùng 100%, như thể hiện trong Hình 7.
Cấu hình này không chỉ giúp giảm chi phí truyền dữ liệu mà còn đóng vai trò là phương pháp hay nhất để xây dựng các kiến trúc kiên cường. Việc triển khai AZI hỗ trợ các chiến lược di tản theo vùng và có thể tăng cường tính khả dụng trong các kịch bản mà một AZ cụ thể gặp bất kỳ sự cố nào. Để biết thêm thông tin chi tiết, hãy tham khảo sách trắng về Độc lập Vùng sẵn sàng.
Hơn nữa, bằng cách giữ lưu lượng trong cùng một AZ, bạn có thể giảm độ trễ gói tin (packet latency) thông qua bộ cân bằng tải của mình. Bạn có thể giám sát độ trễ giữa các AZ theo thời gian thực bằng tính năng Infrastructure Performance trong AWS Network Manager.

Hình 7: AZI với NLB
Kết luận
Tối ưu hóa chi phí truyền dữ liệu cho NLB đòi hỏi một cách tiếp cận chu đáo đối với kiến trúc và cấu hình. Bạn có thể triển khai các chiến lược được thảo luận trong bài viết này để giảm đáng kể chi phí truyền dữ liệu giữa các vùng của mình trong khi vẫn duy trì tính khả dụng và hiệu suất cao. Các chiến lược này bao gồm:
- Bật độ ưu tiên vùng 100% cho lưu lượng từ máy khách đến NLB
- Tắt cân bằng tải giữa các vùng
- Duy trì phân phối cân bằng của máy khách và đích trên các AZ
- Cân nhắc độc lập Vùng sẵn sàng
Mặc dù những tối ưu hóa này có thể dẫn đến tiết kiệm chi phí đáng kể, điều quan trọng là phải giám sát hiệu suất ứng dụng của bạn và điều chỉnh chiến lược khi cần. Hãy nhớ rằng giải pháp hiệu quả chi phí nhất phải luôn được cân bằng với các yêu cầu cụ thể của bạn về tính khả dụng, khả năng mở rộng và hiệu suất. Bạn có thể xem xét cẩn thận kiến trúc của mình và sử dụng các tính năng AWS này để tạo ra một cơ sở hạ tầng hiệu quả chi phí và kiên cường hơn, đáp ứng các yêu cầu kinh doanh của bạn. Để biết thêm thông tin về cấu hình và các phương pháp hay nhất của Network Load Balancer, hãy tham khảo tài liệu về Network Load Balancer.
Về tác giả

Luis Felipe Silveira da Silva
Luis Felipe là Kiến trúc sư Giải pháp Chính. Anh là thành viên của nhóm Mạng ứng dụng và làm việc tại Dublin, Ireland. Tận dụng bộ công cụ cân bằng tải và mạng rộng lớn của AWS, anh giúp khách hàng thiết kế và nâng cao khối lượng công việc của họ. Luis Felipe hợp tác chặt chẽ với khách hàng và các nhóm nội bộ của AWS để phát triển các kiến trúc kiên cường và thúc đẩy việc triển khai hiệu quả các giải pháp mạng AWS.

Lucas Rolim
Lucas Rolim, Kiến trúc sư Giải pháp Cấp cao tại Amazon Web Services (AWS), làm việc tại Sydney, Úc, nơi anh là thành viên của nhóm Mạng ứng dụng. Anh tận tâm giúp khách hàng đưa ra các quyết định sáng suốt khi xây dựng trên AWS. Chuyên môn của anh chủ yếu tập trung vào Mạng và Bảo mật.