enjoys technical writing, and a cheeky drink 🥃

Reflecting on HashiCorp Certified: Terraform Associate 002

Background

I passed the HashiCorp Certified: Terraform Associate 002 exam on Jan 14th 2023. This was my first try, fortunately.

In terms of my Terraform experience prior to the exams, I have yet to build any Terraform project at a production level.
My recent exposure was mainly around trying to play around with CircleCI’s Nomad client Terraform setup.

Motivations

In my past career, I have used loads of AWS CloudFormation. Yes, I have had some battle scars re: IaC.
I always wanted to learn more about Terraform, given that it supports more than 1 cloud platform.

In particular, I am interested in contributing a Terraform provider for CircleCI.
This means creating a provider/plugin for creating CircleCI webhooks / scheduled pipelines via Terraform for example.

This above may likely be a lofty ambition, but I thought I’d hedge this by also trying for the certification.
Kill two birds in one quarter, as they say.

Breakdown of Score

Content Area Score (%)
Understand infrastructure as code (IaC) concepts 100
Understand Terraform’s purpose (vs other IaC) 100
Understand Terraform basics 85
Use the Terraform CLI (outside of core workflow) 100
Interact with Terraform modules 50
Navigate Terraform Workflow 100
Implement and maintain state 75
Read, generate and modify configuration 72
Understand Terraform Cloud and Enterprise capabilities 100

Overall, I scored 84% (70% required).

Word of Advice

If you are not using Terraform on a daily basis, practice Terraform CLI commands definitely!

The exam has a few questions where they may test you to type the code / command required. See sample questions here.

I did have a “doh!” moment, since it wasn’t clear how “complete“ the answer should be.

In particular, one question I got was: How would you reference the vpc_id from this module in the code snippet?

To reference the module output, it would be module.aws_vpc.vpc_id for example. I think the full answer should be: vpc_id = module.aws_vpc.vpc_id.

I had only typed module.aws_vpc.vpc_id due to lack of clarity in the question. I think I likely lost points there!

In terms of studying for it, I highly recommend the following Udemy course + practice exam!

Lastly, there will be a newer exam version (003).
I understand this update would remove older questions referring to already-deprecated commands (e.g., taint).
So if you can wait, do go for the 003 version instead!

Final Thoughts

It was a fun exam to take, for sure!

Given that it is really about a tool and its ecosystem, I’d highly encourage folks to try out Terraform while practicing for the exam.

Your mileage on the Terraform tool will go a long way if you practice.
This way, the exam questions will make way more sense too, as you practice.

buy Kelvin a cup of coffee