Terraform を使用して VPC をデプロイする
Infrastructure Manager を使用して Virtual Private Cloud(VPC)をデプロイする方法について説明します。
このクイックスタートでは、一般公開の GitHub リポジトリに保存されている Terraform 構成を使用します。この構成では、プロビジョニングする VPC を定義します。
始める前に
-
Sign in to your Google Account.
If you don't already have one, sign up for a new account.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
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.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Infrastructure Manager API:
gcloud services enable config.googleapis.com
-
Set up authentication:
-
Create the service account:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Replace
SERVICE_ACCOUNT_NAME
with a name for the service account. -
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 accountPROJECT_ID
: the project ID where you created the service account
-
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
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.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Infrastructure Manager API:
gcloud services enable config.googleapis.com
-
Set up authentication:
-
Create the service account:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Replace
SERVICE_ACCOUNT_NAME
with a name for the service account. -
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 accountPROJECT_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 を表示します。
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 ブループリントとモジュールをご覧ください。