我有一个简单的MVP风格,使用3x服务/ 3x任务部署在单个t2上的完整堆栈MERN应用程序。
挑战:每当SPOT实例被替换时,私有IP就会改变。
解决办法:后端的env变量需要用DB_HOST更新,以便它可以连接到托管在同一个ec2 SPOT实例上的数据库任务。
要求:是否有一种方法可以将ec2 SPOT容器实例私有IP作为参数传递给Env变量,以便如果它更改,后端任务定义中的DB_HOST env变量将自动更新?

发布于 2022-09-27 00:00:30
您可以使用实例元数据获取IP地址。还有用于容器的ECS元数据。如果需要这个环境变量,则需要在运行应用程序之前运行脚本。
任何事情中的任何部分都可能没有任何真正的理由依赖于私有ip地址。如果您希望以可靠的方式访问此实例,您将使用负载均衡器、目标组等。如果用于托管ECS上的容器,则将创建一个服务。也许你会使用App。
这正是您正在经历的原因,因为实例可以停止并启动,这将给它一个新的ip地址。这可能是由于无法控制的原因造成的,例如硬件故障。
通常,当您正在启动并运行一些东西时,您可能会使用您拥有的这个私有ip地址。但是,一旦事情发展超过这一点,你需要这个ip地址在其他地方,最好是做的事情是正确的。
https://stackoverflow.com/questions/73860988
复制相似问题