允许公共子网内具有私有 IP 地址的 EC2 实例访问互联网吗?

允许公共子网内具有私有 IP 地址的 EC2 实例访问互联网吗?
  • 我有一个公共子网(S1),其路由表中有一条指向互联网网关的路由。
  • 在 S1 内部启动了一个 ec2 实例(I1),但未为其分配公网 IP,因此该实例仅有私有 IP 地址,无法从互联网访问。
  • 我已经设置了从网关到实例(I1)的基于路径的路由,它运行良好,这意味着对网关的请求可以毫无阻碍地得到处理。
  • 问题是我需要从我的实例 I1 访问互联网上的某些资源,但该实例不能从外部访问。

我是不是错了,认为实例可以通过网关与互联网通信(就像 Wi-Fi 网络内具有私有 IP 的移动设备通过接入点的公共 IP 与互联网通信一样)?!

只是想知道是否可以在不给我的实例分配公共 IP/弹性 IP 的情况下实现这种情况,因为您也需要互联网访问才能安装任何软件,人们将如何实现这一要求?!

注意:对于私有子网,NAT 网关工作正常,但这是一个公共子网,如果将其指向 NAT 网关,则需要删除指向互联网网关的路由,这意味着我的网关将无法与我的实例通信(因为 ALB/网关仅与 AWS 中公共子网中的实例通信?!)

PS:作为 AWS 新手,请不要滥用任何知识空白,提前致谢。

--亚什

答案1

您误解/误用了公共子网和私有子网。

公有子网具有 Internet 网关 (IGW)。公有子网中的实例需要公有 IP 地址才能访问 Internet。

私有子网具有 NAT 网关或 NAT 实例。私有子网中的实例没有公有 IP 地址。

总结:如果子网有 IGW,则它为公共子网。如果子网有 NAT,则它为私有子网。

您的问题的解决方案:

  1. 创建新的子网。
  2. 创建 NAT 网关。将 NAT 网关分配给子网。
  3. 为您需要移动到私有子网的每个实例创建一个 AMI,然后关闭这些实例。稍后您可以终止它们,但请等到您知道以下步骤正确完成。
  4. 从您在步骤 3 中创建的每个 AMI 启动新的 EC2 实例。
  5. 验证一切正常。然后终止旧实例。您的 AMI 还可作为这些实例的备份。

对您的要求有帮助的是:

“您可以在实例上使用公共 IP 地址,然后使用安全组锁定它们。风险取决于允许的访问类型和访问地点。”

相关内容