Cert Review: HashiCorp Certified Terraform Associate
"building sandcastles in the cloud..." (source)
Why I did the certification
To learn and solidify my skills in Infrastructure as Code (IaC)
Why you should do it too
- Terraform is an easy-to-use tool to provision and manage cloud infrastructure
- Every developer managing cloud infrastructure should practice Infrastructure as Code principles.
Note: Other IaC tools (eg. CloudFormation, Google Cloud Deployment Manager, Azure Resource Manager) would be equally effective too 👍
Best way to prepare for it
1. Use the Terraform Exam Review document
- HashiCorp’s very own Terraform Exam Review document is very well-structured and comprehensive 🚀
- I highly recommend using the Exam Review document, as it outlines all the important aspects required to pass the exam
- Given that Terraform’s scope is not too broad (as compared to say, AWS), I think is not necessary to purchase a separate structured course.
2. Do (many) prep tests
- Same old, same old - Drill ‘em tests! 🚧
Prep tests:
- HashiCorp Certified: Terraform Associate Practice Exam 2020 by Bryan Krausen
- HashiCorp Certified: Terraform Associate 2020 Practice Exam by CloudME
- HashiCorp Certified: Terraform Associate Practice Exam 2020 by eBuddy Learning
3. Practice using it
- The best way to learn Terraform is to provision cloud infrastructure using the Terraform CLI
- Don’t forget to explore Terraform Cloud’s features too! (though it’s not covered much in the exam)
- Since most cloud providers provide a Free Tier (eg. AWS Free Tier), you can practice using Terraform at no cost! 🥳
Exam Tips & Gotchas
- Things you’ll have to memorize:
- Environment variables used to enable Terraform debugging:
TF_LOG=TRACE
andTF_LOG_PATH
- Variable definition precedence when executing Terraform: docs
- Terraform state filenames (when using Terraform Local):
terraform.tfstate.d
andterraform.tfstate.backup
(for backup state) - Terraform tiers feature differences: docs
- Environment variables used to enable Terraform debugging:
- Terraform Cloud Workspace vs Terraform Local Workspace
- Terraform Cloud Workspace: For
remote
backend; stores state of single workspace in single remote workspace. - Terraform Local Workspace: For
local
backend; stores state of multiple workspaces in singleterraform.tfstate.d
file.
- Terraform Cloud Workspace: For
terraform show
vsterraform state
terraform show
: Displays details of current managed infrastructure.terraform state
: Used to make manual modifications to state file. Can also display details of current managed infrastructure viaterraform state list
.
- Defining
provider
versions- Since Terraform v0.12, it’s recommended to define a
provider
version withinrequired_providers
interraform
block. (instead of within aprovider
block)
- Since Terraform v0.12, it’s recommended to define a
terraform fmt
doesn’t format.tf
files recursively by default
My Stats
Some stats on myself to give a bit of context on where I was before I took the exam:
Basic Stats
Area | Notes |
---|---|
Educational Background | BEng Computer Science degree |
Professional Background | ~3yrs SWE experience, limited cloud exposure, some node.js + docker + k8s. Acquired AWS CSAA |
Total Prep Time | 13th August 2020 - 17th September 2020 (~1mth) |
Exam Taken | 24th October 2020 |
Exam Score | 91% |
Practice Test Stats
See More
Test Try/Score % | 1st | 2nd |
---|---|---|
CloudME 1 | 67% | 93% |
CloudME 2 | 62% | 80% |
CloudME 3 | 73% | 86% |
eBuddy 1 | 78% | 92% |
eBuddy 2 | 89% | 91% |
eBuddy 3 | 84% | 85% |
eBuddy 4 | 87% | 96% |
Actual | 91% | - |