Cloudformation 将 EC2 实例部署到同一 IP

Cloudformation 将 EC2 实例部署到同一 IP

我有一个使用云形成部署的应用程序堆栈。它包含两个自动扩展组和一个单独的 EC2 实例。

如何配置 EC2 实例或云结构以部署到旧实例的 IP 地址?

我们当前的解决方案是发出update-stack两次命令。第一次使用 EC2 实例的私有 IP 地址发送命令到同一子网中的某个随机地址,第二次使用原始 IP 地址发送命令。

有没有更好的解决方案来实现这一点?

答案1

为什么需要保留 IP?对于传入流量,最好依赖 DNS 名称,而不是任何特定 IP(例如,在 Route53 中使用 Cloud Formation 进行管理)。或者,如果您在某些安全组中将 IP 列入白名单,则可以使用来源SG 而不是 IP。很少有服务需要出于正当理由保留其 IP。

无论如何,我过去为自定义 DNS 堆栈(少数引用 IP 而不是域名的服务之一)部署的一个解决方案是创建一个单独的弹性网络接口(ENI)与所需的 IP 地址并在 AutoScaling 组中启动和停止实例时将其传递出去。这是通过 EC2 实例启动脚本完成的,其中实例会将接口从旧实例分离并将其附加到自身,本质上偷窃ASG 中旧实例的 ENI。

这是一个肮脏的黑客行为,但它确实有效。但是,如果可能的话,请以不依赖任何特定 IP 的方式设计您的部署。或者提供更多详细信息,说明为什么需要它。

希望有帮助:)

相关内容