更新 ECS 服务中任务的容器



我有一个ECS服务,它的任务定义有三个容器:

  • 前端容器
  • 后端容器
  • MongoDB容器

我想在不丢失mongoDB数据的情况下更新前端容器和/或后端容器。

最好的方法是什么?

是否可以在不重新部署整个任务(并丢失数据库数据(的情况下更新服务,而只重新部署我需要的容器?

我应该为mongo-db使用绑定卷吗?这样我就可以在那里保存数据,当重新部署服务时,新的mongo-db容器将从那里检索数据?

希望这是有道理的。提前谢谢。

最好的方法是什么?

理想情况下,您不会在同一任务中运行MongoDB。您可以在单独的ECS任务中运行它(或者直接在EC2实例上运行它(。现在,您无法扩展前端/后端服务,因为这样做会使用一个新的空数据库来启动新的服务实例。

是否可以在不重新部署整个任务的情况下更新服务(并丢失数据库数据(,但只有我需要的容器?

不,这是不可能的

我是否应该为mongo数据库使用绑定卷,以便将数据保存在那里,并且当重新部署服务时,新的mongo数据库容器将从那里检索数据?

如果您正在将ECS任务部署到EC2目标,那么您可以使用绑定装载将DynamoDB数据存储在集群中的一个EC2实例上。然而,如果EC2实例发生故障,您仍然会丢失所有数据。更具容错性和高可用性的方法是将EFS卷绑定到MongoDB容器以存储数据。

如果您正在将ECS任务部署到Fargate,那么绑定挂载将不是一个选项,EFS将是唯一的选项。

最新更新