在 AWS 服务上管理浮动 IP

Manage a Floating IP on AWS Services

假设我有一个 AWS EIP 分配为:eipalloc-94eb5af1 假设我有一个 AWS 网络接口:eni-e3d20a9a, eni-e3d20a9a

现在假设我有两个 EC2 服务器。网络接口在这两台服务器上。

现在...假设我想设置监控。平监控也许。如果eni-e3d20a9a不可见,我希望将EIP转移到eni-e3d20a9a

这可以通过以下方式轻松完成:

aws ec2 associate-address --allocation-id eipalloc-03d3b666 \
    --allow-reassociation --network-interface-id eni-98e03bd3

此外,在每台服务器上设置一个基本的 bash 脚本来相互监控也相当简单。

但是,我需要有关在 AWS 上高效执行此操作的建议。不使用脚本可能使用 Lambda 或 Cloudwatch?

完成 EIP 迁移的最佳方法是什么?

你说得对,你可以监控一个实例,如果失败,将弹性 IP 地址重新关联到不同的实例或网络接口。

没有自动工具可以为您执行此 monitoring/switching。您可以通过 EC2 实例上的脚本、计划的 AWS Lambda 函数甚至互联网上任何地方的计算机来监控您的实例。但是,您将负责该脚本

或者,您可以让实例本身定期向 Amazon CloudWatch 发送自定义指标,然后创建一个警报,如果指标值发生变化(例如,最近没有更新,表明潜在的系统故障)。该警报可能会触发 AWS Lambda 函数,该函数会重新关联弹性 IP 地址。

或者,另一个想法是使用 Amazon Route 53 进行健康检查。如果 Amazon Route 53 运行状况检查器检测到问题,它们可以将 DNS 名称的解析更改为备用 IP 地址。这不是重新关联弹性 IP 地址。相反,它正在更改解析 DNS 名称时返回的 IP 地址。