将静态IP分配给自动缩放的EC2实例

问题描述:

我们有第三方集成,需要将EC2实例IP列入白名单。第三方将其服务器上的IP列入白名单,然后只有EC2实例才能与其通信。 在单个实例的情况下,这是有效的。 但是,当自动缩放开始时,我们最终会超过1个实例。这些新实例自动为每个自动调整操作获取新的IP。 我们有可能要求AWS从一组4个预定义的弹性IP中分配IP吗? (假设自动缩放限制为4,我们有4个浮动EIP)将静态IP分配给自动缩放的EC2实例

我试图避免网关NAT,因为它有很大的成本。

任何想法?

自动缩放不会自动将弹性IP地址分配给实例。

您可以编写一些代码来执行此操作,并将其作为用户数据的一部分包含在实例启动时执行。它会:

  • 检索弹性IP地址的列表
  • 查找当前未使用的EC2实例
  • 助理相关联与本身(即,与运行在用户的EC2实例中的一个数据脚本)

通过自动缩放,不能直接将Elastic IP分配给自动缩放实例。不过,您可以考虑几个选项。

  • 例如autoscales后,将其与AWS EC2 CLI一开机脚本(例如的UserData在Linux中)命令associate的弹性IP地址已分配给您的帐户写一个命令行脚本。请注意,您需要相应地处理健康检查,以便过渡顺利进行。
  • CloudWatch警报触发器执行Lambda函数,该函数会将弹性IP地址与新启动的实例相关联。为此,您可以使用AWS开发工具包和代码来检查没有EIP的实例,并将可用的EIP与其关联。

使用NAT 实例。与t2.nano相关的成本只有很小的一部分,您应该找到足够的用途。

http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html

虽然不是作为一个NAT网关作为可靠的(你付出放手可靠性和几乎无限的可扩展性),这是不太可能你就会有麻烦了NAT实例,除非底层硬件发生故障时,并且可以通过配置实例恢复来帮助缓解此问题:

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-recover.html