Limited Time Offer!

For Less Than the Cost of a Starbucks Coffee, Access All DevOpsSchool Videos on YouTube Unlimitedly.
Master DevOps, SRE, DevSecOps Skills!

Enroll Now

Terraform Tutorials: How to remove a resource from your Terraform configuration & state file

Step-by-Step Tutorial for Using the removed Block in Terraform

Step by Step in terraform To remove a resource from your Terraform configuration & state file without destroying the real infrastructure object it manages

Old Method – Using Command Line

Here is a step-by-step guide to remove a resource from your Terraform configuration and state file without destroying the real infrastructure object:


1. Identify the Resource to Be Removed

  • Locate the resource in your Terraform configuration that you want to remove.
  • Note the resource’s name and type (e.g., aws_instance.example).

2. Run the terraform state rm Command

  • The terraform state rm command removes a resource from the Terraform state file without affecting the real infrastructure.
  • Use the following syntax: terraform state rm <resource_address>
  • Example: terraform state rm aws_instance.example

3. Verify State File Update

  • Check the Terraform state to ensure the resource has been removed: terraform state list
  • Confirm that the resource no longer appears in the list.

4. Remove the Resource from Configuration

  • Open your Terraform configuration file (*.tf).
  • Delete the corresponding block of the resource you removed from the state file.

5. Run terraform plan to Validate

  • Execute a terraform plan to ensure the configuration aligns with the state: terraform plan
  • Verify that Terraform does not attempt to recreate the resource you just removed.

6. Apply Changes (If Necessary)

  • If the terraform plan shows changes due to dependent resources, apply those changes to update the infrastructure: terraform apply

Best Practices

  • Backup the State File: Always backup your terraform.tfstate file before making changes. cp terraform.tfstate terraform.tfstate.bak
  • Use Workspaces if Required: Ensure you are in the correct workspace if you’re managing multiple environments.

Result

The resource is no longer managed by Terraform but still exists in the real infrastructure.

New Method using Removed Block

The removed block in Terraform (introduced in version 1.7) provides a safe way to remove resources from the Terraform state without destroying them in the real infrastructure. This is especially useful when you want Terraform to stop managing specific resources but retain their existence in your cloud environment.

What is the removed Block?

The removed block explicitly informs Terraform that certain resources are no longer managed by the configuration. During terraform apply, Terraform removes these resources from the state without attempting to delete them in the actual infrastructure.


# Step 1: Identify the resource
resource "aws_instance" "example" {
  ami           = "ami-12345678"
  instance_type = "t2.micro"
}

# Step 2: Replace the resource block with the removed block
removed {
  from = aws_instance.example
}

# Step 3: Run Terraform commands
terraform plan
terraform apply

Rajesh Kumar
Follow me
Subscribe
Notify of
guest
0 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x