AWS中删除EC2实例后自动重建的问题求助
ECS集群删除后EC2实例自动重建的问题排查与解决
可能原因
- ECS容量提供商(Capacity Provider)未清理:手动创建ECS实例时绑定了容量提供商,删除集群时未解除关联,容量提供商仍在维持实例数量阈值
- ECS服务未停止:集群内存在最小任务数大于0的服务,服务会自动扩容实例以满足任务运行需求
- 隐藏的启动模板/配置:存在未被发现的Launch Template或Launch Configuration,被脚本、Lambda或CloudWatch触发器调用自动创建实例
- EC2自动恢复功能开启:实例开启了EC2 Instance Recovery,被删除后系统自动重建
解决步骤
1. 清理ECS容量提供商
- 登录ECS控制台,进入原集群的「容量提供商」页面,查看是否有绑定的容量提供商
- 先解除容量提供商与集群的关联,再删除该容量提供商
- 命令行操作:
# 解除关联 aws ecs deregister-capacity-provider --cluster <你的集群名> --capacity-providers <容量提供商名> # 删除容量提供商 aws ecs delete-capacity-provider --capacity-provider <容量提供商名>
2. 停止ECS服务并清理
- 进入ECS集群的「服务」页面,检查所有服务的部署配置,确认最小任务数是否为0
- 对最小任务数>0的服务,先更新服务将期望任务数和最小容量设为0,停止所有任务后删除服务
- 命令行操作:
aws ecs update-service --cluster <你的集群名> --service <服务名> --desired-count 0 --min-capacity 0
3. 排查并清理启动模板/触发器
- 登录EC2控制台,进入「启动模板」和「启动配置」页面,查找近期有实例创建记录的模板
- 检查是否存在CloudWatch Events规则、Lambda函数或自定义脚本在调用这些模板创建实例,禁用或删除对应的触发器
- 删除不再需要的启动模板/配置
4. 关闭EC2自动恢复功能
- 进入EC2实例详情页,点击「操作」→「实例设置」→「设置自动恢复」,关闭自动恢复选项
- 命令行操作:
aws ec2 modify-instance-attribute --instance-id <实例ID> --attribute disableApiTermination --value false
内容的提问来源于stack exchange,提问作者Nurisa Mamiraim kyzy
相关产品推荐
相关产品推荐

