跳至內容

如何解決 Amazon EC2 未列出 Network Load Balancer IP 位址的問題?

1 分的閱讀內容
0

我想知道為什麼 Amazon Elastic Compute Cloud (Amazon EC2) 沒有列出 Network Load Balancer 的 IP 位址。

簡短描述

Network Load Balancer 每個可用區域都有一個靜態 IP 位址。如果 Network Load Balancer 是公有的,則每個區域都有一個靜態私有 IP 位址和靜態公有 IP 位址。當您新增其他區域時,Amazon EC2 會將 IP 位址新增至 Network Load Balancer 的 DNS 名稱。若要查看您的 Network Load Balancer IP 位址,請對 Network Load Balancer 的 DNS 名稱執行 DNS 查詢

跨多個可用區域執行的負載平衡器,在其 DNS 回應中只會傳回運作狀態良好區域的 IP 位址。

例如,如果 3 個可用區域中只有 2 個運作狀態良好,則 DNS 只會傳回 2 個 IP 位址。但是,如果所有區域的運作狀態都不佳,則 DNS 將無法開啟,並傳回所有區域的 IP 位址。如果 Network Load Balancer 關閉了跨區域負載平衡,DNS 通常會傳回包含作用中目標區域的 IP 位址。然而,在開啟失敗的情況下,無論目標是否存在,DNS 都會傳回所有區域的 IP 位址。

解決方法

確認每個可用區域至少有一個運作狀態良好的目標。如果 target-group-1 中有一個位於 us-east-1a 的目標,且 target-2 位於 us-east-1b 中,則兩個 Network Load Balancer IP 位址都可以連線。然後,您可以在跨區域開啟或關閉的情況下,透過 DNS 查詢找到 IP 位址。

如果每個目標群組中,每個區域沒有至少一個運作狀態良好的目標,那麼您的設計可能會導致連線不穩定。例如,您讓 target-1 在 us-east-1a 的連接埠 80 上接聽 target-group-1,讓 target-2 在 us-east-1b 的連接埠 8080 上接聽 target-group-2。然後,在目標群組 1 中缺少 us-east-1b 的目標,在目標群組 2 中缺少 us-east-1b 的目標。Network Load Balancer DNS 可能無法開啟,然後所有 IP 位址都會出現在 Amazon EC2 中。

若要解決此問題,請為每個目標群組中的每個區域新增另一個目標。或者,開啟 Network Load Balancer 的跨區域功能,以便跨不同區域進行連線。

如果您在 us-east-1a 中有 target-group-1 的目標,那麼 Amazon EC2 中只會顯示 us-east-1a 中的 IP 位址,因為 us-east-1b 中沒有運作狀態良好的目標。若要解決此問題,請在相同目標群組中為 us-east-1b 新增另一個目標。或者,開啟跨區域功能。

AWS 官方已更新 1 年前