Terraform の資格は、基礎の網羅力(Associate)と、設計・運用までの総合力(Professional)で問われ方が大きく変わる。
学習時間は前提スキルで倍以上変わる。設計・状態管理・モジュールの3点に学習時間を集中すると費用対効果が高い。
HashiCorp Certified: Terraform Associate は IaC の基本、CLI 操作、状態管理の基礎、モジュール活用、Terraform Cloud/Enterprise の概念を幅広く問う。Professional はこれらに加え、チーム/ガバナンス設計、複数環境の構成戦略、ポリシー適用、トラブルシューティングまで踏み込む。
前提スキルがあるかで学習時間は大きく変わる。クラウドと Git の基本がある人なら Associate は20〜40時間、Professional は60〜120時間が目安。初学者はおおむね倍を見込むと無理がない。出題は「公式が説明する標準的な振る舞い」を前提に設計されるので、ベストプラクティスに沿った理解が最短経路になる。
| 項目 | Associate | Professional | 現場(中規模) |
|---|---|---|---|
| 前提スキル | CLI・Git・クラウド基礎 | 設計/運用・チーム開発の流れ | 要件管理とレビュー体制 |
| 学習時間目安 | 20–40h(初学者は40–80h) | 60–120h(未経験からは120–200h) | 継続運用で累積100h+/四半期 |
| 出題範囲の深さ | 基本概念と安全な操作 | 設計選択の妥当性・運用設計 | 要件依存・SLA/Compliance 準拠 |
| コード読解・設計 | 小規模の読み書き中心 | モジュール設計/リファクタ要求 | 既存資産の改善/標準化 |
| 状態管理 | 基本(backend/lock/refreshの概念) | 移行/インポート/分割戦略 | 事故復旧手順と監査対応 |
| Terraform Cloud | 概念と基本ワークフロー | チーム/ガバナンス/ポリシー適用 | VCS連携/ランナー最適化 |
Associate は、公式ドキュメントで定義される Terraform の基本動作をどれだけ正確に把握しているかを問う。plan と apply の違い、状態と実インフラの対応、モジュールとレジストリの使い方、CLI ワークスペースと Terraform Cloud ワークスペースの概念差などが典型。
Professional は、正しい選択肢を選ぶだけでなく「なぜそれが最善か」を説明できるかに近い。状態管理の分割/移行、VCS 連携のブランチ戦略、ポリシー適用の境界、複数環境/アカウントに跨る依存関係の整理、障害時の安全な復旧など、実務判断を伴う出題が増える。
Terraform 基本フロー(資格で頻出の概念配置)
短期(4週間)で Associate を目指す場合は、平日1時間+週末3時間程度で計20〜30時間を確保し、各週の到達目標と模擬演習を固定する。Professional は同ペースだと8週間以上を推奨。重要なのは「読む→書く→壊す→直す」のサイクルを最短で回すこと。
公式ドキュメントのタスク中心の読み方が近道になる。CLI リファレンスは暗記でなく、実行結果を観察して挙動を体験する。バージョン依存の小ネタより、状態管理と設計判断の理解に時間を多めに割くと合格に直結する。
演習は「小さく作って、安全に壊せる」題材を選ぶ。S3 バックエンド+DynamoDB ロック、Registry の VPC モジュール、環境変数の分離を組み合わせると、Associate〜Professional の頻出トピックを横断的に体験できる。
意識する観点は3つ。状態の安全性(バックエンドとロック)、再現性(version 固定、変数バリデーション)、拡張性(モジュール化と for_each)。すべて公式が示す標準動作に沿って観察し、plan の差分と apply の結果を言語化する。
学習用 main.tf(S3 backend + Registry モジュール)
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
}
状態と差分の理解不足が最頻出のつまずき。plan は変更を提案するだけで、apply が初めて実インフラと状態を書き換える。状態ドリフトは plan で検出されるので、意図しない破壊を避けるためにも差分の根拠を読み解く習慣が重要。
既存リソースの取り込みは import を使う。state ファイルの直接編集は非推奨で、トラブルの温床。再作成が必要なら apply -replace=ADDR を使い、影響範囲を最小化する。count と for_each はアドレス指定が変わるため、リファクタ時のリソース移動(moved ブロック)を併用して破壊的変更を防ぐ。
先に確実な問題を回収し、判断を要する設計問題は2巡目に回す。plan 出力の読み取り問題は、追加/変更/破棄それぞれの根拠を示す行を素早く確認する。CLI と Terraform Cloud の用語差(run、workspace、variable sets など)は混同しやすいので直前に用語整理をしておくと安定する。
Professional では、誤りでないが「より良くない」選択肢が並ぶ。安全性(並行制御、最小権限)、再現性(version 固定、immutable inputs)、運用性(分離と共有のバランス)の観点で比較し、公式推奨に近い回答を選ぶ姿勢が有効。
Associate / Pro
問題 1
手動で作成され既に稼働中のクラウドリソースを、ダウンタイムを避けつつ Terraform の管理下に置きたい。最も適切な手順はどれか?
正解: A
既存リソースの取り込みは import を用いるのが公式の安全な手順。コードと状態の両方を整合させ、plan で差分を確認してから apply する。taint は再作成を強制しダウンタイムリスクがある。state rm は管理解除であり取り込み手順ではない。state 直接編集は非推奨で破損リスクが高い。
Associate と Professional のどちらから受けるべき?
Terraform を体系的に学ぶなら Associate からを推奨。Professional は設計・運用判断が問われるため、少なくとも小規模でも実務の経験や、状態移行・モジュール設計・Terraform Cloud のチーム機能を一通り触れた後が効率的。
どの Terraform バージョンで学習すればよい?
最新の安定版 1.x を推奨。試験は安定概念(plan/apply の役割、状態、モジュール、バックエンド、Terraform Cloud の主要機能)に依拠する。バージョン固有の変更点は補足に留め、コアの振る舞いを中心に学ぶと良い。
Terraform Cloud の有料機能まで学ぶ必要はある?
出題は概念理解が中心で、無料枠で体験できる範囲(VCS 連携、リモート実行、ワークスペース、変数、State 管理)が学習の主軸になる。ポリシー適用やチーム/ガバナンスは仕組みと目的を説明できるレベルを目指すとよい。
NicheeLab編集部
データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。
Terraform HCL 構文の基礎:Block / Attribute / Expression を正しく使い分ける
Terraform Associate で頻出の HCL 構文を、ブロック・属性・式の3視点で整理。実務で迷いがちな書き...
Terraform Authoring & Ops Pro: 上位資格の範囲と対策
上位レベルを想定したTerraformの設計・運用ドメインを整理し、実務で通用する対策を提示。モジュール設計、ステート運...
Terraform Providers の基本: プラグイン型アーキテクチャを正しく使いこなす
Associate レベルで押さえるべき Provider の基礎、インストール、バージョニング、認証、エイリアス運用を...
Terraform Resourceブロック徹底ガイド: 最小単位のリソース定義
Associateレベルで押さえるべきResourceブロックの構造、依存関係、メタ引数、ライフサイクル制御を実務目線で...
Terraform Data Source徹底理解:既存リソースの参照で壊さず足す
Terraform Associate向けに、Data Sourceを用いた既存リソース参照の基本、選択基準、評価順序、...