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=TRACEandTF_LOG_PATH - Variable definition precedence when executing Terraform: docs
- Terraform state filenames (when using Terraform Local):
terraform.tfstate.dandterraform.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
remotebackend; stores state of single workspace in single remote workspace. - Terraform Local Workspace: For
localbackend; stores state of multiple workspaces in singleterraform.tfstate.dfile.
- Terraform Cloud Workspace: For
terraform showvsterraform stateterraform 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
providerversions- Since Terraform v0.12, it’s recommended to define a
providerversion withinrequired_providersinterraformblock. (instead of within aproviderblock)
- Since Terraform v0.12, it’s recommended to define a
terraform fmtdoesn’t format.tffiles 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% | - |