Terraform を使用して Config Sync リソースをプロビジョニングする

Hashicorp Terraform は、クラウド インフラストラクチャのプロビジョニングと管理に使用できる Infrastructure as Code(IaC)ツールです。Terraform には、クラウド プロバイダや他の API とやり取りできるプロバイダというプラグインが用意されています。 Google Cloud用の Terraform プロバイダを使用して、Config Sync などの Google Cloud リソースをプロビジョニングして管理できます。

このページでは、Terraform と Config Sync の使用について説明します。Terraform の仕組みの概要と、 Google Cloudで Terraform の使用を開始するためのリソースも紹介します。また、Config Sync の Terraform リファレンス ドキュメント、コード例、Terraform を使用して Config Sync リソースをプロビジョニングするガイドへのリンクも用意されています。

Google Cloud用 Terraform の使用を開始する手順については、Terraform をインストールして構成するまたは Google Cloud 用 Terraform クイックスタートをご覧ください。

Terraform の仕組み

Terraform には宣言型で構成指向の構文があり、これを使用して、 Google Cloud プロジェクトにプロビジョニングするインフラストラクチャを記述できます。1 つまたは複数の Terraform 構成ファイルで構成を作成し、Terraform CLI を使用して、この構成を Config Sync リソースに適用できます。

以降のステップでは、Terraform の仕組みについて説明します。

  1. プロビジョニングするインフラストラクチャを Terraform 構成ファイルに記述します。インフラストラクチャのプロビジョニング方法を記述するコードは必要ありません。Terraform がインフラストラクチャをプロビジョニングします。
  2. terraform plan コマンドを実行します。これにより、構成が評価され、実行プランが生成されます。プランを確認し、必要に応じて変更します。
  3. 次に、terraform apply コマンドを実行します。これにより、次のアクションが実行されます。

    1. バックグラウンドで、対応する Config Sync API を呼び出し、実行プランに基づいてインフラストラクチャをプロビジョニングします。
    2. Terraform 状態ファイルを作成します。これは、構成ファイル内のリソースと実際のインフラストラクチャ内のリソースとのマッピングを行う JSON ファイルです。Terraform は、このファイルを使用してインフラストラクチャの最新状態を記録し、リソースを作成、更新、破棄するタイミングを決定します。
    3. terraform apply を実行すると、Terraform は状態ファイルのマッピングを使用して、既存のインフラストラクチャをコードと比較し、必要に応じて更新を行います。

      • 構成ファイルで定義されたリソース オブジェクトが状態ファイルに存在しない場合、Terraform はリソース オブジェクトを作成します。
      • リソース オブジェクトが状態ファイルに存在し、構成ファイルと構成が異なる場合、Terraform は構成ファイルと一致するようにリソースを更新します。
      • 状態ファイル内のリソース オブジェクトが構成ファイルと一致する場合、Terraform はリソースを変更しません。

Config Sync の Terraform リソース

リソースは、Terraform 言語の基本要素です。各リソース ブロックは、仮想ネットワークやコンピューティング インスタンスなど、1 つ以上のインフラストラクチャ オブジェクトを記述します。

次の表に、Config Sync で使用可能な Terraform リソースを示します。

サービス Terraform リソース
GKEHub

Config Sync の Terraform ベースのガイド

次の表に、Config Sync の Terraform ベースのハウツー ガイドとチュートリアルを示します。

ガイド 詳細
Config Sync をインストールする このガイドでは、Terraform を使用して Config Sync を構成する手順について説明します。
フリート全体でチームのリソースを管理する このガイドでは、Config Sync と Terraform を使用して、クラスタ フリートのチームスコープ リソースを動的に作成する方法について説明します。

次のステップ