Amazon-Ec2
負載均衡器後面的外部網際網路訪問
我正在嘗試將我們的 AWS EC2 實例放在負載均衡器後面。這很好用,但我有一個問題,我不確定如何解決。
負載均衡器後面的實例沒有分配公共 IP 地址,並且除了通過負載均衡器外無法直接訪問 Internet。
問題是這意味著我無法使用 yum 更新實例,因為您得到以下資訊:
Loaded plugins: priorities, update-motd, upgrade-helper Could not retrieve mirrorlist http://repo.eu-west-1.amazonaws.com/latest/main/mirror.list error was 12: Timeout on http://repo.eu-west-1.amazonaws.com/latest/main/mirror.list: (28, 'Connection timed out after 10000 milliseconds')
同樣,出於同樣的原因,我無法將最新程式碼從 git 下載到實例。
我已經進行了搜尋,但找不到解決方案。其他人如何解決這個問題?對此的最佳做法是什麼?為負載均衡器後面的每個實例分配公共 IP 的唯一方法是什麼?
您不需要為每個實例提供公共 IP 地址,您只需要為這些實例提供 Internet 訪問。
一種方法是使用NAT 網關,但您也可以設置一個NAT 實例,或者通過為一個實例分配一個公共 IP 地址並在那里安裝一個 (HTTP) 代理伺服器來讓其他伺服器連接到您自己的實例。
@HBrijn 描述了可能是最常見的方法。
如果您只想執行作業系統更新,您還可以使用EC2 Systems Manager (此處的完整文件)。這是更多的工作,但可以自動化。
您仍然可以臨時或永久地將彈性 IP 分配給您的實例。這不是標準做法,但如果您想手動進行更新,這是一種解決方法。