Terraform Cloud remote実行 vs local実行 — 実行モードを選ぶ

1. 概要

  • Terraform Cloudのremote実行モードとlocal実行モードの違い
  • どちらを選ぶべきかの判断基準
  • remote実行モードの特徴と制約
  • local実行モードでState管理だけTerraform Cloudを使うパターン

Terraform Cloudには「実行環境をどこにするか」という選択があります。Remote実行(Terraform Cloud側でplan/applyを実行)とLocal実行(自分のマシンやCI/CDで実行し、StateだけTerraform Cloudに保存)の2択です。


2. Remote実行モード(デフォルト)

Developer / CI/CD
  │ git push / API trigger
  ↓
Terraform Cloud Runner
  │ terraform plan
  │ terraform apply
  ↓
AWS / GCP 等

特徴:

  • plan/applyはTerraform Cloudのインフラ(Runner)で実行される
  • 実行ログ・StateはすべてTerraform Cloud上で管理される
  • VCS連携で自動トリガー可能
# remote実行モードの設定
terraform {
  required_version = ">= 1.9"
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
  }

  cloud {
    organization = "my-org"
    workspaces {
      name = "production"
    }
  }
}

provider "aws" {
  region = "ap-northeast-1"
}

variable "environment" {
  description = "環境名"
  type        = string
  default     = "dev"
}

3. Local実行モード

Developer / CI/CD(ローカル or セルフホストRunner)
  │ terraform plan / apply(ローカルで実行)
  │ State の読み書きだけTerraform Cloudへ
  ↓
Terraform Cloud(State管理のみ)

特徴:

  • plan/applyはローカルマシンやCI/CDサーバーで実行される
  • StateファイルだけTerraform Cloudに保存される(チーム間でのState共有・ロックが可能)
  • Terraform CloudのRunnerのネットワーク制限を受けない(VPC内リソースへのアクセスが容易)

Workspace → Settings → Execution Mode → Local で設定します。


4. Agent実行モード

自社ネットワーク内のRunnerでplan/applyを実行するモードです。詳細はTerraform CloudのAgent設定ガイドを参照してください。

Terraform Cloud
  │ RunキューをAgentに転送
  ↓
Self-hosted Agent(オンプレ / VPC内EC2等)
  │ terraform plan / apply
  ↓
オンプレ / VPC内リソース

5. 実行モード比較

比較軸RemoteLocalAgent
実行環境TF Cloud Runnerローカル / CIセルフホストAgent
VPC内リソースへのアクセス制限あり容易(ローカルと同じ)可能(Agentがネット内)
State管理TF CloudTF CloudTF Cloud
プランFree〜Free〜Business
監査ログ✅(実行ログ含む)❌(ローカル実行のため)

6. どちらを選ぶべきか

Remote実行を選ぶケース:

  • Terraform CloudのRunnerがAWSリソースに直接アクセスできる(パブリックAPIのみ)
  • Terraform CloudのUI上で実行ログを一元管理したい
  • VCS連携で自動plan/applyをしたい

Local実行を選ぶケース:

  • VPC内のプライベートAPIやオンプレリソースにアクセスする必要がある
  • GitHub Actionsなど既存のCI/CDと統合しつつ、StateだけTerraform Cloudを使いたい
  • Terraform Cloudのネットワーク制限を回避したい

7. 関連記事


8. まとめ

  • Remote実行はplan/applyがTerraform Cloudで動く。VCS連携・監査ログが充実
  • Local実行はplan/applyをローカルやCI/CDで実行し、StateだけTerraform Cloudに保存
  • VPC内リソースにアクセスしたい場合はLocal実行かAgent実行を選ぶ
  • 新規プロジェクトはRemote実行から始め、制限に当たったらLocal/Agentへ切り替えるのが現実的

対象バージョン: Terraform Cloud (2024) 公式ドキュメント: https://developer.hashicorp.com/terraform/cloud-docs/workspaces/settings#execution-mode