Day 23 of my Terraform journey marked a clear shift.
The book is done.
The labs are running.
The workflows are built.
Now the focus is exam preparation.
For the past three weeks, I have been building real Terraform infrastructure: EC2 instances, load balancers, Auto Scaling Groups, reusable modules, remote state examples, manual tests, Terratest, GitHub Actions, Sentinel policies, and full deployment workflows.
But certification preparation requires a different mindset.
It is not enough to say:
“I have used Terraform.”
The better question is:
“Can I explain what Terraform is doing, why it is doing it, and what happens in edge cases?”
That was the focus of Day 23.
Official study guide:
Terraform Associate 004 Study Guide
Starting With the Official Objectives
The first thing I did was go back to the official HashiCorp Terraform Associate study material.
That matters because the exam is not based on what I personally used most during the challenge.
It is based on the published exam objectives.
Some topics came up almost every day in my hands-on work:
terraform initterraform planterraform apply- variables
- outputs
- providers
- modules
- state
- remote state
- workspaces
- lifecycle rules
- testing workflows
Other topics appeared less often but are still important for the exam:
terraform state mvterraform state rmterraform import- provider aliases
- non-cloud providers
- HCP Terraform workspaces
- Terraform Cloud variable handling
- private registry
- cost estimation
- Sentinel policy concepts
That is why Day 23 was not about deploying another big stack.
It was about auditing what I know honestly.
My Self-Audit Approach
I used a simple Green / Yellow / Red rating system.
Green
I can explain it clearly and I have done it hands-on.
Examples:
- core Terraform workflow
- modules
- variables and outputs
terraform planterraform apply- remote state concepts
- GitHub Actions workflow basics
Yellow
I understand it conceptually, but I need more practice.
Examples:
- state subcommands
- provider alias syntax
- complex Terraform functions
- non-cloud providers
- import edge cases
Red
I am not confident enough yet and need focused study.
For me, the closest Red/Yellow area is HCP Terraform detail.
I understand the purpose, but I still need to review:
- remote runs vs local runs
- HCP Terraform workspaces vs CLI workspaces
- variable sets
- Sentinel policy timing
- private registry behavior
- cost estimation limitations
The biggest benefit of this audit was clarity.
Instead of saying “I need to study Terraform,” I now know exactly what to study.
The Areas I Found Most Challenging
The hardest areas are not the big visible Terraform commands.
They are the small operational details.
1. State Commands
This is one section I think many people underestimate.
Commands like these matter:
terraform state list
terraform state show
terraform state mv
terraform state rm
terraform import
The exam can ask scenario-based questions such as:
“What happens when you run terraform state rm?”
The answer is important:
terraform state rm removes the resource from Terraform state only.
It does not destroy the real infrastructure.
That distinction is exactly the kind of thing the exam tests.
2. Provider Aliases
Provider aliases are easy to understand, but the syntax needs to be familiar.
Example:
provider "aws" {
region = "us-east-1"
}
provider "aws" {
alias = "west"
region = "us-west-2"
}
resource "aws_s3_bucket" "west_bucket" {
provider = aws.west
bucket = "example-west-bucket"
}
The key idea:
Terraform uses the default provider unless you explicitly tell a resource or module to use an aliased provider.
3. HCP Terraform
HCP Terraform is another area I want to review carefully.
The exam expects you to understand concepts like:
- remote execution
- workspace variables
- sensitive variables
- environment variables
- private registry
- policy enforcement
- cost estimation
- team workflows
Even if you mostly use local Terraform or an S3 backend, these concepts are still exam material.
4. Non-Cloud Providers
Terraform is not only for AWS, Azure, or Google Cloud.
It also has providers like:
resource "random_id" "example" {
byte_length = 8
}
resource "local_file" "example" {
content = "Hello from Terraform"
filename = "${path.module}/output.txt"
}
This is a good exam reminder:
A Terraform provider is a plugin that exposes resource types.
It does not have to manage a cloud platform.
My Study Plan Structure
Instead of creating a vague study plan like:
“Review Terraform state”
I made the plan action-based.
For example:
| Topic | Confidence | Study Method | Time |
|---|---|---|---|
| State commands | Yellow | Run state list, state show, state mv, state rm, and import on test resources |
60 min |
| HCP Terraform | Yellow/Red | Review workspaces, variable sets, remote runs, policies, and registry | 75 min |
| Provider aliases | Yellow | Write one AWS alias example and one module provider mapping example | 30 min |
| Non-cloud providers | Yellow | Create a tiny random + local_file config |
30 min |
| Complex types/functions | Yellow | Practice maps, objects, for, merge, lookup, toset, and splats |
45 min |
| Official sample questions | Yellow | Complete questions and explain wrong answers | 45 min |
That kind of plan is much easier to follow because every study block has an output.
CLI Commands People Underestimate
If there is one section I would tell people not to ignore, it is the Terraform CLI.
Most people remember:
terraform init
terraform plan
terraform apply
terraform destroy
But the exam also expects you to understand commands like:
terraform fmt
terraform validate
terraform output
terraform state list
terraform state show
terraform state mv
terraform state rm
terraform import
terraform workspace
terraform providers
terraform login
terraform graph
The important thing is not just memorizing command names.
You need to know what they affect.
For example:
-
terraform fmtchanges formatting only -
terraform validatechecks configuration, not live infrastructure health -
terraform state rmremoves something from state, not from AWS -
terraform importadds an existing object to state but does not write a full configuration for you -
terraform graphoutputs a dependency graph -
terraform loginauthenticates the CLI to HCP Terraform
Those details matter.
Practice Questions Help More Than Passive Reading
I also worked through the official sample questions and wrote a few of my own.
Writing your own questions is surprisingly useful because it forces you to understand the material well enough to create plausible wrong answers.
Example:
Question:
A saved Terraform plan becomes stale. What should you do?
Answer:
Regenerate the plan, review it again, then apply the new saved plan.
That question came directly from something I experienced during the challenge.
That is the best kind of study material: real mistakes turned into exam memory.
My Biggest Exam Prep Takeaway
The Terraform Associate exam is not only about knowing how to write .tf files.
It tests whether you understand the Terraform workflow.
That means knowing:
- what Terraform reads
- what Terraform writes
- when state changes
- when real infrastructure changes
- how providers are selected
- how modules are sourced
- how Terraform Cloud changes the workflow
- what each CLI command actually does
That is why hands-on practice matters so much.
Reading alone is not enough.
Final Tips
If you are preparing for the Terraform Associate exam, my advice is:
- Start with the official study guide.
- Audit yourself honestly.
- Do not skip state commands.
- Practice provider aliases.
- Review HCP Terraform even if you do not use it daily.
- Learn what each CLI command changes.
- Turn your own mistakes into practice questions.
- Keep your study plan specific and time-boxed.
Official Resource
Terraform Associate 004 Study Guide:
https://developer.hashicorp.com/terraform/tutorials/certification-004/associate-study-004
Official Sample Questions:
https://developer.hashicorp.com/terraform/tutorials/certification-004/associate-questions-004
Full Notes
GitHub Day 23:
https://github.com/mary20205090/30-day-Terraform-Challenge/tree/main/day_23
Follow My Journey
This is Day 23 of my 30-Day Terraform Challenge.
See you on Day 24.
Top comments (0)