Amazon-Web-Services
來自 AWS 自動擴展組的傳出流量的靜態 IP 地址
我將在 VPC 的預設子網中的 Elastic Beanstalk 自動縮放組中擁有多個 EC2 實例。這些 EC2 實例上的應用程序需要連接到使用 IP 地址白名單允許訪問的第三方服務。因此,我需要一個或多個靜態 IP 地址,我可以將其提供給該服務提供商,以便將它們添加到白名單中。我的理解是,獲取靜態 IP 的唯一方法是獲取彈性 IP 地址。而且我一次只能將彈性 IP 與一個 EC2 實例相關聯——我不能將它與我的整個子網或網際網路網關相關聯(這是正確的嗎?)。那麼我是否需要為每個 EC2 實例提供一個彈性 IP,以便每個實例都可以單獨列入白名單?如果自動縮放添加另一個實例,那將如何工作?我是否應該擁有一個具有彈性 IP 的 EC2 實例,並通過該實例路由所有傳出流量?如果是這樣,該實例是否需要僅用於此目的,或者它是否可以是執行我的應用程序的實例之一?
你需要一個 NAT。此配置通常用於支持 VPC 中的私有子網,這裡有相當詳細的指南。一旦您的 VPC 配置為使用 NAT 實例,所有出站流量都將歸屬於 NAT 實例的 EIP。
如果是這樣,該實例是否需要僅用於此目的,或者它是否可以是執行我的應用程序的實例之一?
從技術上講,您可能可以,但這不是一個好主意:
- 隔離角色是很好的安全性。
- 您希望您的應用程序伺服器具有相似或相同的負載配置文件。如果一個實例由於 NAT 而有 10% 的額外負載,那麼當您達到該實例的限制時,您將不得不提前擴展。隨著更多實例添加到您的集群中,NAT 變得更加繁忙,這將變得更糟。
- 您希望您的應用程序伺服器相同且短暫,以便在出現問題或需要擴展時可以拆除和/或更換它們。擁有一個與其他應用程序伺服器不同的應用程序伺服器將是一件令人頭疼的事情。
如果您的實例是容器化的,您也許可以擺脫它,但這可能仍然不是一個好主意。
另請記住,您的 NAT 實例可能是單點故障,因此您可能需要考慮冗餘。