【问题标题】:AWS ECS Updating service wipes mongo containerAWS ECS 更新服务擦除 mongo 容器
【发布时间】:2019-08-16 22:41:50
【问题描述】:
我有一个使用 ECS 部署的节点/mongo 应用程序。正在运行的任务包含两个容器,一个用于我的节点 api,另一个用于我的 mongo 数据库。当我推送我对我的 api 所做的更改并创建一个新的任务修订 + 使用它更新我的服务时,它会部署更改,但每次都会清除我的数据库。
- 使用此设置,更新服务总是会部署新的
mongo 容器?
- 我可以恢复到该服务的先前状态吗?
- 为每个容器创建一个单独的任务会更好吗
任何帮助将不胜感激
【问题讨论】:
标签:
node.js
mongodb
amazon-web-services
【解决方案1】:
- 是的,它将始终从任务定义中提到的映像部署一个新容器。
当 UpdateService 在部署期间停止任务时,相当于
docker stop 发给任务中运行的容器。这个
导致 SIGTERM 和 30 秒超时。
update-service
- 不,当服务更新时,它会自动删除旧的容器和图像。因为默认情况下,Amazon ECS 容器代理会自动清理已停止的任务和容器实例上没有任何任务使用的 Docker 映像。
您可以使用ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION 控制此行为
此变量指定删除任何内容之前等待的时间
属于已停止任务的容器。图像清理过程
只要有容器引用就不能删除镜像
它。图像未被任何容器引用后(要么停止
或运行),则图像成为清理的候选对象。经过
默认情况下,此参数设置为 3 小时,但您可以减少此参数
如果您的应用程序需要,时间可以低至 1 分钟。
- 是的,最好有一个单独的任务定义。另外,我建议安装在 DB 容器中以避免将来发生此类损失。
AWS ecs docker-volumes