【问题标题】:Assigning static IPs to auto scaled EC2 instance将静态 IP 分配给自动扩展的 EC2 实例
【发布时间】:2018-03-06 00:43:12
【问题描述】:
我们有一个需要将 EC2 实例 IP 列入白名单的第三方集成。第 3 方将其服务器上的 IP 列入白名单,然后只有 EC2 实例可以与它们通信。
在单个实例的情况下,这是可行的。
但是,当自动缩放启动时,我们最终会出现超过 1 个实例。这些新实例会自动为每个自动缩放操作获取新 IP。
我们是否可以要求 AWS 从一组 4 个预定义的弹性 IP 中分配 IP? (假设自动缩放仅限于说 4 并且我们有 4 个浮动 EIP)
我正在尝试避免网关 NAT,因为它的成本很高。
有什么想法吗?
【问题讨论】:
标签:
amazon-web-services
amazon-ec2
amazon-elastic-beanstalk
autoscaling
elastic-ip
【解决方案1】:
通过自动缩放,无法直接将弹性 IP 分配给自动缩放的实例。但是,您可以考虑几个选项。
- 实例自动缩放后,使用 AWS EC2 CLI 命令将启动脚本(例如 Linux 中的 UserData)发送到 associate 一个您已分配给您的账户的弹性 IP 地址,编写命令行脚本。请注意,您需要相应地处理运行状况检查,以便顺利进行过渡。
- 让 CloudWatch 警报触发器执行 Lambda 函数,该函数将弹性 IP 地址与新启动的实例相关联。为此,您可以使用 AWS 开发工具包和代码检查没有 EIP 的实例并将可用的 EIP 关联到它。
【解决方案2】:
Auto Scaling 不会自动为实例分配弹性 IP 地址。
您可以编写一些代码来执行此操作,并将其作为实例启动时执行的 用户数据 的一部分。它会:
- 检索弹性 IP 地址列表
- 查找当前未与 EC2 实例关联的实例
- 将其与自身关联(即与运行用户数据脚本的 EC2 实例)