![NAT 网关中断公共子网中实例的传入流量](https://linux22.com/image/778406/NAT%20%E7%BD%91%E5%85%B3%E4%B8%AD%E6%96%AD%E5%85%AC%E5%85%B1%E5%AD%90%E7%BD%91%E4%B8%AD%E5%AE%9E%E4%BE%8B%E7%9A%84%E4%BC%A0%E5%85%A5%E6%B5%81%E9%87%8F.png)
我有可通过 ALB 访问的 Elastic Beanstalk 实例公有子网并希望为他们分配一个 IP 地址(合作伙伴要求我们将一个 IP 列入白名单以访问他们的服务)
我已经关注https://medium.com/@obezuk/how-to-use-elastic-beanstalk-with-an-ip-whitelisted-api-69a6f8b5f844IE
- 创建新的子网、NAT 网关和路由表
- 将新 NAT 子网的所有流量路由到 NAT 路由表中的互联网网关
- 在主路由表中路由来自托管 EC2 实例的公共子网的所有流量
但没有流量到达我的 EC2 实例。我知道 NAT 网关的用例是让私有子网中的实例访问互联网,但你知道当所有内容都在公共子网中时为什么会发生这种情况吗?
答案1
我想我找到了原因:通过更改主路由表,我将所有公共子网变为私有子网,因此 ELB 不再位于公共子网中并且无法处理请求。
以下是我设置固定 IP 的步骤:
- 在公有子网中创建 NAT 网关
- 创建新的私有子网(每个可用区一个)
- 创建路由表,其中默认路由指向 NAT 网关
- 将私有子网关联到新的路由表
- 将 Elastic Beanstalk 配置中的子网更改为使用私有子网。自动扩展组将在终止旧实例之前在私有子网中创建新实例,因此停机时间应该很少甚至没有
这样,公共子网(ELB、RDS)中的所有其他资源都不会受到影响