如何在ECS中先删除旧容器再部署新容器以规避额外成本?
解决方案:配置ECS先删除旧容器再部署新容器
完全可以通过调整ECS服务的部署配置实现这个需求,具体操作如下:
- 针对你的ECS服务,修改部署类型为
ROLLING_UPDATE(默认部署类型,若已使用可跳过),并调整两个核心部署参数:- 将
minimumHealthyPercent设置为0:该参数定义部署期间必须维持的健康任务数占期望任务数的最小比例,设为0后,ECS会允许所有旧任务被终止,再启动新任务。 - 将
maximumPercent设置为100:该参数限制部署期间运行的总任务数(旧任务+新任务)占期望任务数的最大比例,设为100后,ECS不会同时启动超过期望数量的任务,确保旧任务释放资源后才会部署新任务。
- 将
调整后,每次部署时ECS会先终止旧的任务容器,释放实例上的7GB内存资源,之后再在同一EC2实例上启动新的任务容器,不会因临时资源不足触发不必要的EC2扩容,从而避免额外成本。
注意:此配置会导致部署期间服务短暂不可用,符合你提出的可接受前提。另外,你的任务
memory_reservation设置为7GB,已接近实例总内存8GB,需确保任务实际运行时不会超出实例内存上限,避免出现OOM问题。
内容的提问来源于stack exchange,提问作者Naggappan Ramukannan
相关产品推荐
相关产品推荐

