下图是一个常见的应用架构,公有子网中的实例通过 IGW 路由到 Internet, 私有子网中的实例可以通过 NAT 网关访问 Internet。但我们只在AZ A里部署了NAT Gateway
:
创建 NAT Gateway
时必须指定其所在的公有子网,所以NAT Gateway
是在特定的AZ中创建的
NAT Gateway
在它所在的AZ具有高可用性(底层是一个EC2集群,可自动伸缩)
但如果在多个AZ中部署了资源,且共享一个 NAT Gateway
—— 就像上图一样,AZ B
和AZ C
里也使用AZ A
的NAT,如果 NAT Gateway
所在的可用区(AZ A
)挂掉,则其他AZ中的资源将无法访问公网
根据业务需求和容错架构,建议在至少两个AZ中创建 NAT Gateway
:
如上图,现在我们在每个AZ都有 NAT 网关,可提供对AZ故障的容错能力,此时如果AZ A出故障,不会影响到B和C的机器。
参考: https://packetswitch.co.uk/aws-nat-gateway-high-availability/