windowsで opentofu vs terraform 環境構築方法

Windows(Scoop、Choco、手動バイナリ)で OpenTofuTerraform を共存、あるいは個別に環境構築する方法を解説します。

基本的にはどちらもGo言語で書かれた単一のバイナリ(.exe)であるため、構築手順はほぼ同じです。ただ、コマンド名(tofuterraform)が異なるため、両方を同じPCに入れて同時に使い分けることも簡単です。

1. パッケージマネージャーを使う方法(推奨)

Windowsのパッケージマネージャー(Scoop または Chocolatey)を使うのが最も手軽で、アップデートも簡単です。

パターンA:Scoop を使う場合

開発者に最も人気のある方法です。

  • OpenTofu のインストール:PowerShellscoop bucket add opentofu scoop install opentofu
  • Terraform のインストール:PowerShellscoop install terraform

パターンB:Chocolatey を使う場合

管理者権限のPowerShellで実行します。

  • OpenTofu のインストール:PowerShellchoco install opentofu
  • Terraform のインストール:PowerShellchoco install terraform

2. 手動でバイナリを配置する方法(インストーラーなし)

社内セキュリティ等の関係でパッケージマネージャーが使えない場合は、公式から .zip をダウンロードして配置します。

ステップ 1: ダウンロード

  1. OpenTofu: 公式GitHub Releases または公式サイトから tofu_X.X.X_windows_amd64.zip をダウンロードします。
  2. Terraform: HashiCorp公式サイト から Windows版の .zip をダウンロードします。

ステップ 2: 配置と環境変数 (Path) の設定

  1. 任意の場所にフォルダを作成します(例: C:\tools\tf-tofu\)。
  2. ダウンロードした zip から tofu.exeterraform.exe をそのフォルダに解凍します。
  3. Windowsの環境変数 PathC:\tools\tf-tofu\ を追加します。
    • PowerShellで即時反映・追加する場合(管理者権限):PowerShell[Environment]::SetEnvironmentVariable("Path", $Env:Path + ";C:\tools\tf-tofu", "User")

3. 動作確認

ターミナル(PowerShell や コマンドプロンプト)を再起動し、以下のコマンドが通れば成功です。

PowerShell

# OpenTofuの確認
tofu --version

# Terraformの確認
terraform --version

4. 複数バージョンを切り替えたい場合(応用)

プロジェクトによって「Terraformの1.5.x系を使いたい」「OpenTofuの1.8系を使いたい」といったバージョンの切り替え(マネジメント)が必要な場合は、以下のツールを導入すると便利です。

  • Tenenv (旧 tfenv / tofuenv の統合版)
    • OpenTofu、Terraform、Terragrunt のすべてのバージョンを1つで管理できる最もおすすめのツールです。
    • Scoopでインストール可能: scoop install tenenv
    • 使い方例:PowerShelltenenv tofu install 1.8.1 tenenv tofu use 1.8.1 tenenv tf install 1.5.7 tenenv tf use 1.5.7

💡 構築後の注意点(エイリアスについて)

OpenTofuはTerraformと完全互換を目指してフォークされたため、既存のTerraformコード(.tf ファイル)をそのまま tofu init / tofu apply できます。

もし「使い慣れた terraform コマンド(または tf)で OpenTofu を動かしたい」という場合は、PowerShellのプロファイル($PROFILE)にエイリアスを設定しておくと快適になります。

PowerShell

# PowerShellでOpenTofuを「tf」で呼び出す例
Set-Alias -Name tf -Value tofu

OpenTofuとTerraform(v1.6以降)はライセンスの変更(BSL化)を機に機能の分岐(フォーク)が始まっています。 AWS環境の要件に合わせて選ぶのが最適です。

選択肢メリットデメリットこんな場合におすすめ
OpenTofu
(オープンソース)
* 完全にオープンソース(Linux Foundation管理)
* removed ブロックの拡張など、OSSならではの独自進化が早い
* AWS Providerの互換性は現状ほぼ100%
* 企業としての商用サポートがない
* 将来的にHashiCorp独自の新機能(最新のHCL構文など)が使えなくなる可能性がある
* ベンダーロックインを避けたい
* 完全なOSSとしてインフラを管理したい
Terraform
(HashiCorp)
* 業界標準としての圧倒的な実績と情報量
* AWSの新機能への追従(AWS Provider)が最速かつ確実
* エコシステム(Terraform Cloud等)の連携が強力
* ビジネス利用でのライセンス条項に注意が必要(競合サービスを提供する商業利用などの制限)* インフラの安定性と実績を最優先したい
* 将来的にTerraform Cloud等のマネージドサービスを使いたい

コメント