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

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

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

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

Terraform の仕組み

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

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

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

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

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

Cloud Storage の Terraform リソース

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

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

サービス Terraform リソース データソース

Cloud Storage

Terraform サービス: Cloud Storage

Storage Intelligence

Terraform サービス: Cloud Storage Control

Storage Intelligence の、ストレージのバッチ オペレーション機能

Terraform サービス: Cloud Storage Batch Operations

-

Storage Intelligence の Storage Insights 機能

Terraform サービス: Cloud Storage Insights

Cloud Storage の Terraform ベースのガイド

次の表に、Cloud Storage の Terraform ベースの入門ガイドとチュートリアルを示します。

ガイド 詳細
クイックスタート: Terraform を使用してバケットを作成し、オブジェクトをアップロードする このクイックスタートでは、ストレージ バケットをプロビジョニングし、サンプル オブジェクトをそのバケットにアップロードする Terraform 構成ファイルを作成して、Terraform を使い始める方法を説明します。
バケットを作成する このガイドでは、バケットの作成方法を説明します。
バケット メタデータを取得する このガイドでは、バケットのメタデータの表示方法を説明します。
オブジェクトをアップロードする このガイドでは、ローカル ファイル システムからバケットにオブジェクトをアップロードする方法を説明します。
オブジェクト メタデータを取得する このガイドでは、オブジェクトのメタデータの表示方法を説明します。
オブジェクト ライフサイクルを管理する このガイドでは、バケットのライフサイクル構成の設定方法を説明します。
Pub/Sub 通知を構成する このガイドでは、オブジェクトの変更に関する通知を Pub/Sub トピックに送信するようにバケットを構成する方法を説明します。
HMAC キーを作成する このガイドでは、プロジェクトのサービス アカウント用にハッシュベースのメッセージ認証コード(HMAC)キーを作成する方法を説明します。
データを一般公開する このガイドでは、公共のインターネット上のすべてのユーザーがバケット内のすべてのオブジェクトを読み取れるようにする方法を説明します。
静的ウェブサイトをホストする このガイドでは、所有しているドメインの静的ウェブサイトをホストするようにバケットを構成する方法を説明します。

Cloud Storage の Terraform モジュールとブループリント

モジュールとブループリントを使用すると、 Google Cloud リソースの大規模なプロビジョニングと管理を自動化できます。モジュールとは、Terraform リソースを論理的に抽象化する、再利用可能な一連の Terraform 構成ファイルのことです。ブループリントは、特定のソリューションを実装および文書化した、モジュールとポリシーのパッケージです。このパッケージはデプロイして再利用できます。

次の表に、Cloud Storage に関連するモジュールとブループリントを示します。

モジュールまたはブループリント 詳細
terraform-google-cloud-storage このモジュールは、1 つ以上の Cloud Storage バケットを作成し、そのバケットに対する基本的な権限を任意のユーザーに割り当てます。

次のステップ