バージョンアップ情報
OpenTofu情報
OpenTofuとは
OpenTofuは可読性の高い設定ファイルによりインフラストラクチャを安全かつ効率的に構築、変更、バージョン管理することを目的としたオープンソースのIaC (Infrastructure as Code) ツールで、Go言語で記述されています。
OpenTofuはHashiCorp社が開発したTerraformがもとになっています。
2023年8月にTerraform のライセンスがMPL2.0 (Mozilla Public License v2.0) からBSL1.1 (Business Source License v1.1) に変更されたことを受け、Terraform バージョン1.5 よりフォークされました。
当初はOpenTFという名前でしたが、商標権の問題からOpenTofuに改称され、そのマスコットは小さな豆腐キューブとなっています。
2023年10月にはOpenTofuバージョン1.6.0-alpha1が公開され、同年9月にはLinux Foundationプロジェクトとなりました。
バージョン1.5までのTerraformと互換性があり、将来のリリースにおいてもTerraformと同等の機能を実装する方針であることを表明しています。
主な特徴
OpenTofuはAPIを介してクラウドプラットフォームやその他のサービス上のリソースを作成し、管理することができます。
それらのプラットフォームやサービスに対応するためにプロバイダと呼ばれるプラグインが使用されます。
OpenTofuコミュニティではAmazon Web Services(AWS)、Azure、Google Cloud Platform(GCP)、Kubernetes、Helm、GitHub、Splunk、Datadog 向けを始めとする数千ものプロバイダがPublic OpenTofu Registry (https://search.opentofu.org/)で公開されており、多くの異なるプラットフォームやサービスと連携することが可能です。
インフラストラクチャの管理
OpenTofu Registryから必要なプロバイダを見つけることで多くのインフラストラクチャに対応でき、またTerraform Plugin SDKを使って自作することもできます。
OpenTofuはImmutable Infrastructureのアプローチを採用しており、インフラストラクチャのアップグレードや変更における複雑さを軽減します。
インフラストラクチャの変更管理
OpenTofuはインフラストラクチャの変更にあたり計画を作成し、承認を求めます。
設定情報に基づいてインフラを構築し、その情報を保存するステートファイルより変更履歴を把握できます。
構成変更の自動化
OpenTofuの設定ファイルは宣言的でインフラストラクチャの最終状態のみ記述すればよいので、構築手順を記述する必要がありません。
OpenTofuはリソースの依存関係を分析して独立性の高いリソースの並列構築を可能にして、効率的なプロビジョニングを実現します。
設定情報の標準化
OpenTofuは設定情報を再利用可能な形でコンポーネント化したモジュールと呼ばれるものを提供します。
OpenTofu Registryで公開されたモジュールは広く入手可能である一方、モジュールを自作することも可能です。
コラボレーション
設定ファイルをバージョン管理システムに登録することでチーム間で効率的にワークフローを運用できます。
また、バックエンドにクラウドを使用してアクセス制御を行うことでセキュアなアクセスを実現できます。
OpenTofuのコアワークフローは以下の3つのステージで構成されます。
Write
設定ファイル上にインフラストラクチャを定義します。
Plan
現行のシステム状態と設定ファイルにもとづいてOpenTofuがリソースの作成、更新、破棄を織り込んだ実行計画を作成します。
Apply
承認が行われるとOpenTofuは設定ファイル上の定義を実際のインフラストラクチャに反映します。
その際、OpenTofuはリソースの依存関係を考慮し、適切な手順で構築を進めます。
メリット・デメリット
メリット・必要性
- オープンソースのライセンス MPL2.0 であるため、無料ですぐに利用可能です
- Terraform 1.5 のソースを基にしており、高い互換性があります
デメリット・注意点・課題
- 今後開発が進むことで Terraform との差異が大きくなり、互換性が低下する可能性があります
- 発足後それほど経っていない若いプロジェクトであるため、今後の動向には注意が必要です
類似プロダクト
OpenTofuの類似プロダクトにはTerraform、Pulumi、Ansible などがあります。
動作環境
OpenTofuの公式サイトにはAlpine Linux, FreeBSD, Debian, Ubuntu, RHEL, openSUSE, AlmaLinux, macOS, Windowsなどのさまざまなオペレーティングシステム向けのインストール方法(https://opentofu.org/docs/intro/install/)が公開されています。
オープンソース年間サポートサービス
OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。