Soluções supostas:
Opção 1 : o seu ASG deve ser criado com a proteção de instância ON - Terraform docs
Nesse caso, poderíamos ter a próxima seqüência de operações, por exemplo, decommission:
- Executar a desativação de instância (s) específica (remover dados dela (eles))
- Reduzir contagem do tamanho do ASG por valor desejável
- Aplicar estado de Terraform
- Remover sinalizador de proteção de instâncias desativadas:
aws autoscaling set-instance-protection --instance-ids <instances_ids> --auto-scaling-group-name <asg_name> --no-protected-from-scale-in
Opção 2 : seu ASG foi não criado com proteção de instância.
Nesse caso, poderíamos ter a próxima seqüência de operações, por exemplo, decommission:
- Adicionar sinalizador de proteção em todas as instâncias do ASG:
aws autoscaling set-instance-protection --instance-ids <instances_ids> --auto-scaling-group-name <asg_name> --protected-from-scale-in
- Executar a desativação de instância (s) específica (remover dados dela (eles))
- Reduzir contagem do tamanho do ASG por valor desejável
- Aplicar estado de Terraform
- Remover sinalizador de proteção de instâncias desativadas:
aws autoscaling set-instance-protection --instance-ids <instances_ids> --auto-scaling- group-name <asg_name> --no-protected-from-scale-in
- (Opcionalmente) Aguarde até que o ASG encolha até o tamanho desejado e remova o sinalizador de proteção de outras instâncias