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

时间:2017-09-25 06:03:48

标签: amazon-web-services amazon-ec2 elastic-beanstalk autoscaling elastic-ip

我们有第三方集成,需要将EC2实例IP列入白名单。第三方在其服务器上将IP列入白名单,然后只有EC2实例可以与它们通信。 在单个实例的情况下,这是有效的。 然而,当自动缩放开始时,我们最终会出现多个实例。这些新实例会自动为每个自动调度操作获取新IP。 我们是否可以要求AWS从一组4个预定义的弹性IP中分配IP? (假设自动缩放仅限于4,我们有4个浮动EIP)

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

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

使用自动缩放功能,无法直接将弹性IP分配给自动缩放的实例。但是,您可以考虑几种选择。

  • 在实例autoscales之后,使用AWS EC2 CLI命令将{EC}启动脚本(例如Linux中的UserData)发送到associate一个弹性IP地址,您已经为您的帐户编写了一个命令行脚本。请注意,您需要相应地处理运行状况检查,以便顺利过渡。
  • 使用CloudWatch警报触发器执行Lambda函数,该函数将弹性IP地址与新启动的实例相关联。为此,您可以使用AWS开发工具包和代码检查没有EIP的实例并将可用的EIP关联到该实例。

答案 1 :(得分:1)

Auto Scaling不会自动为实例分配弹性IP地址。

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

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

答案 2 :(得分:1)

使用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