Networking

AWS EC2 實例之間的私有通信

  • May 29, 2015

我有三個具有彈性 IP 的 EC2 實例。

每個都包含一個伺服器。

每台伺服器都需要在每台機器上打開 TCP 埠 8181、2181、2888 和 3888。

每個伺服器都應該有可能通過這些埠與其他伺服器通信。

我創建了一個安全組(例如,名為 : sg-4d775c42),我在其中放置了以下規則:

自定義 TCP 規則 | 技術支持 | 8181 | sg-4d775c42

自定義 TCP 規則 | 技術支持 | 第2181章 sg-4d775c42

自定義 TCP 規則 | 技術支持 | 2888 | sg-4d775c42

自定義 TCP 規則 | 技術支持 | 3888 | SG-4D775C42

我以為這些規則意味著安全組中的每台機器sg-4d775c42都可以呼叫同一組中其他機器的8181、2181、2888和3888埠。

但似乎並非如此!

如果我向世界開放埠,即以下規則:

自定義 TCP 規則 | 技術支持 | 8181 | 0.0.0.0/0

自定義 TCP 規則 | 技術支持 | 第2181章 0.0.0.0/0

自定義 TCP 規則 | 技術支持 | 2888 | 0.0.0.0/0

自定義 TCP 規則 | 技術支持 | 3888 | 0.0.0.0/0

當然,我的伺服器可以一起交談。

而且,這3台伺服器之間的私有通信是第一步。第二步將連接到另一個專用網路,這 3 個伺服器集合到另一個實例。

所以我的問題是以下一個:

如何創建(或模擬)在我的 EC2 實例之間打開埠的私有網路?

我以為這些規則意味著安全組 sg-4d775c42 中的每台機器都可以呼叫同一組中其他機器的 8181、2181、2888 和 3888 埠。

確實如此,但前提是您使用他們的 AWS 內部 IP。您可以使用ec2-xxx-xxx-xxx-xxx.us-region-1.compute.amazonaws.com每個實例獲取的地址(這將返回 AWS 網路內的內部 IP)或直接通過實例的私有 IP 執行此操作。

如果您使用實例的彈性 IP 通過公共網際網路,AWS 會失去任何關於它們所在安全組的資訊,因此只有基於 IP 的規則才能工作。

引用自:https://serverfault.com/questions/695346