我们有一个设置,其中 3 个 ec2 实例每个都与其主网络接口 eth0 上的弹性 IP 相关联,因此这些实例可以处理传入的请求。
这些实例中的每一个都有一个辅助网络接口 eth1,如果一个实例发生故障/崩溃/重启,与该实例关联的弹性 IP 将与该接口上剩余的正在运行的 ec2 实例之一相关联。这是某种故障转移机制,因为我们总是希望这些弹性 IP 由某个正在运行的实例提供服务,这样我们就不会丢失任何传入的请求。
我遇到的问题特别是在重启实例时。当实例重新启动时,它无法取回它拥有的公共 ip,而这个公共 ip 是现在与另一个实例关联的弹性 ip。因此,除非我手动将弹性 IP 重新分配回此实例,否则此实例无法访问 Internet。
是否可以在重新启动时自动回收/重新关联它曾经拥有的弹性 IP 到其 eth1 接口?如果没有,您有解决方法的建议吗?
重新启动是必要的,因为我们将对实例进行无人值守升级。
更新: 还请注意,我需要使用这些弹性 ip,因为它们是我们与之集成的合作伙伴公司的防火墙中允许的。使用 ELB 将不起作用,因为它的 IP 会随着时间而变化。