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. To initialize the gcloud CLI, run the following command:

    gcloud init
  4. 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.

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Enable the Infrastructure Manager API:

    gcloud services enable config.googleapis.com
  7. 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
  8. Install the Google Cloud CLI.
  9. To initialize the gcloud CLI, run the following command:

    gcloud init
  10. 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.

  11. Make sure that billing is enabled for your Google Cloud project.

  12. Enable the Infrastructure Manager API:

    gcloud services enable config.googleapis.com
  13. 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

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

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=master \
        --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=master \
    --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

出力には、Deployment のタイムスタンプ、最新リビジョンの名前、状態など、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 を入力し、[シャットダウン] をクリックします。

次のステップ