2017-07-18 213 views
1

我的應用程序和經典的內部負載平衡器都在VPC上運行。 它們每個都與三個子網關聯,位於不同的可用區域,幾乎每個都指向一個實例(在我的情況下,容器爲ECS容器)。爲什麼我的ELB有兩個IP地址?如何找到它們?

但是發出NSLOOKUP命令時(nslookup internal-MYLB.us-east-1.elb.amazonaws.com

我可以看到,輸出:

Server:  10.xxx.xxx.37 
Address: 10.xxx.xxx.37#53 

Non-authoritative answer: 
Name: internal-MYLB.us-east-1.elb.amazonaws.com 
Address: 10.xxx.xxx.187 
Name: internal-MYLB.us-east-1.elb.amazonaws.com 
Address: 10.xxx.xxx.204 

對於每個負載平衡器,閹它是一個典型的或應用的一個,兩個IP地址相關聯的到它的域名。

我只是想知道:

  1. 是否對應於兩個負載均衡器節點對每個負載均衡? (也許我錯過了它,但我沒有在他們的文檔中找到這些信息)
  2. 是否AWS系統地產生冗餘?它是可配置的嗎?
  3. 有沒有在UI某種方式看到這些IP地址(我沒有發現他們在UI或使用aws elb describe-load-balancers

對於背景下,我們只有一個遠程夥伴誰試驗問題與負載均衡器關聯的兩個IP地址之一,可能是由於某些子網範圍重疊導致的網絡衝突,但我更願意確定首先看到的內容。

回答

1

ELB是AWS提供的託管服務。在幕後,ELB由多個負載平衡器組成。當流量增加時,ELB會提供許多負載平衡器來處理流量。在另一個術語中,ELB autoscales。但問題是ELB本身並不管理流量。它發生在DNS查找級別。 ELB的所有負載均衡器都會在亞馬遜的DNS服務上註冊其IP地址。因此,對於不同的查詢,亞馬遜將返回不同的IP地址。這就是ELB只有DNS名稱而不是靜態IP地址的原因。

所以當你做nslookup它顯示了ELB的負載均衡器的IP地址。

3

Elastic Load Balancer部分使用DNS將負載分配到不同的可用區域。所以你的「單一」負載均衡器實際上是其中的一組。

AWS會在負載增加和減少時創建並銷燬節點。因此,您不應該直接使用ELB的IP地址。相反,您應該始終使用DNS CNAME來允許ELB分配流量。

在UI中沒有辦法查看IP地址,實際上,您不應該關心它們。

如果您遇到IP地址衝突,請確保您的VPC子網CIDR不與其他任何東西重疊,如VPN。

+2

* UI中沒有辦法* ...檢查左側導航窗格中的「網絡接口」。 ELB有ENI,所以你可以在那裏找到這些。但是你非常正確......地址是動態的,由AWS控制,你通常不需要知道。 –

1

您無法控制這些節點的IP地址,因爲節點可能會隨時變更。但是,您可以控制IP地址類型。你可以閱讀更多here

根據AWS Docs,(你可以閱讀該文檔,瞭解負載均衡器是如何工作的)

當您啓用一個可用性區域爲您的負載均衡,彈性負載平衡會在可用性負載平衡器節點區。如果您在可用區中註冊實例但不啓用可用區,則這些註冊的實例不會收到流量。

相關問題