在实例终止时修改 route53 记录集中实例的 IPv4 地址的最佳方法

Best way to modify IPv4 address of instance in route53 record set on instance terminate

我的 aws 帐户中有 1 个 public EC2 实例。为了访问该实例的服务 (kibana),我创建了 route53 记录集。

我使用 Terraform 完成了此操作。

现在我的问题是,

If my instance gets terminated due to health check failure. How should i update the Ip address of newly create instance in my route53 record set.

我正在考虑使用我的实例的用户数据来执行此操作,其中 kibana 是 运行。

但我不确定这样做的最佳方式是什么。

有什么帮助吗?

一个选项是创建一个 elastic IP 并将其附加到实例。然后您可以将 Route53 记录指向它,并且每当实例重新启动时(这可能会更改实例的正常 public ip),它将保留弹性 ip 地址。实际实例终止仍需要干预以将弹性 ip 附加到新实例,尽管您可以使用实例 UserData 中的引导脚本自动执行此操作(即,当提供新实例时,尝试将弹性 ip 与其自身相关联)。

另一种选择是在 EC2 实例前面放置一个 application load balancer,并将 Route53 记录指向负载均衡器。这样,如果主机重新启动或 terminated/replaced,Route53 记录仍将指向负载均衡器,它将指向新的或重新启动的实例。如果您将来选择,它还为您提供了通过添加更多实例来水平扩展的选项。