我有一个包含三个容器的任务定义的ECS服务:
我想更新前端容器和/或后端容器,而不放松mongoDB数据。
最好的办法是什么?
是否可以在不重新部署整个任务(以及松散db数据)的情况下更新服务,但只需重新部署我需要的容器?
我是否应该为mongo使用一个绑定卷,以便将数据保存在那里,并且在重新部署服务时,新的mongo容器将从那里检索数据?
希望这是合理的。提前谢谢。
发布于 2022-09-30 12:11:41
最好的办法是什么?
理想情况下,您不会在同一个任务中运行MongoDB。您将在单独的ECS任务中运行它(或者只是直接在EC2实例上运行它)。现在,您无法扩展您的前端/后端服务,因为这样做会使用一个新的空数据库来划分新的服务实例。
是否可以在不重新部署整个任务(以及松散db数据)的情况下更新服务,但只需重新部署我需要的容器?
不那是不可能的
我是否应该为mongo使用一个绑定卷,以便将数据保存在那里,并且在重新部署服务时,新的mongo容器将从那里检索数据?
如果要将ECS任务部署到EC2目标,则可以使用绑定挂载将DynamoDB数据存储在集群中的一个EC2实例上。但是,如果EC2实例出现故障,您仍然会丢失所有数据。更多的容错和高度可用的方法是将EFS体积绑定到MongoDB容器以存储数据。
如果您将ECS任务部署到Fargate,那么绑定挂载将不是一个选项,EFS将是唯一的选项。
https://stackoverflow.com/questions/73907584
复制相似问题