Terraform
HashiCorpが開発する宣言的IaC(Infrastructure as Code)ツール。HCL(HashiCorp Configuration Language、JSONでの記述も可)でインフラのあるべき状態を記述し、実際のクラウド上のリソースをその状態に同期させる。
アーキテクチャ
- Provider: クラウド・SaaS・各種APIとやりとりするプラグイン。個々のリソースタイプ・データソースはproviderが実装する。設定内で使用するproviderを宣言し、Terraformがそれをインストールして利用する。各属性のスキーマ定義にはRequired/Optional/Computedといったフラグがある。
- State: デプロイ済みリソースの実際の状態を追跡するstateファイル。
backendブロックで保存先(ローカル・S3・Terraform Cloudなど)を指定する。planはこのstateと設定の差分を計算し、applyで実インフラへ反映する。
ライセンス変遷
2023年8月にMPL 2.0からBUSL 1.1(Business Source License)へ変更され、これを機にOpenTofu(Linux Foundation傘下)としてフォークされた。経緯の詳細はBSL・ソフトウェアライセンスを参照。
HashiCorp製品群の中での位置づけ
HashiCorpのIaCツール。同社の他製品(Consul・Vault・Nomad)とは独立して単体で使われることが多い。