"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:

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 and TF_LOG_PATH
    • Variable definition precedence when executing Terraform: docs
    • Terraform state filenames (when using Terraform Local): terraform.tfstate.d and terraform.tfstate.backup (for backup state)
    • Terraform tiers feature differences: docs
  • 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 single terraform.tfstate.d file.
  • terraform show vs terraform 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 via terraform state list.
  • Defining provider versions
    • Since Terraform v0.12, it’s recommended to define a provider version within required_providers in terraform block. (instead of within a provider block)
  • 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% -