Terraform Associate study plan
Terraform Associate · Give each week a clear focus.
8 weeks · About 7 hours per week
Terraform fundamentals & Infrastructure as Code (IaC) with Terraform
Explain the five core IaC benefits (repeatability, versioning, collaboration, idempotency, auditability) in writing without notes
Install Terraform locally and verify the CLI version and autocomplete setup
Write a minimal configuration using one provider and one resource, then run init, validate, plan, apply, and destroy against it
Identify each HCL block type (terraform, provider, resource, variable, output, data) in a sample file
Map Terraform's declarative model and state file to the problems IaC solves
Your checkpoint
A git repository containing a working single-resource configuration that has been applied and cleanly destroyed, plus a one-page written summary contrasting declarative vs imperative provisioning and explaining what the state file records.
Core Terraform workflow & Terraform configuration
Execute the full core workflow (init, fmt, validate, plan, apply, destroy) and distinguish what each command does and does not change
Read a plan output and classify each symbol (create, update in-place, replace, destroy) and predict the resulting action before applying
Parameterize a configuration with input variables (type, default, validation), locals, and outputs
Use count and for_each to create multiple similar resources and explain when for_each is preferred
Set a required_version and provider version constraint and explain why pinning matters
Your checkpoint
A configuration that provisions at least three resource instances via for_each, exposes two outputs, validates one variable with a validation block, and is accompanied by an annotated copy of the plan output labeling every action symbol.
Terraform configuration & Terraform fundamentals
Consume a data source and use its attributes in a resource argument
Apply at least six built-in functions (for example lookup, merge, format, file, cidrsubnet, try) inside real expressions
Build a dynamic nested block driven by a variable list and explain the alternative explicit block form
Control ordering with implicit references and explicit depends_on, and observe the effect in a graph or plan
Configure a lifecycle block with create_before_destroy or prevent_destroy and demonstrate the behavior change
Describe when provisioners and the null_resource pattern are appropriate and why they are a last resort
Your checkpoint
A single configuration that uses a data source, at least six functions, one dynamic block, an explicit depends_on, and a lifecycle rule, plus a short write-up of the observed apply ordering and the lifecycle effect.
Terraform modules & Terraform configuration
Refactor an existing flat configuration into a reusable child module with declared inputs and outputs
Consume the module twice from a root module with different input values and confirm both instances appear in state
Use module source addressing (local path and a registry-style address) and explain the difference in how versions are constrained
Pass outputs between modules and use the terraform output command to read a root output
Explain module composition boundaries and when a module is over-engineering
Your checkpoint
A repository with one child module instantiated twice from the root module using distinct inputs, state showing both module addresses, and a README documenting the module's input and output contract.
Terraform state management & Core Terraform workflow
Configure a remote backend and migrate local state to it without destroying resources
Explain state locking, why local state is unsuitable for teams, and which backends support locking
Demonstrate importing an existing resource into state and reconciling the configuration to match
Use state list, state show, and state mv to inspect and restructure state addresses
Describe the risk of manual state edits and when terraform state rm is the correct tool
Your checkpoint
A lab log showing state migrated to a remote backend, one resource imported by hand, one resource re-addressed with state mv, with before/after state list output and a paragraph on locking behavior observed.
Maintain infrastructure with Terraform & Infrastructure as Code (IaC) with Terraform
Detect configuration drift by modifying a resource out-of-band and observing the next plan
Replace a resource using taint or -replace and explain the difference from an in-place update
Apply terraform fmt and validate as part of a repeatable pre-commit or scripted workflow
Upgrade a provider version constraint and use the dependency lock file to keep installs reproducible
Review a plan for destructive changes and describe safeguards (prevent_destroy, targeted plans, manual approval)
Your checkpoint
A maintenance runbook in the repo covering drift detection, resource replacement, formatting/validation checks, and a provider upgrade, each backed by captured command output from a real run.
HCP Terraform & Core Terraform workflow
Create an HCP Terraform organization and workspace and connect it to a VCS repository
Trigger a run from a commit and read the run timeline, plan, and apply stages in the UI
Configure workspace variables, including a sensitive variable and a variable set shared across workspaces
Distinguish remote runs from local runs and explain what the CLI-driven workflow adds
Describe how workspace permissions, teams, and run approvals support collaboration
Your checkpoint
An HCP Terraform workspace with a successful VCS-driven run whose variables come from a shared variable set plus one workspace-specific sensitive variable, plus a screenshot-free written walkthrough of the run lifecycle.
Infrastructure as Code (IaC) with Terraform & Terraform fundamentals & Core Terraform workflow & Terraform configuration & Terraform modules & Terraform state management & Maintain infrastructure with Terraform & HCP Terraform
Complete two timed practice exams and log every missed question by domain
Re-derive the answer for each missed item from the docs or an experiment rather than memorizing it
Re-run the weakest two hands-on labs from weeks 3 through 7 without notes
State the eight exam domains and one key concept per domain from memory
Your checkpoint
A score report from two timed practice attempts with a per-domain remediation list, plus evidence that the two weakest labs were re-completed unaided.
Milestones
Week 2: Can run the full core workflow from memory on a fresh directory and correctly predict every plan action symbol before applying.
Week 4: A reusable module written this week is consumed twice from a root module, and both instances are visible in state without any copy-pasted resource blocks.
Week 6: State lives in a remote backend with locking verified, one resource has been imported, and drift was detected and reconciled through a plan rather than manual edits.
Week 8: Scoring at or above 80 percent on two timed practice exams with no domain below 70 percent, and all remediation items closed.