【オープントーフ】

OpenTofu とは?

最終更新:
💡 インフラの構成をコードにし、変更計画を見て適用する

インフラの望ましい構成をコードで定義し、変更計画を確認して適用するIaCツール。Terraformから派生し、MPL-2.0で開発されています。互換性の確認、移行手順、状態の保護を解説します。

📌 このページのポイント
OpenTofu:計画を確認して適用1 構成を書く望ましい状態2 planを見る追加・変更・削除3 applyする確認後に適用プロバイダ経由でAPIを操作クラウド・オンプレミスを管理移行:バックアップとplanの比較からTerraformと無条件に互換ではない
Terraformから派生したMPL-2.0のIaCツールで、状態ファイルも管理に使います。計画を点検し、移行ではバージョン・プロバイダ・バックエンドを確認します。
ひよこ ひよこ
OpenTofuはTerraformの別名?
ペンギン先生 ペンギン先生
別のプロジェクトだよ。TerraformのOSS版をもとに派生したIaCツールで、クラウドやオンプレミスの構成をコードで定義する。プロバイダを通してサービスのAPIを呼び、リソースを管理するんだ。
ひよこ ひよこ
なぜ派生したの?
ペンギン先生 ペンギン先生
2023年のTerraformのMPLからBUSLへのライセンス変更がきっかけだよ。OpenTofuはMPL-2.0で開発され、Linux Foundationのもとにある。元のプロジェクトとは独立して機能が追加されているので、名前だけで同一のツールとは判断しないようにしよう。
ひよこ ひよこ
どういう順で使う?
ペンギン先生 ペンギン先生
構成ファイルを書く、tofu planで追加・変更・削除の計画を見る、確認してtofu applyで適用する、という流れだよ。状態ファイルも使う。計画に削除や作り直しがあれば、意図した変更かを確かめることが大切だね。
ひよこ ひよこ
Terraformの構成はそのまま動く?
ペンギン先生 ペンギン先生
多くの構成は使えるよう互換性を目指しているけれど、すべての将来バージョンや独自機能まで同一とは限らない。使うプロバイダ、バックエンド、状態、関連する構成を確認しよう。OpenTofuは別のレジストリも使っているよ。
ひよこ ひよこ
移行前に何をする?
ペンギン先生 ペンギン先生
状態と構成のバックアップを取り、移行ガイドに沿って初期化し、planの差分を比較する。予期しない変更があれば適用せず調べよう。最初は影響の小さい変更で確認する手順が案内されているんだ。
もっと詳しく知りたい人へ

状態とplanの暗号化に対応している?

対応しています。ローカルやバックエンドに保存する状態・planを暗号化できますが、暗号化の設定と鍵の管理が必要です。鍵がなければ復元できず、ファイル自体の破損や古い状態への差し戻し攻撃を暗号化だけで防ぐわけでもありません。バックアップと復旧の確認も必要です。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「OpenTofu」って出てきたら「構成をコードで管理し、変更計画を確認してインフラへ適用するOSSのIaCツール」と思えばだいたいOK!
📖 おまけ:英語の意味
「OpenTofu」 = オープンソースのIaCプロジェクト名
💬 Terraformから派生したプロジェクトの名称です。公式Manifestoは、Linux FoundationのもとでOpenTofuを維持する方針を説明しています。

参考資料

← 用語集にもどる