Tác giả: Ankit Chadha và Pushkar Patil
Ngày đăng: 18 tháng 04 năm 2025
Danh mục: Amazon VPC, Elastic Load
Application Load Balancer (ALB) hoạt động ở lớp 7 của mô hình OSI và cho phép bạn cân bằng tải các yêu cầu HTTP và HTTPS tới các điểm đích backend. Vào tháng 3 năm 2025, chúng tôi đã ra mắt tính năng tích hợp giữa ALB và Amazon VPC IP Address Manager (IPAM), cho phép bạn sử dụng các khối địa chỉ IP xác định trước cho các ALB hướng ra Internet. Tính năng này giúp bạn giảm chi phí địa chỉ IPv4 công cộng bằng cách sử dụng địa chỉ Bring Your Own IP (BYOIP) và duy trì danh sách địa chỉ IP được phép một cách nhất quán (với BYOIPv4 hoặc với các tiền tố liền kề do Amazon cung cấp) cho các ALB hướng Internet của bạn khi làm việc với đối tác hoặc khách hàng bên ngoài.
Trong bài viết này, chúng tôi thảo luận về các kiến thức cơ bản và những điểm cần lưu ý khi sử dụng tính năng này, cũng như cách cấu hình thông qua AWS Management Console và API.
Điều kiện tiên quyết
Trong các phần sau, chúng tôi giả định rằng bạn đã quen thuộc với các kiến thức nền tảng của ALB, chẳng hạn như khởi tạo một ALB, tạo listeners và liên kết target group. Bạn có thể tìm thêm thông tin về ALB trong tài liệu và xem các bản demo trên trang Elastic Load Balancer (ELB).
Chúng tôi cũng giả định rằng bạn đã quen thuộc với các dịch vụ mạng của AWS, như Amazon Virtual Private Cloud (Amazon VPC), subnet, bảng định tuyến VPC và VPC IPAM.
Tại sao cần địa chỉ IP xác định cho ALB?
Một ALB hướng Internet định tuyến các yêu cầu từ khách hàng qua Internet và chuyển tiếp những yêu cầu đó đến các mục tiêu phía sau. ALB hướng Internet liên kết các địa chỉ IP công cộng với các Giao diện mạng đàn hồi (ENI) của nó. Trước khi tính năng này được ra mắt, ALB hướng Internet lấy địa chỉ IP công cộng một cách ngẫu nhiên từ các khối địa chỉ IP công cộng vùng của Amazon. Do đó, khách hàng không thể sử dụng các địa chỉ IP xác định trước cho các ALB hướng ra Internet của mình
Việc tích hợp ALB với IPAM cho phép bạn sử dụng các địa chỉ IP công cộng có thể dự đoán trước trên ALB hướng Internet, điều này giúp dễ dàng duy trì danh sách IP cho phép (allowlist) với các đối tác hoặc khách hàng bên ngoài. Tính năng này cũng hỗ trợ các địa chỉ BYOIP (Bring Your Own IP – mang IP của riêng bạn). Các địa chỉ IP công cộng do Amazon cung cấp có tính phí theo giờ, vì vậy bạn có thể tiết kiệm chi phí sử dụng địa chỉ IP công cộng khi sử dụng các khối địa chỉ BYOIP cho ALB của mình.
Khi bạn sử dụng tính năng này, ALB của bạn có thể hoạt động theo chế độ hai ngăn xếp (dual-stack) với cả địa chỉ IPv4 và IPv6. Bạn có thể sử dụng tích hợp ALB và IPAM để nhận được các địa chỉ IPv4 công cộng có thể dự đoán, còn các địa chỉ IPv6 sẽ được cấp từ một khối địa chỉ IPv6 công cộng vùng do Amazon sở hữu. Lý do là ALB hiện chưa hỗ trợ BYOIPv6 tại thời điểm viết bài này.
DNS cho ALB hướng Internet
Trong phần này, chúng tôi thảo luận cách DNS hoạt động đối với ALB hướng Internet. Những thông tin này sẽ được sử dụng trong phần giải thích về tích hợp IPAM với ALB ở các phần sau.
Khách hàng sử dụng DNS để truy cập các ứng dụng được lưu trữ phía sau một ALB hướng Internet. Mỗi ALB hướng Internet nhận được một Tên miền đầy đủ (FQDN – Fully Qualified Domain Name). AWS sẽ tự động cập nhật FQDN này với các địa chỉ IP công cộng của ALB, dù đó là địa chỉ do Amazon cung cấp hay địa chỉ BYOIP. Hình 1 minh họa sự tương tác giữa ALB và Amazon Route 53.

Hình 1: DNS cho các ALB hướng Internet
Tích hợp ALB và VPC IPAM
Bạn cần sử dụng VPC IPAM để cung cấp các địa chỉ IP có thể dự đoán được cho ALB hướng Internet của mình. Để thực hiện điều này, trước tiên bạn cần tạo một IPAM Pool cấp vùng (Regional IPAM Pool) với dải địa chỉ IP mong muốn, sau đó cấu hình ALB để lấy các địa chỉ IP công cộng từ IPAM Pool đó. Hình 2 minh họa mối quan hệ giữa ALB hướng Internet, VPC IPAM và DNS.

Hình 2: Tương tác giữa ALB, VPC IPAM và DNS
Lệnh gọi API Create ALB tham chiếu tới một IPAM Pool của VPC để lấy các địa chỉ IP công cộng. Trong ví dụ này, ALB được tạo trong ba Vùng khả dụng (AZs – Availability Zones).
- ALB cố gắng lấy địa chỉ IP công cộng cho ENI của nó trong availability-zone-1 từ IPAM Pool của VPC.
- IPAM Pool bao gồm CIDR 192.0.2.144/29 và có sẵn các địa chỉ IP. IPAM cấp phát địa chỉ IP sẵn có tiếp theo (192.0.2.144) cho ENI của ALB tại availability-zone-1.
- VPC IPAM đánh dấu địa chỉ IP này là “đang sử dụng” (in use).
- VPC IPAM cung cấp địa chỉ IP đã cấp phát cho ALB. ENI của ALB tại availability-zone-1 nhận địa chỉ IP này.
- Route 53 thêm địa chỉ IP đã cấp phát vào FQDN của ALB.
Quy trình này được lặp lại cho từng ENI của ALB, và mỗi ENI của ALB sẽ nhận một địa chỉ IP công cộng từ IPAM Pool của VPC.
Trường hợp IPAM Pool của bạn không có đủ địa chỉ IP khả dụng cho tất cả ENI của ALB, ALB sẽ trước tiên truy vấn VPC IPAM để lấy các địa chỉ IP. VPC IPAM sẽ cung cấp tối đa số lượng địa chỉ có thể, và phần còn lại sẽ được cấp từ bộ IP công cộng vùng do Amazon sở hữu. Hình 3 minh họa cho tình huống này.

Hình 3: Dự phòng từ bộ địa chỉ IP công cộng vùng do Amazon sở hữu
- IPAM Pool (192.0.2.144/29) có tổng cộng 8 địa chỉ IP, trong đó 6 địa chỉ đã được sử dụng trước khi ALB được tạo.
- Lệnh gọi API Create ALB tham chiếu đến VPC IPAM Pool để lấy các địa chỉ IP công cộng. ALB được tạo trong 3 vùng khả dụng (AZs).
- VPC IPAM Pool cung cấp địa chỉ IP công cộng cho các ENI của ALB tại availability-zone-1 và availability-zone-2. Tại thời điểm này, cả 8 địa chỉ IP trong IPAM Pool đều đã được sử dụng.
- ENI của ALB tại availability-zone-3 yêu cầu một địa chỉ IP công cộng từ VPC IPAM.
- VPC IPAM Pool không còn địa chỉ IP nào khả dụng.
- ,7. Bộ địa chỉ IP công cộng vùng do Amazon sở hữu sẽ cung cấp địa chỉ IP tiếp theo cho ENI của ALB tại availability-zone-3.
Cơ chế dự phòng này đảm bảo rằng ALB vẫn hoạt động bình thường trong trường hợp VPC IPAM Pool không đủ địa chỉ IP khả dụng. Tuy nhiên, điều này có thể khiến việc duy trì danh sách IP cho phép (IP allowlist) xác định cho các ALB hướng Internet trở nên khó khăn hơn. Để giảm thiểu điều này, chúng tôi khuyến nghị bạn sử dụng chỉ số PercentAvailable trên CloudWatch của IPAM Pool để thiết lập cảnh báo nếu tỷ lệ địa chỉ IP khả dụng giảm xuống dưới một ngưỡng cụ thể. Hành động khắc phục có thể là cấp phát thêm các dải CIDR vào IPAM Pool, sau đó cập nhật các dải CIDR mới này cho khách hàng hoặc đối tác của bạn để họ bổ sung vào danh sách cho phép (allowlist)
Tính năng này hoạt động như thế nào khi ALB mở rộng (scaling)?
Một ALB bao gồm một cụm các ALB-node chạy ở nền. Theo cài đặt mặc định, ALB triển khai một node trong mỗi vùng khả dụng (AZ), và một ALB hướng Internet sẽ cần một địa chỉ IP riêng (private) và một địa chỉ IP công cộng (public) cho mỗi node ALB. ALB có thể tự động mở rộng hoặc thu hẹp tùy theo lưu lượng và tải.
Khi ALB mở rộng (scale out), các node hiện tại có thể được thay thế bằng các ALB-node với kích thước khác, hoặc các node mới sẽ được thêm vào.
Trong trường hợp ALB hướng Internet mở rộng và thêm node mới, nó sẽ tuân theo quy trình giống như Hình 2 để lấy địa chỉ IP công cộng từ VPC IPAM Pool. Nếu VPC IPAM Pool không có đủ địa chỉ IP khả dụng, thì bộ địa chỉ IP công cộng vùng do Amazon sở hữu sẽ cung cấp địa chỉ IP cho ALB mở rộng, như đã minh họa ở Hình 3.
Cài đặt
Phần này sẽ hướng dẫn bạn cách sử dụng các địa chỉ IP xác định trước (deterministic IP addresses) cho một ALB mới.
Bước 1: Đưa các tiền tố IP (IP prefixes) vào VPC IPAM Pool
Bước đầu tiên là cấu hình các dải CIDR trong một IPAM Pool của VPC. Bạn có thể sử dụng các địa chỉ IP công cộng do Amazon cung cấp hoặc CIDR BYOIPv4 (mang địa chỉ IP của riêng bạn) vào IPAM Pool. Tham khảo tài liệu để biết thêm chi tiết về cách thiết lập trong VPC IPAM.
Lưu ý: Vị trí (locale) của IPAM Pool phải nằm trong khu vực AWS (AWS Region) nơi bạn muốn tạo ALB.
Xác minh: Đảm bảo rằng các CIDR đã ở trạng thái “provisioned” (đã cấp phát) trong IPAM Pool.

Hình 4: Xác minh IPAM Pool đang ở trạng thái provisioned (đã cấp phát)
Bước 2: Tạo ALB hướng Internet và cấu hình để lấy địa chỉ IP từ VPC IPAM Pool
Chọn tùy chọn “Use IPAM Pool for public IPv4 addresses” (Sử dụng IPAM Pool cho các địa chỉ IPv4 công cộng) khi tạo ALB hướng Internet.

Hình 5: Chọn một IPAM Pool khi tạo ALB
Ngoài ra, bạn cũng có thể sử dụng lệnh gọi API sau khi tạo ALB hướng Internet:
YAML
aws elbv2 create-load-balancer \
–type application \
–name <ALB name> \
–ip-address-type ipv4 \
–subnets <list of subnets separated by space> \
–scheme internet-facing \
–ipam-pools Ipv4IpamPoolId=<VPC IPAM pool id>
Bước 3: Xác minh (Verification)
Bạn có thể xem chi tiết của IPAM Pool đã cung cấp các địa chỉ IPv4 công cộng trong tab Network mapping của ALB, như minh họa trong hình sau.

Hình 6: ALB nhận các địa chỉ IP công cộng từ IPAM Pool
Di chuyển một ALB hướng Internet hiện có sang sử dụng địa chỉ do VPC IPAM cung cấp
Trong phần này, chúng tôi sẽ trình bày các bước và lưu ý nếu bạn muốn sử dụng địa chỉ IPv4 công cộng từ IPAM Pool của VPC cho ALB hướng Internet hiện tại của mình.
Trên tab Network mapping của ALB hiện có, chọn Edit IP Pools.

Hình 7: Chọn ‘Edit IP Pools’ để di chuyển một ALB hiện có sang sử dụng địa chỉ do IPAM cung cấp
Ở màn hình tiếp theo, chọn Use IPAM Pool for public IPv4 address, sau đó chọn IPAM Pool từ danh sách thả xuống:

Hình 8: Chọn IPAM Pool cho các địa chỉ IP công cộng của ALB
Bạn cũng có thể sử dụng lệnh gọi API sau để cấu hình ALB hướng Internet hiện có sử dụng địa chỉ IPv4 công cộng do VPC IPAM Pool cung cấp:
YAML
aws elbv2 modify-ip-pools \
–load-balancer-arn <ARN of the ALB> \
–ipam-pools Ipv4IpamPoolId=<VPC IPAM Pool ID>
Khi bạn thay đổi IP Pool cho một ALB hướng Internet hiện có, ALB tạo các ENI mới và sử dụng các địa chỉ IPv4 do VPC IPAM Pool cung cấp cho các interface mới này. Các ENI mới này cũng tiêu thụ một địa chỉ IP từ các CIDR của subnet riêng tư. Do đó, chúng tôi khuyến nghị bạn theo dõi mức sử dụng địa chỉ IP của subnet riêng tư và đảm bảo rằng có đủ địa chỉ IP riêng sẵn có để cấp cho các ENI mới của ALB được tạo ra. Bạn có thể sử dụng metric SubnetIPUsage trên CloudWatch của VPC IPAM để theo dõi mức sử dụng địa chỉ IP của subnet. Tham khảo trang metric CloudWatch của VPC IPAM để biết thêm chi tiết.
Sau khi di chuyển một ALB hướng Internet hiện có sang sử dụng địa chỉ IP công cộng từ VPC IPAM Pool, FQDN của ALB sẽ chỉ phân giải về các địa chỉ do IPAM Pool cung cấp. Tuy nhiên, ALB vẫn sẽ duy trì các kết nối hiện có cho đến khi hết khoảng thời gian chờ (timeout) của HTTP keepalive đã được cấu hình.. Tham khảo bài viết Amazon Networking để biết thêm chi tiết về cách bạn có thể làm việc với bộ đếm thời gian HTTP keepalive để ngắt kết nối client một cách nhẹ nhàng.
Khi tất cả các kết nối mở trên các địa chỉ IP công cộng cũ (không phải do VPC IPAM Pool cung cấp) đã đóng, ALB sẽ xóa các ENI liên kết với tập địa chỉ IPv4 công cộng trước đó. Tại thời điểm này, bạn sẽ chỉ thấy các ENI dành cho các địa chỉ IP mới của ALB. Cơ chế này đảm bảo rằng ALB sử dụng tài nguyên địa chỉ IP private của subnet một cách tối ưu.
Các ENI liên kết với các địa chỉ IP trước đó sẽ bị xóa, do đó bất kỳ client nào có thể đã lưu cache phản hồi DNS với các địa chỉ IPv4 công cộng cũ của ALB sẽ không nhận được phản hồi. Để giảm thiểu điều này, chúng tôi khuyến nghị tối ưu thiết lập TTL của các bản ghi DNS của bạn, hoặc yêu cầu client làm mới DNS cache sau khi bạn di chuyển ALB.
Những điều cần biết
- Tính năng địa chỉ IP xác định trước (deterministic IP address) của ALB chỉ hoạt động với các load balancer hướng Internet (internet-facing load balancers).
- Bạn không thể xóa bất kỳ CIDR nào đang được sử dụng trong VPC IPAM Pool sau khi đã tạo một ALB sử dụng các địa chỉ IP từ IPAM Pool cho các ENI của nó.
- Đối với kịch bản nhiều tài khoản (multi-account), bạn có thể sử dụng VPC IPAM để đưa các CIDR vào một tài khoản trung tâm, sau đó sử dụng AWS Resource Access Manager (AWS RAM) để chia sẻ các VPC IPAM Pool giữa nhiều tài khoản. Xem tài liệu VPC IPAM để biết thêm chi tiết.
- Bạn cần VPC IPAM ở cấp độ nâng cao (advanced tier) để quản lý địa chỉ IP trên nhiều tài khoản. Xem trang định giá VPC IPAM để biết thêm chi tiết về các tính năng được bao gồm trong cấp độ nâng cao, cũng như thông tin về chi phí.
Kết luận
Trong bài viết này, chúng tôi đã giải thích về sự tích hợp giữa ALB và Amazon VPC IPAM, cũng như cách sử dụng tính năng này thông qua AWS Console và API.
Tích hợp này cho phép bạn giảm chi phí địa chỉ IPv4 công cộng do Amazon cung cấp bằng cách sử dụng địa chỉ BYOIPv4 với ALB.
Tính năng mới này cũng cho phép bạn nhận các địa chỉ IPv4 công cộng liền kề trên ALB hướng Internet của mình, giúp duy trì danh sách IP cho phép (IP allowlists) nhất quán đối với các đối tác hoặc khách hàng bên ngoài dễ dàng hơn.
Để bắt đầu, hãy đọc ALB documentation.
Author bios

Pushkar Patil
Pushkar Patil là một Chủ sản phẩm (Product Owner) trong nhóm mạng của AWS tại California. Anh có hơn mười năm kinh nghiệm trong việc thúc đẩy đổi mới sản phẩm và lập kế hoạch chiến lược trong lĩnh vực điện toán đám mây và hạ tầng. Pushkar đã ra mắt thành công nhiều sản phẩm mới bằng cách thấu hiểu nhu cầu của khách hàng và cung cấp các giải pháp sáng tạo. Khi không làm việc, bạn có thể bắt gặp anh — một người đam mê môn cricket — đang đi du lịch cùng gia đình.

Ankit Chadha
Ankit là một Kiến trúc sư giải pháp chuyên gia về mạng (Networking Specialist Solutions Architect), hỗ trợ các tài khoản ngành công nghiệp tại AWS. Anh yêu thích việc xây dựng các kiến trúc mạng bảo mật và có khả năng mở rộng cao cho khách hàng của mình.Trong thời gian rảnh, Ankit thích chơi cricket, gây dựng lòng tin với con mèo của mình, và đọc tiểu sử.