Terraform无法删除开启缩容保护的Auto Scaling Group,有什么可行解决方案?
根因说明
你当前使用的命令仅调整了ASG的最小、期望实例数,未关闭缩容保护(scale-in protection)配置,AWS ASG会拒绝缩容开启了缩容保护的实例,因此操作被直接取消。
可行解决方案
方案1:修改destroy阶段local-exec命令(推荐,全自动化无需手动介入)
调整销毁前执行的AWS CLI命令,按顺序执行关闭ASG默认缩容保护、移除存量实例缩容保护、调整实例数的操作,修改后的配置如下:
provisioner "local-exec" { when = destroy command = <<EOT # 关闭ASG新实例默认缩容保护 aws autoscaling update-auto-scaling-group --auto-scaling-group-name ${self.name} --new-instances-protected-from-scale-in false # 批量移除该ASG下所有存量实例的缩容保护 aws autoscaling describe-auto-scaling-instances --filters "Name=auto-scaling-group-name,Values=${self.name}" --query 'AutoScalingInstances[*].InstanceId' --output text | xargs -I {} aws autoscaling set-instance-protection --auto-scaling-group-name ${self.name} --instance-ids {} --no-protected-from-scale-in # 调整ASG实例数配置为0触发缩容 aws autoscaling update-auto-scaling-group --auto-scaling-group-name ${self.name} --min-size 0 --desired-capacity 0 EOT }
注意事项:
- 上述命令适配macOS/Linux执行环境,若在Windows环境执行Terraform,需将管道、xargs部分替换为PowerShell对应语法
- 执行Terraform的身份需要具备
autoscaling:UpdateAutoScalingGroup、autoscaling:DescribeAutoScalingInstances、autoscaling:SetInstanceProtection权限
方案2:临时手动操作(适合单次销毁场景)
如果仅需要临时销毁该ASG,不需要修改Terraform代码,可按以下顺序操作:
- 执行AWS CLI命令清空ASG实例:
# 替换为你的ASG实际名称 ASG_NAME="your-asg-name" aws autoscaling update-auto-scaling-group --auto-scaling-group-name $ASG_NAME --new-instances-protected-from-scale-in false aws autoscaling describe-auto-scaling-instances --filters "Name=auto-scaling-group-name,Values=$ASG_NAME" --query 'AutoScalingInstances[*].InstanceId' --output text | xargs -I {} aws autoscaling set-instance-protection --auto-scaling-group-name $ASG_NAME --instance-ids {} --no-protected-from-scale-in aws autoscaling update-auto-scaling-group --auto-scaling-group-name $ASG_NAME --min-size 0 --desired-capacity 0
- 待AWS控制台确认ASG实例全部销毁完成后,执行
terraform destroy即可正常删除所有资源
方案3:Terraform配置调整适配
如果你的ASG缩容保护参数由Terraform直接管理,可先将ASG资源的protect_from_scale_in参数设置为false,执行terraform apply生效后,再执行terraform destroy即可正常销毁。
内容的提问来源于stack exchange,提问作者Ashay Fernandes
相关产品推荐
相关产品推荐

