DEV Community

Cover image for 5 Practical Tips for the Terraform Authoring and Operations Professional Exam
Anthony Wat for AWS Community Builders

Posted on • Originally published at blog.avangards.io

5 Practical Tips for the Terraform Authoring and Operations Professional Exam

Introduction

Over the past year, I have worked extensively with Terraform and AWS in building turnkey infrastructure solutions and contributing to the Terraform AWS Provider as a HashiCorp Core Contributor. As a formal validation of my Terraform expertise, I was motivated to take the Terraform Authoring and Operations Professional Exam. I recently passed the exam, and it was such a fun and unique experience that I decided to share my study tips with the community in this blog post to raise awareness and spark interest. Let’s first take a look at what this exam is all about.

About the Terraform Authoring and Operations Professional Exam

The Terraform Authoring and Operations Professional certification is not an entry-level exam. It’s intended for engineers who already have hands-on experience using Terraform in production and maintaining infrastructure over time. Passing the exam demonstrates strong skills in writing Terraform modules and managing Terraform operations in an organizational setting. The objectives of the exam include:

  1. Manage resource lifecycle - Covers the end-to-end Terraform workflow for creating, updating, destroying, and managing infrastructure state using core CLI commands.

  2. Develop and troubleshoot dynamic configuration - Focuses on writing flexible, reusable Terraform configuration using HCL features, functions, variables, and best practices for sensitive data.

  3. Develop collaborative Terraform workflows - Addresses how Terraform is used in team and automated environments, including versioning, remote state, automation, and data sharing.

  4. Create, maintain, and use Terraform modules - Examines how to design, consume, refactor, and version Terraform modules to enable reuse and maintainability.

  5. Configure and use Terraform providers - Covers provider architecture, configuration, authentication, versioning, and troubleshooting provider-related issues.

  6. Collaborate on infrastructure as code using HCP Terraform - Focuses on operating Terraform at scale with HCP Terraform, including runs, workspaces, credential management, and governance controls.

The exam is primarily lab-based, with scenarios in which you modify configuration and provision and manage infrastructure in a virtual exam environment. It also includes a small multiple-choice section that validates your knowledge of HCP Terraform and related topics. This is an online, proctored exam that is four hours in length, with an optional 15-minute break. It costs $295 USD plus tax; however, it does include a free retake.

If the content and format of this exam intrigue you enough to take the plunge, here are some practical tips that may help with your preparation.

Tip 1: Use the Official Prep Tutorial to Guide Your Study

The Terraform Professional certification exam prep guide was my go-to resource for studying. Both the learning path and the exam content list provide an exhaustive and structured set of topics to master, including recommended tutorials. Based on these resources, I created my own study plan and a list of things to test in my lab environment. Much of my study involved writing Terraform configuration, running commands, and observing how the system behaves.

While there aren’t many third-party study materials available for the exam, I did come across the Terraform Authoring and Operations Professional Study Guide, which was mentioned in this Reddit thread I found during my research. I read a free chapter of the book and found it to be quite well written, although I personally have enough Terraform and AWS experience that I could do without it.

Tip 2: Practical Experience with Terraform and AWS Is a Must

Unlike the HashiCorp Certified: Terraform Associate Exam and many cloud provider exams, passing the Terraform Authoring and Operations Professional Exam requires extensive hands-on experience with Terraform. Learning from basic tutorials alone will not help much, and it is futile to try studying and memorizing your way to a passing grade for this exam.

Although the exam details do not list AWS experience as a prerequisite, you must know how to deploy resources from core AWS services, such as Amazon EC2, Amazon VPC, and AWS IAM, to complete the lab-based scenarios efficiently. The list of AWS resources to review in the exam content outline is a good indicator of what you need to know and brush up on before the exam.

The required Terraform knowledge is also advanced, as you will need to employ dynamic configuration (think functions, modules, and meta-arguments) and state manipulation to complete the lab-based scenarios. Even in my professional services role with daily interaction with AWS and Terraform, I rarely had a need to work so extensively with states and advanced Terraform features. Fortunately, I explicitly practiced based on cues from Reddit and the study guide, which left me well prepared. Make sure you go through tutorials on these advanced topics and try them out in a sandbox environment.

Additionally, your Terraform CLI experience likely amounts to running terraform init, terraform plan and terraform apply even if you work with Terraform regularly. You should therefore review and experiment with the full list of CLI commands and their various options. I, for one, learned about an experimental option for a particular CLI command that proved helpful during the exam.

Tip 3: Know Your Way Around the Exam Environment

The exam is conducted within a Guacamole-powered Linux virtual desktop environment that is accessed via your web browser. The video walkthrough on the exam orientation page should give you an idea of what the exam environment looks like. The exam is primarily delivered through a local web page in the preinstalled Mozilla Firefox web browser. It provides the exam instructions and lab scenarios, a section for completing the multiple-choice questions, and links to whitelisted resources such as Terraform and provider documentation.

For the lab-based scenarios, the preinstalled Visual Studio Code is your main interface. The IDE has some useful extensions, such as the HashiCorp Terraform extension, preinstalled, giving you access to features like IntelliSense. However, the IDE may not be fully configured with all the quality-of-life features that you’d expect (such as format on save), so you will either have to change the settings yourself or bear with the minor inconveniences. One thing I found to be extremely helpful is the terminal in VS Code. Even though it is not mentioned in the exam instructions, opening the terminal in VS Code provides you with a prompt to navigate to the directory of each lab scenario. This made it more efficient for me to open files and run commands, without having to browse and open files from the desktop. If you are not already using VS Code for Terraform development, be sure to familiarize yourself with it and the Terraform extension before the exam.

One notable annoyance with the exam environment is that if you use your mouse side buttons to navigate between documentation pages in Firefox, the shortcut is instead recognized by your main web browser and leads you out of the exam session. You’d then have to ask the proctor to let you back in. I have also seen other exam takers reporting similar issues with keyboard shortcuts. It was difficult for me to break this habit during the exam, so I accidentally exited the exam environment several times, much to the proctor’s dismay, which he made clear in the chat. After the exam, I reported the issue and was contacted by someone from IBM, so I hope this can be fixed soon.

Otherwise, it wasn’t too difficult to adapt to the copy-and-paste shortcuts, and overall latency was acceptable.

ℹ I noticed that GitHub Copilot was installed and seemingly usable in VS Code. Although tempting, I did not use it during the exam, as it would likely violate the exam terms.

Tip 4: Learn to Navigate Terraform and AWS Documentation Efficiently

During the exam, you can access the Terraform documentation, the Terraform Registry, the AWS provider documentation, and some AWS documentation in Firefox. However, you will not be able to search, so you will need to rely on navigating the documentation.

You should know where to find CLI command references for available options, as well as configuration construct references such as functions and built-in resources. You can navigate to these topics from the main documentation page via Terraform CLI and Configuration Language in the left-hand menu, respectively:

Where to find language and CLI references in the Terraform documentation

As I am fairly proficient with Terraform and practiced before the exam, I only referred to the documentation a couple of times. Where it helped me most was in validating my answers to multiple-choice questions related to platform and enterprise features that I am not experienced with.

Navigating the AWS provider documentation should be straightforward, but you should know where to find information about provider configuration and in-scope resources for the exam. As I work with AWS almost on a daily basis, I didn’t need to refer to AWS documentation at all. Overall, you should familiarize yourself with navigating the documentation without relying on search.

Tip 5: Manage Your Time Effectively During the Exam

The Terraform Authoring and Operations Professional Exam is 4 hours in duration with an optional 15-minute break, making it the longest IT exam I’ve taken to date. That said, you will likely need the entire allotted time to complete the exam. The majority of your time will be spent on lab-based scenarios that are aligned with the exam objectives by theme. Be sure to review each lab scenario description thoroughly and complete them “to spec”. The code doesn’t have to be pretty - it just needs to work correctly.

It may also be wise to time-box each scenario, perhaps to 45 minutes, so that you at least have an opportunity to attempt every question. I recall getting stuck on a very specific provider-related issue in the second scenario and spending about an hour on it before deciding to park it and move on. I was fortunately able to complete the other scenarios fairly quickly, which afforded me about 30 minutes to figure out the earlier scenario and double-check my answers to the multiple-choice questions. I completed the exam right at the time limit with confidence and received a passing notification an hour or two later.

Summary

The Terraform Authoring and Operations Professional Exam is a challenging, hands-on exam that really tests how well you know Terraform in real-world scenarios. In this blog post, I shared what the exam is like and the study strategies that worked for me - from focusing on hands-on practice and advanced Terraform features to getting comfortable with the exam environment and managing your time effectively.

If you’re thinking about taking the exam, I hope these tips help you prepare with more confidence. And if you found this useful, feel free to check out my other blog posts in the Avangards Blog, where I share more lessons learned from working with Terraform, AWS, and infrastructure as code. Good luck and happy “Terraforming”!

Top comments (0)