AWS EC2 實例之間的私有通信
我有三個具有彈性 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 的規則才能工作。