Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is Terraform state and why is it important?
Terraform state is a file that keeps track of the resources Terraform manages. It helps Terraform know what exists so it can update or delete resources correctly.
Click to reveal answer
beginner
What is state disaster recovery in Terraform?
State disaster recovery means having a backup plan for your Terraform state file so you can restore it if it gets lost or corrupted.
Click to reveal answer
intermediate
Name one common method to protect Terraform state from loss.
Using remote state storage like AWS S3 with versioning enabled to keep backups of the state file.
Click to reveal answer
intermediate
Why should Terraform state be stored remotely and not locally?
Remote storage allows multiple team members to share the state safely and enables backups and locking to prevent conflicts.
Click to reveal answer
intermediate
What is state locking and how does it help in disaster recovery?
State locking prevents multiple people from changing the state at the same time, reducing the risk of corrupting the state file.
Click to reveal answer
What does Terraform state file track?
AUser credentials for cloud providers
BThe source code of Terraform modules
CThe current resources Terraform manages
DTerraform command history
✗ Incorrect
Terraform state tracks the current resources it manages to know what to create, update, or delete.
Which of these is a best practice for Terraform state disaster recovery?
AStore state file only on local machine
BKeep state file in a public GitHub repo
CDelete state file after each run
DUse remote backend with versioning and locking
✗ Incorrect
Using a remote backend with versioning and locking protects the state file and supports recovery.
What feature helps prevent simultaneous changes to Terraform state?
AState locking
BState encryption
CState compression
DState splitting
✗ Incorrect
State locking prevents multiple users from changing the state at the same time, avoiding corruption.
If your Terraform state file is corrupted, what should you do?
ARestore from a backup version
BDelete all resources manually
CRun terraform init again
DIgnore and continue
✗ Incorrect
Restoring from a backup version of the state file helps recover the infrastructure state safely.
Why is enabling versioning on remote state storage important?
AIt speeds up Terraform runs
BIt keeps copies of previous state files for recovery
CIt encrypts the state file
DIt allows multiple state files
✗ Incorrect
Versioning keeps previous copies of the state file so you can restore if needed.
Explain how you would set up Terraform state disaster recovery for a team project.
Think about storage, backups, and preventing conflicts.
You got /4 concepts.
Describe what happens if Terraform state is lost and how disaster recovery helps.
Consider the role of state in managing infrastructure.
You got /4 concepts.
Practice
(1/5)
1. What is the main purpose of using remote state storage in Terraform for disaster recovery?
easy
A. To create backups of your source code
B. To speed up Terraform plan and apply commands
C. To safely store the Terraform state file and enable recovery if lost or corrupted
D. To automatically update Terraform providers
Solution
Step 1: Understand Terraform state role
The Terraform state file tracks your infrastructure resources and their current status.
Step 2: Importance of remote storage for disaster recovery
Storing state remotely protects it from local loss or corruption, enabling recovery.
Final Answer:
To safely store the Terraform state file and enable recovery if lost or corrupted -> Option C
Quick Check:
Remote state protects infrastructure info = D [OK]
Hint: Remote state stores your infra info safely for recovery [OK]
Common Mistakes:
Confusing state storage with code backup
Thinking remote state speeds up commands
Assuming remote state updates providers
2. Which of the following is the correct syntax to configure an S3 backend for Terraform state with versioning enabled?
easy
A. backend "s3" { bucket = "mybucket" key = "state.tfstate" region = "us-east-1" versioning = true }
B. backend "s3" { bucket = "mybucket" key = "state.tfstate" region = "us-east-1" }
C. backend "s3" { bucket = "mybucket" key = "state.tfstate" region = "us-east-1" encrypt = true }
D. backend "s3" { bucket = "mybucket" key = "state.tfstate" region = "us-east-1" versioning = "enabled" }
Solution
Step 1: Review S3 backend configuration syntax
The S3 backend block supports bucket, key, region, and encrypt but not versioning directly.
Step 2: Understand versioning setup
Versioning is enabled on the S3 bucket itself, not via Terraform backend config.
Final Answer:
backend "s3" { bucket = "mybucket" key = "state.tfstate" region = "us-east-1" } -> Option B
Quick Check:
Versioning is bucket setting, not backend config = C [OK]
Hint: Versioning is set on S3 bucket, not in Terraform backend block [OK]
Common Mistakes:
Trying to set versioning inside backend block
Confusing encrypt with versioning
Using wrong data types for versioning
3. Given this Terraform backend configuration snippet, what will happen if the local state file is deleted but the remote backend is intact?
Terraform requires backend initialization to connect local config with remote state.
Step 2: Effect of missing local state file
If local state is missing, Terraform prompts to reinitialize backend to sync remote state locally.
Final Answer:
Terraform will prompt to reinitialize the backend and then sync state -> Option A
Quick Check:
Missing local state triggers reinit and sync = B [OK]
Hint: Missing local state triggers backend reinit and sync prompt [OK]
Common Mistakes:
Assuming Terraform fails immediately
Thinking Terraform overwrites remote state blindly
Believing Terraform auto-downloads without reinit
4. You configured an S3 backend for Terraform state but forgot to enable bucket versioning. What problem might you face during disaster recovery?
medium
A. Terraform will create duplicate state files
B. Terraform will refuse to initialize the backend
C. State file will be encrypted automatically
D. You cannot recover previous versions of the state file if it gets corrupted
Solution
Step 1: Role of versioning in disaster recovery
Versioning allows keeping multiple versions of the state file to recover from mistakes or corruption.
Step 2: Consequence of missing versioning
Without versioning, if the state file is overwritten or corrupted, previous versions are lost permanently.
Final Answer:
You cannot recover previous versions of the state file if it gets corrupted -> Option D
Quick Check:
No versioning means no state history recovery = A [OK]
Hint: No versioning means lost state history on corruption [OK]
Common Mistakes:
Thinking Terraform blocks backend init without versioning
Assuming encryption is automatic
Believing duplicate state files are created
5. You want to ensure your Terraform state is protected against accidental deletion and corruption. Which combination of practices provides the best disaster recovery setup?
hard
A. Use remote backend with S3 bucket having versioning and server-side encryption enabled
B. Use local state files with manual backups on your computer
C. Use remote backend with S3 bucket without versioning but with encryption enabled
D. Use remote backend with local file copy enabled
Solution
Step 1: Identify best remote backend features for disaster recovery
Remote backend with S3 bucket versioning keeps multiple state versions; encryption protects data confidentiality.
Step 2: Compare options
Local files lack safety; no versioning risks losing history; local copy doesn't protect against corruption.
Final Answer:
Use remote backend with S3 bucket having versioning and server-side encryption enabled -> Option A
Quick Check:
Versioning + encryption on remote backend = best recovery [OK]
Hint: Combine versioning and encryption on remote backend for best safety [OK]