单个 NAT 网关是否可以跨越多个 AZ?

Can a single NAT Gateway span across multiple AZ?

当我配置 NAT 网关时,我将不得不 select 一个子网,因此据我了解,一个子网对应一个 NAT 网关,该子网属于一个可用区。

然后我看到了下面的说法

If you have resources in multiple Availability Zones and they share one NAT gateway, in the event that the NAT gateway's Availability Zone is down, resources in the other Availability Zones lose internet access, To create an Availability Zone-independent architecture, create a NAT gateway in each Availability Zone and configure your routing to ensure that resources use the NAT gateway in the same Availability Zone.

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

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

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

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

根据您的风险偏好,您可以进行不同的配置。

情况一:1个public子网,1个私有子网在同一个AZ

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

案例二:两个public子网,两个私有子网,一个NAT网关

  • NAT 网关进入一个 public 子网 (Public-Subnet-A)
  • EC2 实例在两个 AZ(Private-Subnet-APrivate-Subnet-B)的私有子网中启动
  • 私有子网 的路由 Table 指向 NAT 网关

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

案例 3:两个 public 子网,两个私有子网,两个 NAT 网关

  • NAT 网关进入两个 public 个子网(Public-Subnet-APublic-Subnet-B
  • EC2 实例在两个 AZ(Private-Subnet-APrivate-Subnet-B)的私有子网中启动
  • 路由TablePrivate-Subnet-A指向Public-Subnet-A
  • 中的NAT网关
  • 路由TablePrivate-Subnet-B指向Public-Subnet-B
  • 中的NAT网关

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