Terraform を使用して VPC をデプロイする

Infrastructure Manager を使用して Virtual Private Cloud(VPC)をデプロイする方法について説明します。

このクイックスタートでは、一般公開の GitHub リポジトリに保存されている Terraform 構成を使用します。この構成では、プロビジョニングする VPC を定義します。

始める前に

  1. Sign in to your Google Account.

    If you don't already have one, sign up for a new account.

  2. Install the Google Cloud CLI.

  3. 外部 ID プロバイダ(IdP)を使用している場合は、まず フェデレーション ID を使用して gcloud CLI にログインする必要があります。

  4. gcloud CLI を初期化するには、次のコマンドを実行します。

    gcloud init
  5. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Infrastructure Manager API:

    gcloud services enable config.googleapis.com
  8. Set up authentication:

    1. Create the service account:

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

      Replace SERVICE_ACCOUNT_NAME with a name for the service account.

    2. Grant the roles/config.agent IAM role to the service account:

      gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=roles/config.agent

      Replace the following:

      • SERVICE_ACCOUNT_NAME: the name of the service account
      • PROJECT_ID: the project ID where you created the service account
  9. Install the Google Cloud CLI.

  10. 外部 ID プロバイダ(IdP)を使用している場合は、まず フェデレーション ID を使用して gcloud CLI にログインする必要があります。

  11. gcloud CLI を初期化するには、次のコマンドを実行します。

    gcloud init
  12. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  13. Verify that billing is enabled for your Google Cloud project.

  14. Enable the Infrastructure Manager API:

    gcloud services enable config.googleapis.com
  15. Set up authentication:

    1. Create the service account:

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

      Replace SERVICE_ACCOUNT_NAME with a name for the service account.

    2. Grant the roles/config.agent IAM role to the service account:

      gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=roles/config.agent

      Replace the following:

      • SERVICE_ACCOUNT_NAME: the name of the service account
      • PROJECT_ID: the project ID where you created the service account
  16. 構成内のリソースに対する権限を付与する

    Infra Manager の実行に必要な権限は付与されていますが、デプロイする構成で記述されているリソースに固有の権限も付与する必要があります。

    Terraform 構成で定義されたリソースである VPC の権限を付与します。

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/compute.networkAdmin
    

    次のように置き換えます。

    • SERVICE_ACCOUNT_NAME: サービス アカウントの名前。
    • PROJECT_ID: プロジェクト ID。

    デプロイをプレビューする

    デプロイを作成する前に、デプロイのプレビューを作成できます。このプレビューを使用して、プロビジョニングが計画されているリソースを確認できます。

    次のコマンドには、デフォルト値のない 4 つの値が設定されています。これらの値は、プロジェクト ID、サービス アカウント名、ロケーション us-central1、作成するネットワークの名前 quickstart-vpc です。

    プレビューを作成するには、次のコマンドを使用します。

        gcloud infra-manager previews create projects/PROJECT_ID/locations/us-central1/previews/quickstart-preview \
            --service-account projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
            --git-source-repo=https://github.com/terraform-google-modules/terraform-google-network \
            --git-source-directory=modules/vpc \
            --git-source-ref=main \
            --input-values=project_id=PROJECT_ID,network_name=quickstart-vpc
    

    プレビューを作成したら、プレビュー結果を確認できます。このクイックスタートではこの手順をスキップしますが、詳細については、プレビュー結果のエクスポートと表示をご覧ください。

    Deployment の作成

    Infra Manager を使用してデプロイを作成します。つまり、Infra Manager は Terraform 構成で定義されたリソースをプロビジョニングします。

    このクイックスタートの構成には、デフォルト値のない値が 4 つあります。次のコマンドは、プロジェクト ID、サービス アカウント名、ロケーション us-central1、作成するネットワークの名前 quickstart-vpc を追加します。

    gcloud infra-manager deployments apply projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment \
        --service-account=projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
        --git-source-repo=https://github.com/terraform-google-modules/terraform-google-network \
        --git-source-directory=modules/vpc \
        --git-source-ref=main \
        --input-values=project_id=PROJECT_ID,network_name=quickstart-vpc
    

    デプロイが完了すると、次のように表示されます。

    Creating the deployment...done
    

    これで、構成で説明したように VPC が作成され、構成されました。

    Cloud Build でビルド結果を表示する

    Infra Manager がデプロイの作成に使用した Cloud Build ジョブを表示するには、 Google Cloud コンソールで [ビルド履歴] ページを開きます。

    [ビルド履歴] ページを開く

    デプロイのステータスを表示する

    デプロイが完了したので、説明を表示して、状態などの情報を確認できます。

    デプロイの説明を表示します。

    gcloud infra-manager deployments describe projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment
    

    出力には、デプロイのタイムスタンプ、最新リビジョンの名前、状態など、デプロイに関する詳細情報が含まれます。

    状態は ACTIVE と表示されます。

    プロビジョニングされた VPC の詳細を表示する

    プロビジョニングされた VPC の詳細を表示します。

    gcloud infra-manager resources list --revision=projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment/revisions/REVISION_ID
    

    REVISION_ID は、最新のリビジョンの ID に置き換えます。この ID は r-0 です(複数回デプロイした場合を除く)。前のセクションのデプロイの説明で、最新のリビジョンの ID を確認できます。

    コンソールで VPC を表示する

    コンソールで VPC を表示します。

    [VPC ネットワーク] に移動

    quickstart-vpc という名前の VPC が表示されます。これは、Infra Manager がプロビジョニングした VPC です。

    クリーンアップ

    このページで使用したリソースについて、 Google Cloud アカウントに課金されないようにするには、不要になったリソースを削除してください。

    VPC を削除する

    VPC とデプロイに関するメタデータを削除します。

    gcloud infra-manager deployments delete projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment
    

    省略可: プロジェクトを削除する

    ソリューションを新しい Google Cloud プロジェクトにデプロイした後、そのプロジェクトが不要になった場合は、次の手順で削除します。

    1. Google Cloud コンソールで [リソースの管理] ページに移動します。

      [リソースの管理] に移動

    2. プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
    3. プロンプトでプロジェクト ID を入力し、[シャットダウン] をクリックします。

    次のステップ