关于从 Amazon VPC 内进行弹性互联网访问的建议

cjs*_*226 3 networking nat amazon-web-services amazon-vpc

到目前为止,我们的 NAT 服务器已经失败了 3 次 - 一次是由于它的 EIP 问题,两次是由于它的主机受 CPU 限制。虽然我理解这些事情会发生,但我们不能继续停电。我们如何为我们的 VPC 实施冗余的、有弹性的 NAT 解决方案?例如,是否可以使用多个 NAT 服务器?

我的 VPC(亚马逊虚拟私有云)由 2 个子网组成,1 个公有和 1 个私有。私有子网中的实例通过公有子网中的 NAT 服务器路由。据我所知,每个 VPC 只能有 1 个 NAT 服务器。

Ste*_*pel 5

鉴于您更新的问题,您可能正在使用配置为作为 NAT 实例运行的官方 Amazon Linux AMI ('ami-vpc-nat') 并根据NAT Instances 进行设置?这显然不是必需的,但当然提供了一个可靠的基线来实现所需的稳定性。关于你的问题:

幸运的是,AWS 最近在 Virtual Private Cloud 中发布了弹性网络接口,它允许您创建一个低预算的高可用性解决方案(请参阅弹性网络接口用户指南了解详细信息):

如果您的一个实例 [...] 出现故障,其网络接口可以连接到为相同角色预先配置的替换或热备用实例,以便快速恢复服务。例如,您可以使用 ENI 作为关键服务(例如数据库实例或 NAT 实例)的主要或次要网络接口。如果实例失败,您(或者更有可能是代表您运行的代码)可以将 ENI 附加到热备用实例。由于接口维护其私有 IP 地址、弹性 IP 地址和 MAC 地址,因此只要您将 ENI 附加到替换实例网络流量就会开始流向备用实例。[...] [强调我的]

因此,您应该能够使用适量的自动化代码来实现您的目标 - 根据您对冗余/弹性的重视程度,您有两种选择:

  • 一个热备 NAT 实例(最大限度地减少停机时间)
  • 按需 NAT 实例替换(最小化成本)