Chapter 3. How to Manage Terraform State
In Chapter 2, as you were using Terraform to create and update resources, you might have noticed
that every time you ran terraform plan or terraform apply, Terraform was able to find the resources it created
previously and update them accordingly. But how did Terraform know which resources it was supposed to manage? You could
have all sorts of infrastructure in your AWS account, deployed through a variety of mechanisms (some manually, some via
Terraform, some via the CLI), so how does Terraform know which infrastructure it’s responsible for?
In this chapter, you’re going to see how Terraform tracks the state of your infrastructure and the impact that has on file layout, isolation, and locking in a Terraform project. Here are the key topics I’ll go over:
-
What is Terraform state?
-
Shared storage for state files
-
Limitations with Terraform’s backends
-
State file isolation
-
Isolation via workspaces
-
Isolation via file layout
-
-
The
terraform_remote_statedata source
Example Code
As a reminder, you can find all of the code examples in the book on GitHub.
What Is Terraform State?
Every time you run Terraform, it records information about what infrastructure it created in a Terraform state file. By default, when you run Terraform in the folder /foo/bar, Terraform creates the file /foo/bar/terraform.tfstate. This file contains a custom JSON format that records a mapping from the Terraform resources in your configuration files to the ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access