Terraform Cloud の無料枠は、リモートステート管理とVCS連携を学ぶのに十分な機能を備えています。
Associate/Pro試験で狙われやすい論点(バックエンド、ワークスペース、実行フロー、権限の境界)に寄せて使い方を整理します。
Terraform Cloud(TFC)の無料枠は、個人〜小規模学習での利用を想定したプランです。ローカルのstateファイル管理から脱却し、クラウド上の安全なリモートステート、VCS連携、キューイングされた実行(同時実行数は通常1)といった基本を体験できます。
Associate試験では、Terraform OSSとTerraform Cloudの違い(バックエンド、ワークスペースの概念、実行トリガー)が頻出です。Proレベルでは、運用フローの設計・権限・ガードレール(上位プランの機能含む)の理解が要求されます。無料枠はガバナンス機能に制限があるものの、基礎の7〜8割は十分にカバーできます。
| 項目 | Free(学習向け) | Standard/Plus(概要) |
|---|---|---|
| ステート管理 | Terraform Cloudでのリモート管理(ロック/履歴あり) | 同等。監査やSLAは上位で強化されることがある |
| 実行並列(Concurrency) | 基本1(キューで順次実行) | 複数(組織/ワークスペース単位で拡張) |
| VCS連携(PRプラン含む) | 利用可(一般的な学習シナリオをカバー) | 利用可。大規模・複雑なワークフローに適合 |
| ガバナンス(Sentinel等) | 対象外 | 対象(ポリシー適用・例外管理等) |
| サポート/SLA | 限定的/なし | 契約に応じて提供 |
試験観点で最初に確認しておきたい基本コマンド
terraform -version
# Terraform Cloud へのログイン(APIトークンを使用)
terraform login
# ローカルのworkspaceとTFC Workspaceは別概念(Associate頻出)
terraform workspace list無料枠で押さえるべきは「学習に必要な最小公倍数」を満たすかどうかです。VCSプッシュで自動Plan、Terraform Cloudでのstate保管、変数・シークレットの分離、そして実行ログ/差分の可視化までを一通り体験できます。
一方で、チーム規模が大きい、同時に複数の長時間ジョブを回す、組織的なガバナンスやSAML/SSO/監査証跡を求める場合は上位プランの検討が必要になります。学習では、制限を意図的に踏むシナリオ(同時実行1によるキュー待ちなど)も理解を深めます。
cloudブロックでTFCをバックエンドに設定(推奨)
terraform {
cloud {
organization = "your-org"
workspaces {
name = "learn-free-tier"
}
}
required_version = ">= 1.3"
required_providers {
random = {
source = "hashicorp/random"
version = ">= 3.5"
}
}
}
provider "random" {}
resource "random_pet" "example" {
length = 2
}最小構成は、組織(Organization)とワークスペース(Workspace)を1つ用意し、VCS連携またはCLI駆動のどちらかでRunを実行します。ハンズオンでは、最初にCLIでcloudブロック接続→後からVCS連携を追加する流れが分かりやすいです。
Workspace変数には、環境変数(Env Var)とTerraform変数(Terraform Var)があります。資格対策では、シークレットはマスクされ、出力やログに直接表示されない点、Run間でstateはTFCがロック管理する点を押さえます。
学習時の基本フロー(無料枠)
Developer --push/PR--> Git VCS ---webhook---> Terraform Cloud Workspace
\ |
\-- terraform plan/apply (CLI) -----|----> Plan/Apply Runner (1 at a time)
\
--> Remote State (lock, history)
|
--> Target Providers (e.g., AWS/Azure/GCP or random)
初期化〜初回適用の最小コマンド
# 1) Terraform Cloudにログイン(初回のみ)
terraform login
# 2) 初期化(cloudブロックでTFC接続)
terraform init
# 3) 計画と適用(無料枠では実行は順次処理)
terraform plan
terraform apply -auto-approveベンダークレデンシャル不要で安全に試せるよう、まずはrandomプロバイダで雛形を作り、次にVCS連携を追加します。これでPRごとに自動Planが走る典型的なチーム運用に近づけられます。
Associateではバックエンドとワークスペースの概念整理、Proではブランチ戦略や実行順序設計、変数スコープの設計が狙われます。
main.tf(VCS駆動にそのまま使える最小例)
terraform {
cloud {
organization = "your-org"
workspaces { name = "learn-free-tier" }
}
}
provider "random" {}
variable "prefix" {
type = string
default = "demo"
description = "資源名の接頭辞"
}
resource "random_pet" "demo" {
length = 2
prefix = var.prefix
}
output "pet_name" {
value = random_pet.demo.id
}無料枠では実行の同時並列が基本1のため、長時間ジョブがあると待ち行列が発生します。学習環境では、ワークスペースを用途別に分け、長時間Applyは別時間帯に回すなどで回避できます。
シークレットはWorkspaceの環境変数(Sensitive)として保存し、tfvarsやVCSリポジトリに置かないのが基本です。実運用では上位プランのガバナンスを使う前提でも、無料枠での安全な変数・権限設計を体に覚えさせると良いです。
変数とシークレットの使い分け(tfvarsはコミットしない)
# 例:VCSには *.auto.tfvars.example を置く
# real.auto.tfvars はローカルかTFCのVariablesで管理
# .gitignore例
*.auto.tfvars
*.tfvars
# TFC側では、Sensitive環境変数に
# AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY などを設定(出力に表示されない)Terraform CLIのローカルworkspaceとTerraform CloudのWorkspaceは別物です。前者は1つのstateに対して複数の名前付きスナップショットを作る概念、後者は実行・変数・ステートの管理単位です。Associateで頻出の混同ミスに注意してください。
バックエンドはcloudブロック(推奨)またはremoteバックエンドでTFCを利用できます。新規学習ではcloudブロックを優先すると、将来的な記述の互換性に馴染めます。
ローカルworkspaceの確認(混同注意)
# ローカルのworkspace(バックエンドがcloudでもCLIの概念として存在)
terraform workspace new dev
terraform workspace list
terraform workspace select default
# TFCのWorkspaceはUI/APIで管理(CLIのworkspaceとは別)Associate / Pro
問題 1
学習用にTerraform Cloud無料枠を使い、PRごとに自動でplanを実行し、stateは安全に共有したい。最小の設定として最も適切なのはどれか?
正解: A
無料枠での学習目的(PRごとの自動planと安全な共有state)には、cloudブロックでTFC Workspaceに接続し、VCS連携で自動トリガーを有効にするのが最小で確実。Bはstate共有の安全性が不足。CはTFCを使わず要件から外れる。Dは手動運用で再現性・安全性に欠ける。
Terraform Cloudの無料枠は商用でも使えますか?
学習・個人用途での利用に向いていますが、組織的なガバナンス、SLA、並列実行やサポートが必要な商用要件では上位プランの検討が一般的です。利用条件や機能差は公式ドキュメントで最新情報を確認してください。
cloudブロックとremoteバックエンドは何が違いますか?
どちらもTerraform Cloudを利用する方法です。cloudブロックはTerraform 1.x系で推奨される新しい指定方法で、構文が簡潔です。既存のremoteバックエンドも動作しますが、新規学習ではcloudブロックを優先すると理解が進みます。
無料枠で実行が詰まった場合はどうすればよいですか?
実行がキューに入るのは同時並列が基本1であるためです。ワークスペースを用途別に分ける、適用の粒度を小さくする、長時間ジョブをオフピークに回す、PRではPlanのみで早期に差分を確認する、といった運用で緩和できます。上位プランで並列数を拡張する選択肢もあります。
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を用いた既存リソース参照の基本、選択基準、評価順序、...