AWS 最佳实践:我应该在每个可用区都有一个 NAT 网关吗?

问题描述 投票:0回答:3

由于 NAT 网关仅在单个 AZ 内具有冗余,如果我想在每个 AZ 中拥有一对公有/私有子网以实现多 AZ 冗余,我应该在每个 AZ 中拥有一个 NAT 网关,不是吗? ?

否则,如果我只有一个 NAT,如果 AZ 宕机,所有 AZ 中的所有子网都会随之宕机,从而违背了多 AZ 部署的目的。

我是对还是错?

amazon-web-services nat subnet availability-zone
3个回答
23
投票

是的,理想情况下每个可用区 (AZ) 都有一个 NAT 网关。

AWS 在NAT 实例和 NAT 网关的比较中记录了此建议:

高可用:每个可用区的NAT网关均采用冗余实现。在每个可用区中创建 NAT 网关,以确保区域无关的架构。

单个可用区中的单个 NAT 网关仅在该可用区内具有冗余,因此如果存在区域问题,则其他可用区中的实例将没有通往互联网的路由。

注意:每个 NAT 网关以及处理的每 GB 数据均按小时收费(请参阅VPC 定价)。请参阅如何降低 NAT 网关的数据传输费用?


9
投票

来自AWS官方NAT网关文档

如果您在多个可用区拥有资源并且它们共享 一个 NAT 网关,如果 NAT 网关的可用区 已关闭,其他可用区中的资源失去互联网连接 访问,要创建独立于可用区的架构, 在每个可用区中创建 NAT 网关并配置您的 路由以确保资源使用同一个NAT网关 可用区。

NAT 网关为私有子网启用传出互联网连接。需要注意的是,您需要为您创建的私有子网的每个可用区创建一个 NAT 网关,以实现高可用性。

所描述的网络架构由公共子网、私有子网和 HA NAT 网关组成

注意事项

  • 如果必须将成本降至最低,那么每个 NAT 网关每月 32.00 美元的基准成本可能会成为一个阻碍。使用三个 AZ 时,您每月将为三个 NAT 网关支付 96.00 美元。
  • NAT 网关还会增加出站流量的成本。从私有子网流向互联网的每 GB 费用为 0.045 美元。这使得传出流量的成本增加了 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/


0
投票

取决于您的用例。

在每个可用区创建 NAT GTW 之前,我会考虑您使用的具体用例和流量。

我建议阅读这个很棒的答案

私有子网中的 Amazon EC2 实例可以使用 NAT 网关作为 如下:

  • NAT 网关在同一 VPC 的公有子网中启动。
  • 私有子网的路由表需要一个附加条目 将所有 Internet 绑定流量 (0.0.0.0/0) 定向到 NAT 网关。

(*) 基本且琐碎的用例是,对于 DEV 环境,您不需要 3 个 NAT GTW。您甚至可以在一个可用区中运行,因为可用性与生产更相关(如果决定它们应该是彼此的镜像,则与暂存更相关)。

© www.soinside.com 2019 - 2024. All rights reserved.