Terraform certifications differ significantly in how they ask questions: Associate tests breadth of fundamentals, while Professional tests the full stack of design and operational competence.
Study time can vary by more than 2x depending on your prior skills. Concentrating your study on three areas — design, state management, and modules — gives you the best return on effort.
HashiCorp Certified: Terraform Associate covers IaC fundamentals, CLI operations, state-management basics, module usage, and Terraform Cloud/Enterprise concepts. Professional adds team/governance design, multi-environment configuration strategies, policy enforcement, and troubleshooting on top of that.
Prior skills make a huge difference. If you already know the cloud and Git basics, expect 20-40 hours for Associate and 60-120 hours for Professional. Total beginners should budget roughly double. Exam questions are designed around the standard behavior described in the official documentation, so understanding aligned with best practices is the fastest path.
| Item | Associate | Professional | On the Job (Mid-size) |
|---|---|---|---|
| Prerequisite skills | CLI, Git, cloud basics | Design/operations and team development flow | Requirements management and review process |
| Study-time estimate | 20-40h (40-80h for beginners) | 60-120h (120-200h from zero experience) | 100h+/quarter cumulative for ongoing operations |
| Depth of exam scope | Core concepts and safe operations | Validity of design choices and operational design | Requirement-driven, SLA/compliance alignment |
| Code reading and design | Mostly small-scale read/write | Module design and refactoring required | Improving and standardizing existing assets |
| State management | Basics (backend/lock/refresh concepts) | Migration, import, and split strategies | Incident recovery procedures and audit response |
| Terraform Cloud | Concepts and basic workflow | Team, governance, and policy enforcement | VCS integration and runner optimization |
Associate tests how accurately you understand the Terraform behaviors defined in the official documentation. Typical topics include the difference between plan and apply, the correspondence between state and real infrastructure, how to use modules and the registry, and the conceptual difference between CLI workspaces and Terraform Cloud workspaces.
Professional is closer to being able to explain why a choice is best, not just picking the right answer. Expect more questions that require operational judgment: splitting/migrating state, VCS branching strategy, where to draw policy boundaries, organizing dependencies across multiple environments/accounts, and safe recovery from failures.
Terraform basic flow (concept layout that appears frequently on the exams)
To target Associate in a short 4-week window, plan for about 1 hour on weekdays plus 3 hours on weekends — roughly 20-30 hours total — and lock in weekly goals and practice sessions. Professional at the same pace needs 8+ weeks. The key is to cycle through read → write → break → fix as quickly as possible.
Reading the official docs in a task-centric way is the shortcut. Do not memorize the CLI reference — run commands and observe the behavior. Spending more time on state management and design judgment than on version-specific trivia translates directly into a pass.
Pick lab topics that you can build small and break safely. Combining an S3 backend + DynamoDB lock, a Registry VPC module, and environment-variable separation gives you cross-cutting exposure to the frequent topics on both Associate and Professional.
Keep three perspectives in mind: state safety (backend and locks), reproducibility (version pinning, variable validation), and extensibility (modularization and for_each). Observe each one along the standard behavior defined by the official docs, and put plan diffs and apply results into words.
Lab main.tf (S3 backend + Registry module)
terraform {
required_version = ">= 1.5.0"
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
backend "s3" {
bucket = "example-tfstate-bucket"
key = "workspaces-example/terraform.tfstate"
region = "ap-northeast-1"
dynamodb_table = "tf-lock"
encrypt = true
}
}
provider "aws" {
region = var.region
}
variable "region" {
type = string
default = "ap-northeast-1"
validation {
condition = contains(["ap-northeast-1", "us-east-1"], var.region)
error_message = "サポート対象のリージョンを指定してください。"
}
}
module "vpc" {
source = "terraform-aws-modules/vpc/aws"
version = "~> 5.0"
name = "exam-lab"
cidr = "10.0.0.0/16"
azs = ["ap-northeast-1a", "ap-northeast-1c"]
public_subnets = ["10.0.1.0/24", "10.0.2.0/24"]
enable_dns_hostnames = true
tags = { Project = "cert" }
}
output "vpc_id" {
value = module.vpc.vpc_id
sensitive = false
}
The most common stumbling block is shaky understanding of state and diffs. plan only proposes changes; apply is what actually rewrites real infrastructure and state. State drift is detected during plan, so building the habit of reading the rationale behind a diff is essential to avoid unintended destruction.
Use import to adopt existing resources. Editing the state file directly is discouraged and a frequent source of trouble. If you need to re-create something, use apply -replace=ADDR to minimize the blast radius. Because count and for_each change resource addressing, combine refactors with resource moves (moved blocks) to prevent destructive changes.
Collect the sure-win questions first and save design questions that require judgment for a second pass. For plan-output reading questions, quickly identify the lines that justify each add/change/destroy. CLI and Terraform Cloud terminology (run, workspace, variable sets, and so on) are easy to mix up, so doing a quick terminology pass right before the exam keeps your score stable.
On Professional, options will line up that are not wrong but are less good. Compare them on safety (concurrency control, least privilege), reproducibility (version pinning, immutable inputs), and operability (the balance between separation and sharing), and pick the answer closest to the official recommendation.
Associate / Pro
問題 1
You want to bring an already running, manually created cloud resource under Terraform management without downtime. Which procedure is most appropriate?
正解: A
Adopting an existing resource via import is the official safe procedure. Align both code and state, verify the diff with plan, and then apply. taint forces re-creation and carries a downtime risk. state rm removes management and is not an adoption procedure. Editing state directly is discouraged and carries a high risk of corruption.
Should I take Associate or Professional first?
If you want to learn Terraform systematically, start with Associate. Professional tests design and operational judgment, so it is more efficient to tackle it after you have at least some small-scale hands-on experience and have worked through state migration, module design, and Terraform Cloud team features.
Which Terraform version should I study with?
Use the latest stable 1.x release. The exams rely on stable concepts (the roles of plan/apply, state, modules, backends, and the main Terraform Cloud features). Treat version-specific changes as side notes and focus on core behaviors.
Do I need to study Terraform Cloud's paid features?
The exams emphasize conceptual understanding, and the free tier (VCS integration, remote execution, workspaces, variables, state management) covers the core of what you need to study. For policy enforcement and team/governance, aim to be able to explain the mechanism and purpose.
Practice with certification-focused question sets
無料で問題を解いてみるNicheeLab Editorial Team
NicheeLab editorial team focused on data engineering and cloud certification learning. Content is structured around practical study needs and official exam domains.
HCL Syntax: Terraform's Configuration Language (2026)
HCL2 fundamentals for Terraform — blocks, attributes, expres...
Terraform Authoring & Operations Pro: Complete Guide (2026)
Tactics for the Terraform Pro exam — module authoring, works...
Terraform Providers: Plugin Management Fundamentals (2026)
Provider mechanics — required_providers, versions, mirrors, ...
Terraform Resource Blocks: Declarative Infra Units (2026)
Resource block fundamentals — addresses, references, common ...
Terraform Data Sources: Read-Only External Data (2026)
Data source basics — declaration, refresh behavior, dependen...