【发布时间】:2015-06-19 09:14:39
【问题描述】:
我们有一个设置,其中 3 个 ec2 实例各自与其主网络接口 eth0 上的一个弹性 ip 相关联,因此这些实例可以处理传入的请求。
这些实例中的每一个都有一个辅助网络接口 eth1,如果实例发生故障/崩溃/重启,与该实例关联的弹性 ip 将与该接口上剩余的正在运行的 ec2 实例之一相关联。这是某种故障转移机制,因为我们总是希望这些弹性 IP 由某个正在运行的实例提供服务,这样我们就不会丢失任何传入的请求。
我遇到的问题特别是在重启实例时。当实例重新启动时,它无法取回它拥有的公共 IP,而这个公共 IP 是现在与另一个实例关联的弹性 IP。因此,除非我手动将弹性 ip 重新分配回此实例,否则此实例无法访问互联网。
是否可以在重新启动时自动回收/重新关联它曾经拥有的弹性 IP 到其 eth1 接口?如果没有,您有解决方法的建议吗?
重启是必要的,因为我们将对实例进行无人值守升级。
更新: 另请注意,我需要使用这些弹性 ip,因为它们是我们集成的合作伙伴公司的防火墙中允许的。使用 ELB 将无法正常工作,因为它的 IP 会随着时间的推移而变化。
【问题讨论】:
-
您是否已经拥有适用于第 1 部分的脚本(将无响应服务器的弹性 IP 重新分配给故障转移服务器 eth1)?
-
是的。该脚本在 python 中,使用 boto 库将无响应服务器的弹性 IP 重新分配给 eth1 上的故障转移服务器。
标签: amazon-web-services amazon-ec2 elastic-ip