0
0
Terraformcloud~5 mins

Why state operations are needed in Terraform - Why It Works

Choose your learning style9 modes available
Introduction
When you use Terraform to create or change cloud resources, it needs to remember what it has done. This memory is called the state. State operations help Terraform keep track of your resources so it can update or delete them correctly later.
When you want Terraform to know which resources it has already created in your cloud account.
When you need to update existing resources without accidentally creating duplicates.
When you want to destroy resources cleanly and not leave unused parts behind.
When multiple people work on the same infrastructure and need to share the resource information.
When you want to see what changes Terraform plans to make before applying them.
Commands
This command sets up Terraform in your project folder and prepares it to manage state and resources.
Terminal
terraform init
Expected OutputExpected
Initializing the backend... Terraform has been successfully initialized! You may now begin working with Terraform. Try running "terraform plan" to see any changes that are required for your infrastructure.
This command shows what Terraform will do by comparing the current state with your configuration files. It uses the state to know what exists already.
Terminal
terraform plan
Expected OutputExpected
An execution plan has been generated and is shown below. Resource actions are indicated with the following symbols: + create Terraform will perform the following actions: # aws_instance.example will be created + resource "aws_instance" "example" { + ami = "ami-12345678" + instance_type = "t2.micro" } Plan: 1 to add, 0 to change, 0 to destroy.
This command applies the planned changes to your cloud resources and updates the state file to remember the new resource details.
Terminal
terraform apply -auto-approve
Expected OutputExpected
aws_instance.example: Creating... aws_instance.example: Creation complete after 10s [id=i-0abcd1234efgh5678] Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
-auto-approve - Automatically approves the apply step without asking for confirmation.
This command lists all resources currently tracked in the Terraform state file.
Terminal
terraform state list
Expected OutputExpected
aws_instance.example
Key Concept

If you remember nothing else from this pattern, remember: Terraform state keeps track of your real cloud resources so it can manage them safely and correctly.

Common Mistakes
Deleting the Terraform state file manually.
Terraform loses track of existing resources and may try to recreate or delete them incorrectly.
Use Terraform commands like 'terraform state rm' or 'terraform destroy' to manage resources safely.
Not sharing the state file when working in a team.
Each person has a different view of resources, causing conflicts and errors.
Use remote state backends like Terraform Cloud or S3 to share state securely.
Editing the state file manually.
Manual changes can corrupt the state and cause Terraform to behave unpredictably.
Use Terraform state commands to modify state safely.
Summary
terraform init prepares your project and state management.
terraform plan compares your config with the current state to show changes.
terraform apply makes changes and updates the state file.
terraform state list shows what resources Terraform is tracking.