AWS最佳实践:每个AZ都有NAT网关吗?

时间:2017-06-23 11:47:23

标签: amazon-web-services nat subnet availability-zone

由于NAT网关在单个AZ中只有冗余,如果我想在每个AZ中有一对公共/私有子网用于多AZ冗余,我应该在每个AZ中都有一个NAT网关,不应该'我呢?

否则,如果我只有一个NAT,如果AZ发生故障,所有AZ中的所有子网都会关闭,从而无法实现此多区域部署的目的。

我是对还是错?

2 个答案:

答案 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网关组成

注意事项

    如果将成本保持在最低水平是必不可少的,则每个NAT网关每月32.00美元的基准成本可能会成为阻碍。使用三个可用区时,您每月需要为三个NAT网关支付$ 96.00。
  • NAT网关还会增加出站流量的成本。您必须支付从私有子网到Internet的每GB 0.045 USD的溢价。这样会将传出流量的成本提高了50%。

加分!

...

 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/