非 Public IP 实例的 AWS Public 子网互联网访问

AWS Public Subnet Internet Access for Non Public IP Instances

我在 AWS 中有一个 public 子网,其中有 3 个实例 ...

  1. WebApp01(弹性 IP - 例如 54.23.61.239)
  2. WebApp02(私有 IP - 192.168.0.24)
  3. WebApp03(私有 IP - 192.168.0.25)

我的路线 table 设置为 192.168.0.0/16 -> 本地 0.0.0.0/0 -> 互联网网关

我可以看到具有 public IP 的实例可以访问互联网,但没有 public IP 的实例无法访问互联网。

如何为 Public 子网内的其他实例提供 Internet 访问权限?

我是网络新手,我们将不胜感激。

仅供参考:我知道创建一个 NAT,然后使用 0.0.0.0 创建一个单独的路由 table -> NAT 并将该路由与私有子网相关联,从而提供对私有实例的互联网访问子网,但我不知道如何为 public 子网中的非 public IP 实例提供互联网访问权限。请帮忙!

您需要为没有 IP 地址的实例分配 public 个 IP 地址或添加 EIP 以便它们访问 Internet。

A​​WS 互联网网关是一种特殊类型的 NAT 网关(1 - 1 地址映射)。如果没有 public IP 地址,互联网网关就无法映射到 EC2 实例 - 一个 public IP 映射到互联网网关内的一个私有 IP。

尽管您将 NAT 网关添加到具有 Internet 网关的 public 子网, NAT 网关确实为 public 子网中的实例提供地址转换 (NAT) - 仅提供给私有子网中的实例。每个私有子网中的默认路由指向 NAT 网关。

如果您希望仅通过私有 IP 地址来保护这些实例,那么您需要将这些实例移动到私有子网(一个具有 NAT 网关的子网)。

public 子网中没有 public IP 地址的实例已从 Internet 中孤立出来。该实例可以与 VPC(Intranet)中的其他实例通信,但不能与 Internet 通信。

关于什么是 AWS VPC 子网存在很多混淆。共有三种。 1) Public 子网(具有 IGW 的子网)。 2) 私有子网(具有 NAT 网关或 NAT 实例,或两者都没有)。 3) 混合(具有到数据中心或类似的 VGW 路由的混合)。