Study Guide - Terraform Associate Certification (002)
This guide lists resources you should study if you are preparing for the Terraform Associate Certification (002) exam from scratch. We've listed the resources in order of difficulty so that you should be able to progress through the list in order. For resources related to a particular test objective, refer to the Exam Review Guide instead. You can also check out the Associate Certification Tutorials Collection to review all of the tutorials linked below.
Visit the HashiCorp Cloud Engineer Certification page for information on the exam and to sign up.
Learn about IaC
Terraform is a tool that allows you to define infrastructure in human and machine-readable code. Review the following resources to start learning about the advantages of Infrastructure as Code (IaC), and the advantages of Terraform specifically.
- Infrastructure as Code introduction video
- Infrastructure as Code in a Private or Public Cloud blog post
- Introduction to IaC documentation
- Terraform Use Cases documentation
These resources will help you demonstrate that you:
- understand Infrastructure as Code (IaC) concepts - (Objective #1)
- understand Terraform's purpose (vs other IaC) - (Objective #2)
Follow along with the "Get Started" tutorials to create, modify, and destroy your first infrastructure using Terraform, and to learn about some of Terraform's language features.
- Get Started with Terraform (complete all tutorials)
Study these additional resources to learn more about Terraform key concepts, like providers, provisioners, and state.
- Providers documentation
- Purpose of Terraform State documentation
- Terraform Settings documentation
- Provision Infrastructure Deployed with Terraform tutorials
- Provisioners documentation
- Manage Resources in Terraform State tutorial
- Use Refresh-Only Mode to Sync Terraform State tutorial
- Lock and Upgrade Provider Versions tutorial
- Perform CRUD Operations with Providers tutorial
The track and resources in this section will help you demonstrate that you understand Terraform basics. (Objective #3)
Master the workflow
The core Terraform workflow consists of writing configuration, initializing needed plugins, planning infrastructure changes, and then applying them. Read the following resources to learn about the most common CLI subcommands you will use in your Terraform workflow.
- The Core Terraform Workflow documentation
- Initialize a Terraform working directory with
- Validate a Terraform configuration with
- Generate and review an execution plan for Terraform with
- Execute changes to infrastructure with Terraform with
- Destroy Terraform managed infrastructure with
These resources will help you demonstrate that you can navigate the Terraform workflow. (Objective #6)
Learn more subcommands
In addition to the normal Terraform workflow, the CLI includes many subcommands for additional operations, including checking configuration formatting, importing configurations, and manipulating state. Review the following resources and tutorials to get more familiar with the Terraform CLI.
- Troubleshoot Terraform tutorial
- Formatting configuration with
- Tainting resources with
- Managing state with
- Using local workspaces with
- Refactor Monolithic Terraform Configuration tutorial
- Importing existing resources with
- Import Terraform Configuration tutorial
These resources will help you demonstrate that you can use the Terraform CLI outside of the core workflow. (Objective #4)
Use and create modules
Modules help you organize and re-use Terraform configuration. Follow the Modules tutorials to read about module basics, use your first module from the Terraform registry, and create a new module.
- Organize Configuration with Modules (complete all tutorials)
Review these additional resources to learn about modules and associated concepts in more depth.
- Finding and using modules documentation
- Module versioning documentation
- Input Variables documentation
- Input Variables Learn tutorial
- Output Values documentation
- Output Values tutorial
- Calling a child module documentation
The track and resources in this section will help you demonstrate that you can interact with Terraform modules. (Objective #5)
Read and write configuration
Terraform uses its own configuration language to determine the goal state for the infrastructure it manages. The below resources describe some of the features of Terraform's configuration language.
- Resources describe infrastructure objects
- Data sources let Terraform fetch and compute data
- Query Data Sources tutorial guides you through using data sources
- Resource addressing lets you refer to specific resources
- Named values let you reference values
- Create Resource Dependencies tutorial guides you through managing related infrastructure using implicit and explicit dependencies
- Terraforms Resource Graph ensures proper order of operations
- Complex types let you validate user-provided values
- Built in functions help transform and combine values
- Perform Dynamic Operations with Functions tutorial walks you through using Terraform functions
- Create Dynamic Expressions tutorial shows you how to create more complex expressions
- Dynamic blocks allow you to construct nested expressions within certain configuration blocks
Because Terraform manages your infrastructure, it sometimes needs access to sensitive data. You can inject sensitive data into Terraform configuration using Vault. Review the following resources to learn about secure secrets injection.
- Inject secrets into Terraform using the Vault provider tutorial
- Vault Provider for Terraform documentation
These resources will help you demonstrate that you can read, generate, and modify Terraform configuration. (Objective #8)
Terraform uses state to keep track of the infrastructure it manages. To use Terraform effectively, you have to keep your state accurate and secure. Read the following resources to learn about managing Terraform's state and storage backends.
- State locking documentation
- Sensitive data in state documentation
- Reconcile state and real resources with
- Manage Resource Drift tutorial
- Login to Terraform Cloud from the CLI tutorial
- Backends overview documentation
- Local backend documentation
- Backend types documentation
- How to configure a backend documentation
- Migrate State to Terraform Cloud tutorial
These resources will help you demonstrate that you can implement and maintain state. (Objective #7)
Debug in Terraform
Terraform has a verbose logging mode to help you debug. Review the debugging documentation, which will help you demonstrate that you know when, why, and how to enable verbose logging. (Objective 4f)
Understand Terraform Cloud and Enterprise
The Terraform CLI focuses on solving the technical challenges of managing IaC. When you collaborate with a team on Infrastructure as Code, new organizational challenges come up. Terraform Cloud and Enterprise focus on solving these organizational challenges. The below resources will help you understand when you would want to consider using Terraform Cloud or Enterprise, and the problems they solve.
- Terraform Cloud overview documentation
- Understanding Workspaces and Modules resource
- CLI workspaces documentation
- The UI- and VCS-driven Run Workflow documentation
- Terraform Cloud workspaces documentation documentation
- Use Modules from the Registry tutorial
- Terraform Registry documentation
- Install the Sentinel CLI tutorial
- Sentinel Policy as Code documentation
- Feature comparison pricing page (scroll down for feature matrix)
These resources will help you demonstrate that you understand Terraform Cloud and Enterprise capabilities. (Objective #9)
Once you have reviewed the above resources you will be ready to take the Terraform Associate Certification (002) exam. Visit our exam partner to:
- create an account.
- purchase the exam.
- register for an exam appointment.
- take the exam.
To find study materials for a particular exam objective or sub-objective, refer to our review guide. To find out what types of questions will be on the exam, review our sample questions.