
By – christophchamp
- Terraform keeps the remote state of the infrastructure
- It stores it in a file called
terraform.tfstate
- There is also a backup of the previous state in
terraform.tfstate.backup
- When you execute
terraform apply
, a newterraform.tfstate
and backup is created - This is how Terraform keeps track of the remote state
- If the remote state changes and you run
terraform apply
again, Terraform will make changes to meet the correct remote state again. - E.g., you manually terminate an instance that is managed by Terraform, after you run
terraform apply
, it will be started again.
- If the remote state changes and you run
- You can keep the
terraform.tfstate
in version control (e.g., git).- This will give you a history of your
terraform.tfstate
file (which is just a big JSON file) - This allows you to collaborate with other team members (however, you can get conflicts when two or more people make changes at the same time)
- This will give you a history of your
- Local state works well with simple setups. However, if your project involves multiple team members working on a larger setup, it is better to store your state remotely
- The Terraform state can be saved remotely, using the backend functionality in Terraform.
- Using a remote store for the Terraform state will ensure that you always have the latest version of the state.
- It avoids having commit and push the
terraform.tfstate
file to version control. - However, make sure the Terraform remote store you choose supports locking! (note: both s3 and consul support locking)
- The default state is a local backend (the local Terraform state file)
- Other backends include:
- AWS S3 (with a locking mechanism using DynamoDB)
- Consul (with locking)
- Terraform Enterprise (the commercial solution)
- Using the backend functionality has definite benefits:
- Working in a team, it allows for collaboration (the remote state will always be available for the whole team)
- The state file is not stored locally and possible sensitive information is only stored in the remote state
- Some backends will enable remote operations. The
terraform apply
will then run completely remotely. These are called enhanced backends.
- There are two steps to configure a remote state:
- Add the back code to a
.tf
file - Run the initialization process
- Add the back code to a


Terraform Basic Tutorial with Demo by Piyush 2020

Terraform Fundamental Tutorials by Harish in 2020

Terraform Fundamental Tutorial By Guru in 2020 Part-1

Terraform Fundamental Tutorial By Guru in 2020 Part-2

Terraform Fundamental Tutorial By Guru in 2020 Part-3

Terraform Fundamental Tutorial By Guru in 2020 Part-4

Terraform Fundamental Tutorial By Guru in 2020 Part-5

Terraform Advance Tutorial for Beginners with Demo 2020 — By DevOpsSchool

Latest posts by Rajesh Kumar (see all)
- Checklist of Disaster Recovery Plan in Kubernetes (EKS) for GitLab - February 24, 2023
- Kubernetes: Pull an Image from a Private Registry using Yaml and Helm File - February 24, 2023
- Jenkins Pipeline code for Sending an email on Build Failure - February 24, 2023