本文へスキップ

OpenTofuとは?

OpenTofuは、クラウドとオンプレミスの両方のリソースを、バージョン管理、再利用、共有可能な人間が読み取れる設定ファイルで定義できるインフラストラクチャ・コードツールです。その後、一貫性のあるワークフローを使用して、インフラストラクチャのライフサイクル全体を通して、すべてのインフラストラクチャのプロビジョニングと管理を行うことができます。OpenTofuは、コンピューティング、ストレージ、ネットワークリソースなどの低レベルコンポーネントと、DNSエントリやSaaS機能などの高レベルコンポーネントの両方を管理できます。

OpenTofuの動作方法

OpenTofuは、アプリケーションプログラミングインターフェース(API)を通じて、クラウドプラットフォームやその他のサービス上のリソースの作成と管理を行います。プロバイダーにより、OpenTofuはアクセス可能なAPIを持つ事実上あらゆるプラットフォームやサービスと連携できます。

OpenTofu creates and manages cloud platforms and services through their APIs

OpenTofuコミュニティは既に、さまざまな種類の資源やサービスを管理するための**数千ものプロバイダー**を作成しています。公開OpenTofuレジストリには、Amazon Web Services(AWS)、Azure、Google Cloud Platform(GCP)、Kubernetes、Helm、GitHub、Splunk、DataDogなど、多くの公開プロバイダーがあります。

OpenTofuの中核となるワークフローは、3つの段階で構成されています。

  • **記述:**複数のクラウドプロバイダーやサービスにまたがるリソースを定義します。たとえば、セキュリティグループとロードバランサーを備えた仮想プライベートクラウド(VPC)ネットワーク内の仮想マシンにアプリケーションをデプロイする設定を作成できます。
  • **計画:**OpenTofuは、既存のインフラストラクチャと設定に基づいて、作成、更新、または破棄するインフラストラクチャを記述した実行計画を作成します。
  • **適用:**承認されると、OpenTofuはリソース間の依存関係を考慮して、正しい順序で提案された操作を実行します。たとえば、VPCのプロパティを更新し、そのVPC内の仮想マシンの数を変更する場合、OpenTofuは仮想マシンをスケーリングする前にVPCを再作成します。

The OpenTofu workflow has three steps: Write, Plan, and Apply

OpenTofuを選ぶ理由

あらゆるインフラストラクチャの管理

公開OpenTofuレジストリで、既に使用している多くのプラットフォームやサービスのプロバイダーを見つけることができます。Terraform Plugin SDKを使用して独自のプロバイダーを作成することもできます。OpenTofuはインフラストラクチャに対する不変のアプローチを採用しており、サービスやインフラストラクチャのアップグレードや変更の複雑さを軽減します。

インフラストラクチャの追跡

OpenTofuは、インフラストラクチャを変更する前に計画を生成し、承認を求めます。また、環境の真実の源として機能するステートファイルに実際のインフラストラクチャを追跡します。OpenTofuはステートファイルを使用して、設定と一致するようにインフラストラクチャに加える変更を決定します。

変更の自動化

OpenTofuの設定ファイルは宣言型であるため、インフラストラクチャの最終状態を記述します。OpenTofuが基礎となるロジックを処理するため、リソースを作成するためのステップバイステップの手順を記述する必要はありません。OpenTofuはリソースグラフを作成してリソースの依存関係を判断し、依存しないリソースを並行して作成または変更します。これにより、OpenTofuは効率的にリソースをプロビジョニングできます。

設定の標準化

OpenTofuは、構成可能なインフラストラクチャのコレクションを定義するモジュールと呼ばれる再利用可能な構成コンポーネントをサポートしており、時間を節約し、ベストプラクティスを促進します。OpenTofuレジストリから公開されているモジュールを使用したり、独自に作成したりできます。

共同作業

設定はファイルに記述されるため、バージョン管理システム(VCS)にコミットし、クラウドバックエンドを使用してチーム間でOpenTofuのワークフローを効率的に管理できます。クラウドバックエンドは、一貫性があり信頼性の高い環境でOpenTofuを実行し、共有されたステートと秘密データへの安全なアクセス、ロールベースのアクセス制御、モジュールとプロバイダーの両方を共有するためのプライベートレジストリなどを提供します。

コミュニティ

コミュニティからのご質問、ご提案、ご貢献をお待ちしております。