Running terraform destroy
will tear down the whole stack associated to some terraform code.
However, sometimes you might only want to remove a specific piece of your infrastructure.
To do this, you can use the terraform destroy -target
object.
Step 1 – List the State
Get a list of all the resources from the state:
terraform state list
#data.aws_ami.webserver_ami
#aws_autoscaling_group.asg-web[0]
#random_string.rand3
#...
Step 2 – Remove a Specific Resource
Run a terraform destroy -target
and pass a resource from the state list
above:
terraform destroy -target aws_autoscaling_group.asg-web[0] -auto-approve
We also added a -auto-approve
in the above command to automatically delete the resource without prompting us for confirmation.