单个 NAT 网关可以跨越多个可用区吗?

Isa*_*aac 10 nat amazon-web-services amazon-vpc aws-nat-gateway

当我配置 NAT 网关时,我必须选择一个子网,因此据我所知,一个 NAT 网关对应一个属于一个可用区的子网。

然后我看到了下面的声明

如果您有多个可用区中的资源并且它们共享一个 NAT 网关,如果 NAT 网关的可用区宕机,其他可用区中的资源将无法访问互联网,要创建独立于可用区的架构,请创建一个 NAT 网关并配置您的路由以确保资源使用同一可用区中的 NAT 网关。

如果我在不同的子网中有多个 EC2,它们如何共享一个 NAT 网关?我理解错了吗?下面是我尝试创建 NAT 网关时看到的屏幕截图

在此处输入图片说明

Joh*_*ein 24

NAT 网关连接到特定的子网,而子网位于特定的可用区中。

私有子网中的Amazon EC2 实例可以使用 NAT 网关,如下所示:

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

根据您对风险的偏好,您可能会以不同的方式配置事物。

案例 1:一个公有子网,一个私有子网在同一个可用区

  • NAT 网关进入公有子网
  • EC2 实例进入私有子网
  • 私有子网的路由表指向公有子网中的 NAT 网关

案例 2:两个公有子网、两个私有子网、一个 NAT 网关

  • NAT 网关进入一个公共子网 ( Public-Subnet-A)
  • EC2 实例在跨两个可用区 ( Private-Subnet-A, Private-Subnet-B) 的私有子网中启动
  • 两个私有子网的路由表指向 NAT 网关

但是,如果可用区 A 出现故障(罕见,但可能发生),则 NAT 网关无法从Private-Subnet-B. 因此,即使系统跨两个可用区运行,也可能会受到影响。

案例 3:两个公有子网、两个私有子网、两个 NAT 网关

  • NAT 网关进入两个公共子网 ( Public-Subnet-A, Public-Subnet-B)
  • EC2 实例在跨两个可用区 ( Private-Subnet-A, Private-Subnet-B) 的私有子网中启动
  • 路由表Private-Subnet-A指向 NAT 网关Public-Subnet-A
  • 路由表Private-Subnet-B指向 NAT 网关Public-Subnet-B

如果其中一个可用区出现故障,则另一个私有子网中的 EC2 实例仍将能够与 Internet 通信,因为它们在同一可用区中有自己的 NAT 网关。

  • @Isaac 是,但不是:可以在一个区域内以及该区域内的单个 VPC 内跨您想要的任意多个 AZ(上面的情况 2,引用 2 个 AZ)共享单个 NAT 网关,但您将支付交叉费用- 区域数据传输,万一发生影响配置 NAT-GW 的可用区的中断,您就会失去弹性……并且 NAT 网关始终位于单个可用区。 (2认同)
  • 选项 2 还将导致跨可用区带宽费用。这可能比在各自的可用区中运行 2 个 NAT 网关的成本更高。https://aws.amazon.com/premiumsupport/knowledge-center/vpc-reduce-nat-gateway-transfer-costs/ (2认同)
  • @Mint 是的,案例 3 描述了对两个单独的路由表的需求——每个私有子网一个,因为它们将指向它们的“自己的”NAT 网关。 (2认同)
  • @Mint 您可以将主路由表用于任何目的(例如相反)。将其视为私有路由表可能是一个很好的“默认”,以便任何新子网默认为私有,除非明确配置为公共 - 从安全角度来看,这更安全。 (2认同)