Got the fundamentals? A structured Terraform course is a fast way to level up.
Find Terraform courses on UdemyAffiliate link. Costs you nothing extra.
- 01Getting Started
- 02What Is Terraform?
- 03Checking the Version with terraform version
- 04What Is Infrastructure as Code?
- 05What Is a Provider?
- 06Preparing Providers with terraform init
- 07What Is a Resource Block?
- 08Checking Syntax with terraform validate
- 09Formatting Code with terraform fmt
- 10Previewing Changes with terraform plan
- 11Building Infrastructure with terraform apply
- 12What Is tfstate?
- 13Viewing State with terraform show
- 14Listing Resources with terraform state list
- 15Inspecting One Resource with terraform state show
- 16What Are Variables?
- 17What Are Outputs?
- 18Reading Outputs with terraform output
- 19Tearing Down with terraform destroy
- 20What Is a Module?
- 21What Is a Workspace?
- 22Listing Workspaces with terraform workspace list
- 23Creating a Workspace with terraform workspace new
- 24Switching Workspaces with terraform workspace select
- 25Saving a Plan with terraform plan -out
- 26Applying a Saved Plan with terraform apply
- 27What Is State Locking?
- 28Listing Providers with terraform providers
- 29What Is terraform refresh?
- 30What Is a Remote Backend?
- 31Adopting Existing Resources with terraform import
- 32What Is depends_on?
- 33What Are for_each and count?
- 34Visualising Dependencies with terraform graph
- 35What Is State Drift?
- 36How to Think About Splitting Modules
- 37Hands-On: Building a Three-Tier Web Architecture with Terraform
What Is a Remote Backend?
A backend decides where state is stored. The default is a local file; a remote backend puts it somewhere shared instead.
Common choices are an S3 bucket (with DynamoDB for locking) or Terraform Cloud.
With a remote backend, everyone on the team and every CI run reads and writes the same state, with locking preventing collisions.
A common stumble is starting with local state and migrating later, which requires care — Terraform offers to copy the state during init, and that step must not be skipped.
In real work, a remote backend with locking and versioning is effectively mandatory for anything a team shares.
🧑💻 You can type this command into the Terraform pseudo terminal to try it yourself (this page itself has no interactive terminal).
