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 ロールは必要ありません。ロールが付与されているプロジェクトであれば、どのプロジェクトでも選択できます。
    • プロジェクトを作成する: プロジェクトを作成するには、resourcemanager.projects.create 権限を含むプロジェクト作成者ロール(roles/resourcemanager.projectCreator)が必要です。詳しくは、ロールを付与する方法をご覧ください。
    • 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 を有効にするには、serviceusage.services.enable 権限が必要です。プロジェクトを作成した場合は、オーナーロール(roles/owner)を介してこの権限がすでに付与されている可能性があります。それ以外の場合は、Service Usage 管理者ロール(roles/serviceusage.serviceUsageAdmin)を介してこの権限を取得できます。ロールを付与する方法をご覧ください。

    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 ロールは必要ありません。ロールが付与されているプロジェクトであれば、どのプロジェクトでも選択できます。
    • プロジェクトを作成する: プロジェクトを作成するには、resourcemanager.projects.create 権限を含むプロジェクト作成者ロール(roles/resourcemanager.projectCreator)が必要です。詳しくは、ロールを付与する方法をご覧ください。
    • 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 を有効にするには、serviceusage.services.enable 権限が必要です。プロジェクトを作成した場合は、オーナーロール(roles/owner)を介してこの権限がすでに付与されている可能性があります。それ以外の場合は、Service Usage 管理者ロール(roles/serviceusage.serviceUsageAdmin)を介してこの権限を取得できます。ロールを付与する方法をご覧ください。

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

次のステップ