Terraform を使用して VPC をデプロイする
Infrastructure Manager を使用して Virtual Private Cloud(VPC)をデプロイする方法について説明します。
このクイックスタートでは、一般公開の GitHub リポジトリに保存されている Terraform 構成を使用します。この構成では、プロビジョニングする VPC を定義します。
始める前に
-
ログイン Google アカウントにログインします。
Google アカウントをまだお持ちでない場合は、 新しいアカウントを登録します。
-
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します:
gcloud init -
プロジェクトを 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 プロジェクトの名前に置き換えます。
Infrastructure Manager API を有効にします。
API を有効にするために必要なロール
API を有効にするには、 権限を含む Service Usage 管理者 IAM ロール(
roles/serviceusage.serviceUsageAdmin)が必要です。serviceusage.services.enableロールを付与する方法を確認する。gcloud services enable config.googleapis.com
-
認証を設定します。
-
サービス アカウント作成者 IAM ロール
(
roles/iam.serviceAccountCreator)とプロジェクト IAM 管理者ロール (roles/resourcemanager.projectIamAdmin)があることを確認します。ロールを付与する方法を確認する。 -
サービス アカウントを作成します。
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
SERVICE_ACCOUNT_NAMEをサービス アカウントの名前に置き換えます。 -
サービス アカウントに
roles/config.agentIAM ロールを付与します。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
-
サービス アカウント作成者 IAM ロール
(
-
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します:
gcloud init -
プロジェクトを 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 プロジェクトの名前に置き換えます。
Infrastructure Manager API を有効にします。
API を有効にするために必要なロール
API を有効にするには、 権限を含む Service Usage 管理者 IAM ロール(
roles/serviceusage.serviceUsageAdmin)が必要です。serviceusage.services.enableロールを付与する方法を確認する。gcloud services enable config.googleapis.com
-
認証を設定します。
-
サービス アカウント作成者 IAM ロール
(
roles/iam.serviceAccountCreator)とプロジェクト IAM 管理者ロール (roles/resourcemanager.projectIamAdmin)があることを確認します。ロールを付与する方法を確認する。 -
サービス アカウントを作成します。
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
SERVICE_ACCOUNT_NAMEをサービス アカウントの名前に置き換えます。 -
サービス アカウントに
roles/config.agentIAM ロールを付与します。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
-
サービス アカウント作成者 IAM ロール
(
構成内のリソースに対する権限を付与する
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 を表示します。
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 プロジェクトにデプロイした後、その プロジェクトが不要になった場合は、次の手順で削除します。
- Google Cloud コンソールで [リソースの管理] ページに移動します。
- プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
- プロンプトでプロジェクト ID を入力し、[シャットダウン] をクリックします。
次のステップ
- Infra Manager の詳細については、 Infra Manager の仕組みをご覧ください。
- Infra Manager と Terraform の詳細を確認する。
- デプロイを更新する。
- デプロイを自動化する。
- で使用できる構成とモジュールのセットについては、 Google Cloudをご覧ください。 Google Cloud の Terraform ブループリントとモジュール