Идвам да напомня да внимаваме с terraform state – дали ще е drift или ще забравим да си сложим versioning на s3 bucket-а, който пази terraform state-а.

И също така, че ако тестваме нещо (както аз като създавам ASG в AWS) и трябва да го затрием няколко пъти вместо да изтрием ресурса и да направим drift между state и actual state правим:

❯ terraform destroy -target=module.REDACTED.aws_autoscaling_group.REDACTED

И да не забравяме като си правим плановете да ги output-ваме във файл:

❯ terraform plan -destroy -out destroy.tfplan
❯ terraform apply destroy.tfplan

Така ако стане някакво разминаване между плана и изпълението му (например работите няколко човека върху тази среда) ще избегнете много проблеми.

Edit- присетих се, че в transportapi си бях добавил terraform plan/apply по горния начин като alias:

alias tp="terraform plan -destroy -out destroy.tfplan"
alias ta="terraform apply destroy.tfplan"

Така всичко става доста лесно. А ако искате нещо по-sophisticated можете да си напишете един bash скрипт, който да добавите в tp/ta за да има допълнителен safety net за да не затриете някой prod среда, например.