ECS 服务/ASG 实例能否在启动时将自己的 IP 添加到 Systems Manager Parameter Store 条目中?

问题描述

我希望节点将自己的 ip 添加到列表中的某个键,以便加入集群的其他节点可以发现它们。 使用受支持的 CloudMap 注册来执行此操作的问题似乎不是很动态。我希望列表最初是空的(对于第一个节点),然后适当地增长或缩小。

解决方法

  1. 您可以为此拥有一个 Daemon ECS 服务(不是在副本模式下)。这确保您的程序始终在 ECS 容器实例启动后运行。

  2. 然后您可以启用容器 meta-data 以获取 HostPublicIPv4Address。

  3. 并使用 AWS 开发工具包发布到您想要的任何商店。

尝试此操作后,发现多个实例出现时总是存在重叠。所以最好使用合适的数据库(有事务支持的)来存储这些IP。这样两个Daemon进程就可以争夺DB锁了。