3

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

我试图避免使用网关 NAT,因为它的成本很高。

有任何想法吗?

4

3 回答 3

3

通过自动缩放,无法直接将弹性 IP 分配给自动缩放的实例。但是,您可以考虑几个选项。

  • 在实例自动缩放之后,使用 AWS EC2 CLI 命令使用启动脚本(例如 Linux 中的 UserData)来关联您分配给您的账户的弹性 IP 地址,编写命令行脚本。请注意,您需要相应地处理运行状况检查,以使过渡顺利进行。
  • 让 CloudWatch 警报触发器执行 Lambda 函数,该函数将弹性 IP 地址与新启动的实例相关联。为此,您可以使用 AWS 开发工具包和代码检查没有 EIP 的实例并将可用的 EIP 关联到它。
于 2017-09-25T08:10:31.420 回答
1

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

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

  • 检索弹性 IP 地址列表
  • 查找当前未与 EC2 实例关联的一个
  • 将其与自身关联(即与运行用户数据脚本的 EC2 实例)
于 2017-09-25T08:04:19.100 回答
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

于 2017-09-25T09:48:13.127 回答