由于NAT网关在单个AZ中只有冗余,如果我想在每个AZ中有一对公共/私有子网用于多AZ冗余,我应该在每个AZ中都有一个NAT网关,不应该'我呢?
否则,如果我只有一个NAT,如果AZ发生故障,所有AZ中的所有子网都会关闭,从而无法实现此多区域部署的目的。
我是对还是错?
答案 0 :(得分:7)
是的,理想情况下,每个可用区(AZ)都有一个NAT网关。
AWS在Comparison of NAT Instances and NAT Gateways处记录此建议。单个AZ中的单个NAT网关仅在该AZ内具有冗余,因此如果存在区域问题,则其他AZ中的实例将没有到达因特网的路由。
答案 1 :(得分:1)
来自AWS官方NAT Gateway doc:
如果您在多个可用区中拥有资源并且它们共享 一个NAT网关,如果NAT网关的可用区 关闭,其他可用区中的资源失去了互联网 访问,要创建独立于可用区的架构, 在每个可用区中创建一个NAT网关并配置您的 路由以确保资源使用相同的NAT网关 可用区。
NAT网关为私有子网启用传出Internet连接。需要特别注意的是,您需要为创建专用子网的每个可用区创建一个NAT网关,以实现高可用性。
所描述的网络架构由公共子网,专用子网和HA NAT网关组成
...
azs = ["us-east-1a", "us-east-1b", "us-east-1c"]
private_subnets = ["10.0.1.0/24", "10.0.2.0/24", "10.0.3.0/24"]
public_subnets = ["10.0.101.0/24", "10.0.102.0/24", "10.0.103.0/24"]
enable_nat_gateway = true
single_nat_gateway = false # to get 1 NGW x AZ
...
引用链接: https://cloudonaut.io/advanved-aws-networking-pitfalls-that-you-should-avoid/