如何让 AWS VPC EC2 实例能够看到 AWS API?

Pet*_*nce 6 nat proxy amazon-web-services amazon-vpc

我们正在通过 CloudFormation 在 AWS VPC 内部启动基础设施。

我们使用自动扩展组来启动 VPC-EC2 实例(因此,我们不直接启动实例;ASG 负责管理)。

在 PVC 内部,EC2 实例只有一个私有 IP;不做进一步的工作,他们就看不到外面的世界

当这些实例启动时,我们有一些引导任务需要与各种 AWS API 对话。我们还有一些需要 AWS API 流量的持续任务。

你如何解决这个明显的先有鸡下蛋的问题?

我们已经阅读了:

  • NAT 实例 - 但不太喜欢这个,因为它是我们堆栈的另一层。
  • 为每个需要通话的 VPC 实例分配弹性 IP - 但是 a) 它们都这样做,并且 b) 由于我们使用的是 ASG,我们不知道在配置时将 EIP 分配给哪些实例,以及 c) 我们需要设置一些东西来监视这些 ASG 并在实例终止和替换时分配 EIP
  • 启动一个实例(实际上是一个负载平衡对,可能跨越 AZ)以充当所有 API 流量的 AWS-API 代理

我想我想知道我们是否可以打开某种后门,允许我们的 VPC EC2 实例访问 AWS API 端点,但没有别的,对于廉价的复杂设置,不会添加另一个网络跃点层到我们用于服务请求的基础设施。

小智 3

您已经介绍了让私有子网中的 VPC 实例与外界通信的主要方法。

  1. 将私有子网的 Internet 流量从连接到您办公室的 VPN 隧道路由出去,然后该隧道可以提供对 Internet 其余部分的访问。并不理想,因为它需要始终在线的 VPN 隧道和穿过您办公室的额外跃点。

我建议使用 NAT 实例,这是对私有子网内的计算机进行 Internet 访问的推荐设置。它们是按子网配置的,因此您的计算机在启动时不需要了解其配置的任何信息。只需确保使用 m1.large 或更大的实例即可获得更高的网络吞吐量(相对于 m1.small)