我有一个关于NAT网关和互联网绑定弹性豆茎的问题。我的配置如下:
现在,如果我为这3个私有子网创建一个NAT网关,这意味着我需要在不同的AZ和3个不同的弹性IP中为每个子网创建一个?我想我错过了一些东西,但除非这种配置有意义,否则我看不到它。
答案 0 :(得分:1)
<强> TL; DR 强>
这是你的选择。从技术上讲,一个NAT实例可以为一个VPC中的所有私有子网提供服务。
稍长一点:
首先,我们区分NAT实例(配置为NAT GW的EC2实例,由最终用户管理)和NAT网关(由AWS管理的NAT实例)。
如果是NAT实例,那么实现它的人需要更多地了解如何实现它。回答这个问题是不够的。
如果是NAT GW,那么AWS says“每个NAT网关都在特定的可用区域中创建,并在该区域中实现冗余”。我将其解释为:只要整个AZ没有关闭,AWS就会为NATGW保证HA(可能会导致服务中断或降级)。
从技术上讲,只要所有3个私有子网的路由表都提供到这个NATGW的路由,你就应该在你的任何一个公有子网中使用单个NAT GW(并且我想是隐式的但是安全组/ acl已配置)允许使用该路线)。当然,由于此配置,您需要为AZ之间的带宽使用付费。
但显然,如果AZ发生故障,这不是容错的。
如果您不希望所有私有子网在NAT GW关闭时丢失Internet连接,那么您需要拥有更多NAT GW。关于是否有一个以上的决定,如果有,那么我猜多少是个案。
如果您有2个NAT GW,那么为了实现故障转移,您需要设置监控和故障转移,以确保如果AZ发生故障,所有私有子网(由该AZ中的NAT GW服务)开始发送流量到其他NAT GW。 Good explanation here。这是AFAIK的一些工作。
最后,EIP和NAT GW之间的关系是一对一的。所以是的,你必须为你创建的每个NAT GW创建一个EIP。