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

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

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

始める前に

  1. ログイン Google アカウントにログインします。

    Google アカウントをまだお持ちでない場合は、 新しいアカウントを登録します

  2. Google Cloud CLI をインストールします。

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

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

    gcloud init
  5. プロジェクトを Google Cloud 作成または選択します。

    プロジェクトを選択または作成するために必要なロール

    • プロジェクトを選択する: プロジェクトの選択には特定の IAM ロールは必要ありません。ロールが付与されているプロジェクトを選択できます。
    • プロジェクトを作成する: プロジェクトを作成するには、プロジェクト作成者ロール (roles/resourcemanager.projectCreator)が必要です。これには resourcemanager.projects.create 権限が含まれています。ロールを付与する方法を確認する
    • プロジェクトを作成します。 Google Cloud

      gcloud projects create PROJECT_ID

      PROJECT_ID は、作成する Google Cloud プロジェクトの名前に置き換えます。

    • 作成した Google Cloud プロジェクトを選択します。

      gcloud config set project PROJECT_ID

      PROJECT_ID は、 Google Cloud プロジェクトの名前に置き換えます。

  6. プロジェクト Google Cloud で課金が有効になっていることを確認します

  7. Infrastructure Manager API を有効にします。

    API を有効にするために必要なロール

    API を有効にするには、 権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。serviceusage.services.enableロールを付与する方法を確認する

    gcloud services enable config.googleapis.com
  8. 認証を設定します。

    1. サービス アカウント作成者 IAM ロール (roles/iam.serviceAccountCreator)とプロジェクト IAM 管理者ロール (roles/resourcemanager.projectIamAdmin)があることを確認します。ロールを付与する方法を確認する
    2. サービス アカウントを作成します。

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

      SERVICE_ACCOUNT_NAME をサービス アカウントの名前に置き換えます。

    3. サービス アカウントに roles/config.agent IAM ロールを付与します。

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

      以下を置き換えます。

      • SERVICE_ACCOUNT_NAME: サービス アカウントの名前
      • PROJECT_ID: サービス アカウントを作成したプロジェクト ID
  9. Google Cloud CLI をインストールします。

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

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

    gcloud init
  12. プロジェクトを Google Cloud 作成または選択します。

    プロジェクトを選択または作成するために必要なロール

    • プロジェクトを選択する: プロジェクトの選択には特定の IAM ロールは必要ありません。ロールが付与されているプロジェクトを選択できます。
    • プロジェクトを作成する: プロジェクトを作成するには、プロジェクト作成者ロール (roles/resourcemanager.projectCreator)が必要です。これには resourcemanager.projects.create 権限が含まれています。ロールを付与する方法を確認する
    • プロジェクトを作成します。 Google Cloud

      gcloud projects create PROJECT_ID

      PROJECT_ID は、作成する Google Cloud プロジェクトの名前に置き換えます。

    • 作成した Google Cloud プロジェクトを選択します。

      gcloud config set project PROJECT_ID

      PROJECT_ID は、 Google Cloud プロジェクトの名前に置き換えます。

  13. プロジェクト Google Cloud で課金が有効になっていることを確認します

  14. Infrastructure Manager API を有効にします。

    API を有効にするために必要なロール

    API を有効にするには、 権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。serviceusage.services.enableロールを付与する方法を確認する

    gcloud services enable config.googleapis.com
  15. 認証を設定します。

    1. サービス アカウント作成者 IAM ロール (roles/iam.serviceAccountCreator)とプロジェクト IAM 管理者ロール (roles/resourcemanager.projectIamAdmin)があることを確認します。ロールを付与する方法を確認する
    2. サービス アカウントを作成します。

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

      SERVICE_ACCOUNT_NAME をサービス アカウントの名前に置き換えます。

    3. サービス アカウントに roles/config.agent IAM ロールを付与します。

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

      以下を置き換えます。

      • SERVICE_ACCOUNT_NAME: サービス アカウントの名前
      • PROJECT_ID: サービス アカウントを作成したプロジェクト ID

構成内のリソースに対する権限を付与する

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 を入力し、[シャットダウン] をクリックします。

次のステップ