如果你使用 EIP 创建 EC2 实例,你是否需要 IGW 来访问互联网

如果你使用 EIP 创建 EC2 实例,你是否需要 IGW 来访问互联网

我对 AWS 中的 Internet 网关感到困惑,如果它说为了让您的 VPC 访问互联网,您需要一个 IGW,那么为什么当您使用 EIP 创建 EC2 实例时,您就可以自动访问互联网。

然后我就有一个无法回答的问题:

那么,为什么当您在 AWS 中创建 EC2 实例(在默认 VPC 中创建)并分配弹性 IP 时,您就可以自动访问互联网,而 AWS 文档中说为了让您的 VPC 可以访问互联网,您需要一个互联网网关?

答案1

VPC 需要 Internet 网关 (IGW) 才能与 Internet 通信。虚拟专用网关 (VPN 端点) 可让您通过 VPN 与其他网络(例如公司网络)通信,从而为您提供 Internet 连接。VPC 端点和 PrivateLink 可为您提供其他有限的连接,例如与 S3 的专用连接,这通常通过 Internet 进行。

您可以在没有互联网网关的情况下自动分配公共 IP 地址。如果您尝试在 VPC 没有互联网网关的情况下为您的实例分配弹性 IP,则不会允许您这样做 - 错误消息是

网络 vpc-05054501693f2f5fb 未连接到任何互联网网关

如果您尝试从具有 EIP 实例的 VPC 分离互联网网关,您会收到此错误消息。

分离错误

我刚刚测试了所有这些以确保万无一失。创建 VPC 并进行一些操作仅需 10 分钟。这就是云/AWS 的优点,通常只需尝试一下就能轻松解决问题。这可能花费了我 0.05 美元。

答案2

要从 VPC 内的实例直接访问互联网,您需要:

  1. 连接到 VPC 的互联网网关 (IGW)
  2. 具有通过 IGW 的默认路由 (0.0.0.0/0) 的路由表的子网(称为“公共子网”)
  3. 附加到实例的公共 IP 或弹性 IP(请注意,您不需要弹性 IP 即可访问互联网,实例可以具有动态非弹性 IP)
  4. 附加到实例的安全组允许出站流量(默认情况下允许)
  5. 与允许流量的子网关联的网络 ACL(默认情况下允许)

如果您在与公共子网中的实例直接建立互联网连接时遇到问题,那么这五点是一个很好的清单。

请注意,在您的问题中,您提到部署到“默认 VPC” - 默认 VPC 已经具有具有适当路由表设置的互联网网关和子网 - 因此您不需要配置一个。

您还可以从“私有子网”间接访问互联网 - 即没有通过 IGW 的默认路由的子网。有很多方法可以做到这一点,但一种典型的方法是将 NAT 网关服务部署到单独的公共子网(即具有通过 IGW 的默认路由的路由表的子网),然后通过 NAT 网关为您的私有子网定义一个带有默认路由 (0.0.0.0/0) 的新路由表。这样就允许通过 NAT 网关而不是直接出站访问互联网。此时私有子网中的实例根本没有公共或弹性 IP。

更多详情可在这找到:互联网网关

和这里:NAT 网关

相关内容