Terraform/OpenTofu IaC(テラフォームオープントフ)
Infrastructure as Code。Terraform 1.12(HashiCorp・BSL License)・OpenTofu 1.10(OSS fork・Linux Foundation)・HCL言語・Provider(AWS/GCP/Azure/Cloudflare)・Atlantis(PR-based apply)・Terragrunt・Spacelift・Env0・Pulumi(Typescript/Python/Go)・Crossplane(Kubernetes CRD)・CDK for Terraform(cdktf)対応、2026年OpenTofu移行+Pulumi台頭。
概要
Terraform/OpenTofu IaC は、インフラ構成をコードで管理する手法である。HashiCorp が開発した Terraform 1.12(BSL ライセンス)と、Linux Foundation が主導する OSS フォーク OpenTofu 1.10 が代表的である。両者は HCL(HashiCorp Configuration Language)を採用し、AWS、GCP、Azure、Cloudflare など多様な Provider を通じてクラウドリソースを宣言的に作成・更新できる。2026年には OpenTofu への移行が進み、Pulumi の TypeScript/Go/Python での IaC も台頭している。Crossplane は Kubernetes CRD を利用し、クラウドリソースを Kubernetes ネイティブに管理する点で差別化される。
主な特徴・仕組み
- 宣言型構成:リソースの最終状態をコードで記述し、実行時に差分を自動で検知。
- Provider エコシステム:AWS EC2 m5.large、GCP Compute Engine e2-standard-4、Azure VM D4s_v3、Cloudflare Workers KV など、主要クラウドが公式にサポート。
- 状態管理:Terraform Cloud/Enterprise、OpenTofu Remote State、S3 バケットなどで状態を安全に保持。
- モジュール化:再利用可能なモジュールを作成し、チーム間で共有。
- CI/CD 連携:Atlantis(PR ベース apply)、Terragrunt、Spacelift、Env0 などで自動化。
- CDK for Terraform (cdktf):TypeScript で HCL を生成し、開発者の慣れた言語で IaC を記述。
- Crossplane:Kubernetes CRD を利用し、クラウドリソースをクラスタ内で管理。
- Pulumi:プログラミング言語で IaC を記述し、型安全性と IDE サポートを提供。
- 2025年に登場した Terraform 1.12 の新機能で、モジュールのバージョン解決が高速化。
- 2026年の OpenTofu 1.10 では、セキュリティスキャン機能が標準装備。
スペック/製品比較表
| Terraform 1.12 | OpenTofu 1.10 | Pulumi | Crossplane | CDK for Terraform | |
|---|---|---|---|---|---|
| 言語 | HCL | HCL | TypeScript/Go/Python | YAML/CRD | TypeScript |
| ライセンス | BSL | OSS | OSS | OSS | OSS |
| 主な Provider | AWS/GCP/Azure/Cloudflare | 同上 | AWS/GCP/Azure/Cloudflare | 同上 | 同上 |
| 状態管理 | S3/Remote | S3/Remote | S3/Remote | CRD | S3/Remote |
| CI/CD 連携 | Atlantis, Spacelift | Atlantis, Spacelift | Pulumi Automation API | Crossplane CLI | CDK CLI |
| 2025年更新 | 速度向上 | なし | なし | なし | なし |
| 2026年更新 | なし | セキュリティスキャン | なし | なし | なし |
具体例・対応製品
- AWS EC2 m5.large:2 vCPU、8GB RAM、EBS 最適化。
- GCP Compute Engine e2-standard-4:4 vCPU、16GB RAM、SSD ストレージ。
- Azure VM D4s_v3:4 vCPU、16GB RAM、Premium SSD。
- Cloudflare Workers KV:1000GB ストレージ、1Gbps 帯域。
- HashiCorp Terraform 1.12:CLI 1.12.0、プラグイン 1.12.0。
- OpenTofu 1.10:CLI 1.10.0、プラグイン 1.10.0。
- Pulumi 3.0:TypeScript 4.8、Go 1.18、Python 3.10。
- Crossplane 1.5:Kubernetes 1.24 互換。
- CDK for Terraform 0.20:TypeScript 4.8、Node.js 16。
自作PCでの選び方・注意点
- CPU:IaC の実行は CPU 集約的。Intel Core i7 12700K(12コア、3.6GHz)や AMD Ryzen 9 7950X(16コア、4.5GHz)を推奨。
- メモリ:Terraform の状態管理やモジュール解析に 32GB RAM が最低。
- ストレージ:NVMe SSD 1TB(PCIe 4.0 x4、速度 3500MB/s)で高速な状態ファイル読み書き。
- ネットワーク:10Gbps LAN ポートでクラウド API へのレイテンシ低減。
- 電源:650W 80+ Gold で安定供給。
- 冷却:水冷クーラー 240mm で 120°C まで抑制。
- OS:Ubuntu 24.04 LTS で公式 CLI が最適化。
- バックアップ:S3 バケットに状態ファイルを自動同期。
- セキュリティ:AWS IAM ポリシーは最小権限で設定。
- 監視:Prometheus + Grafana で Terraform 実行ログを可視化。
関連用語との違い
- Ansible:構成管理に対し、IaC はリソースのプロビジョニング。
- Chef/Puppet:宣言型だが、主にサーバー設定。IaC はクラウドリソース全般。
- Kubernetes:コンテナオーケストレーション。Crossplane は Kubernetes CRD でクラウドリソースを管理。
- Pulumi:IaC だが、プログラミング言語で記述。Terraform は HCL で宣言型。
- CDK:AWS CDK は CloudFormation を生成。Terraform はクラウドプロバイダを横断。
よくある質問
Q1. Terraform と OpenTofu の違いは何ですか?
A1. Terraform は BSL ライセンスで商用利用に制限がある一方、OpenTofu は OSS フォークで商用利用が自由。機能はほぼ同等で、OpenTofu はセキュリティスキャンが標準。
Q2. Pulumi は Terraform より優れていますか?
A2. Pulumi は TypeScript/Go/Python で書けるため、既存の開発者にとって学習コストが低い。Terraform は HCL で書くため、IaC 専門家に適している。
Q3. Crossplane を使うメリットは?
A3. Kubernetes ネイティブにクラウドリソースを管理でき、同一クラスタ内でアプリとインフラを統合できる。
まとめ
Terraform/OpenTofu IaC は、クラウドリソースをコードで管理し、再現性と自動化を実現する。2025年の Terraform 1.12 で高速化が進み、2026年の OpenTofu 1.10 でセキュリティ機能が強化される。Pulumi や Crossplane との併用で、言語選択や Kubernetes 連携が可能になる。自作PC で IaC を実行する際は、CPU、メモリ、ストレージを十分に確保し、状態管理とセキュリティを徹底することで、安定したインフラ運用が実現できる。