12

当我配置 NAT 网关时,我必须选择一个子网,因此据我了解,一个 NAT 网关用于一个子网,它属于一个可用区。

然后我看到了下面的声明

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

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

在此处输入图像描述

4

1 回答 1

29

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

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

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

根据您对风险的偏好,您可能会配置不同的东西。

案例一:一个公有子网,一个私有子网在同一个AZ

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

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

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

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

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

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

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

于 2019-12-30T04:29:06.960 回答