テンプレートを作成して確認する
このクイックスタートでは、フロントエンド、バックエンド、データベース コンポーネントを含む 3 層ウェブ アプリケーション テンプレートを作成してデプロイする方法について説明します。次の図は、アプリケーション コンポーネントと接続を含むデザイン キャンバスを示しています。
テンプレートは次のいずれかを使用して設計します。
- App Design Center の設計キャンバス。
- Gemini Cloud Assist の自然言語プロンプト。
- App Design Center Google Cloud CLI。
設計が完了したら、App Design Center でテスト アプリケーションをデプロイしてテンプレートを確認します。
このタスクを Google Cloud コンソールで直接行う際の順を追ったガイダンスについては、「ガイドを表示」をクリックしてください。
始める前に
アプリ対応フォルダに子孫プロジェクトを作成します。
アプリケーションをデプロイするときに、このプロジェクトに Google Cloud リソースをデプロイします。
子孫プロジェクトで課金が有効になっていることを確認します。
ツールを設定する
このクイックスタートは、次のいずれかを使用して完了できます。
Google Cloud コンソールのデザイン キャンバスを使用します。
Gemini Cloud Assist を使用して設計を作成するには、Gemini Cloud Assist を設定するをご覧ください。
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Install the Google Cloud CLI.
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します。
gcloud init -
Install the Google Cloud CLI.
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します。
gcloud init テンプレートを作成するには、管理プロジェクトに次のいずれかのロールがあることを確認します。
- App Design Center 管理者(
roles/designcenter.admin)。 - App Design Center ユーザー(
roles/designcenter.user)。
- App Design Center 管理者(
アプリケーションをデプロイするには、管理プロジェクトに次のいずれかのロールがあることを確認します。
- アプリケーション管理者(
roles/designcenter.applicationAdmin)。 - アプリケーション編集者(
roles/designcenter.applicationEditor)。
- アプリケーション管理者(
デプロイ時にサービス アカウントを作成する場合、次のロールがあることを確認します。
サービス アカウントを作成するには、管理プロジェクトに対するサービス アカウントの作成(
roles/iam.serviceAccountCreator)ロールが必要です。サービス アカウントに子孫プロジェクトへのアクセス権を付与するには、子孫プロジェクトに対するプロジェクト IAM 管理者(
roles/resourcemanager.projectIamAdmin)ロールが必要です。
Google Cloud コンソールで、[テンプレート] ページに移動します。
[テンプレートを作成] をクリックし、次の詳細を入力します。
[テンプレート ID] フィールドに「
quickstart-three-tier-web-app」と入力します。[テンプレート名] フィールドに「
Quickstart three-tier web app」と入力します。[説明] フィールドに「
A template to generate a three-tier web application」と入力します。[テンプレートを作成] をクリックします。
テンプレートが作成され、デザイン キャンバスが表示されます。
[コンポーネント] 領域で次のコンポーネントをクリックして、デザイン キャンバスに追加します。
- Cloud Run(2 つのコンポーネントを追加)
- Cloud SQL(PostgreSQL)
コンポーネント間の接続を作成する手順は次のとおりです。
cloud-run-1 の下部にある青い点から、cloud-run-2 の上部にある青い点までドラッグします。
cloud-run-2 の下部にある青い点から、sql-postgresql-1 の上部にある青い点までドラッグします。
テンプレートには 3 つのコンポーネントが含まれています。キャンバスのコンポーネント間に接続を表す線が表示されます。
Google Cloud コンソールのツールバーで、spark「Gemini Cloud Assist チャットを開始または終了します」をクリックします。
[Cloud Assist] パネルが開きます。
Gemini Cloud Assist チャットに次のプロンプトを入力します。
I want to create a three-tier web application.Gemini Cloud Assist は、3 階層のウェブ アプリケーションの基本的な設計を生成します。
ロードバランサと Secret Manager コンポーネントを削除するには、次のプロンプトを入力します。
I don't need load balancers or Secret Manager.Gemini Cloud Assist は、コンポーネントを削除するようにデザインを更新します。
次のコンポーネントを含む更新された設計を確認します。
- Cloud Run(2 つのコンポーネント)
- Cloud SQL for PostgreSQL
[アプリのデザインを編集] をクリックします。
[新しいテンプレートを作成] ページが表示されます。
次のテンプレートの詳細を入力します。
[テンプレート ID] フィールドに「
quickstart-three-tier-web-app」と入力します。[テンプレート名] フィールドに「
Quickstart three-tier web app」と入力します。[説明] フィールドに「
A template to generate a three-tier web application」と入力します。
[テンプレートを作成] をクリックします。
新しいテンプレートが作成され、デザイン キャンバスが表示されます。
アプリケーション テンプレートを作成します。
gcloud design-center spaces application-templates create quickstart-three-tier-web-app \ --display-name="Quickstart three-tier web app" \ --description="A template to generate a three-tier web application" \ --space=SPACE \ --location=us-central1 \ --project=MANAGEMENT_PROJECT_IDGoogle カタログ内の共有テンプレートを一覧表示します。
gcloud design-center spaces shared-templates list \ --google-catalog \ --location=us-central1- Cloud Run と Cloud SQL の共有テンプレート ID を特定します。
フロントエンドとして使用する Cloud Run コンポーネントを追加します。
gcloud design-center spaces application-templates components create cloud-run-1 \ --application-template=quickstart-three-tier-web-app \ --shared-template-revision-uri=google/1b5e09c8-780f-484e-b8ed-c7178f4e4342 \ --space=SPACE \ --location=us-central1 \ --project=MANAGEMENT_PROJECT_IDバックエンドとして使用する 2 つ目の Cloud Run コンポーネントを追加します。
gcloud design-center spaces application-templates components create cloud-run-2 \ --application-template=quickstart-three-tier-web-app \ --shared-template-revision-uri=google/1b5e09c8-780f-484e-b8ed-c7178f4e4342 \ --space=SPACE \ --location=us-central1 \ --project=MANAGEMENT_PROJECT_IDCloud SQL コンポーネントを追加します。
gcloud design-center spaces application-templates components create sql-postgresql-1 \ --application-template=quickstart-three-tier-web-app \ --shared-template-revision-uri=google/45be1bc2-89bc-477b-9b5d-64c41ff3b146 \ --space=SPACE \ --location=us-central1 \ --project=MANAGEMENT_PROJECT_IDcloud-run-1 を cloud-run-2 に接続します。
gcloud design-center spaces application-templates components connections create frontend-to-backend \ --application-template=quickstart-three-tier-web-app \ --component=cloud-run-1 \ --destination-component-uri=cloud-run-2 \ --space=SPACE \ --location=us-central1 \ --project=MANAGEMENT_PROJECT_IDcloud-run-2 を sql-postgresql-1 に接続します。
gcloud design-center spaces application-templates components connections create backend-to-database \ --application-template=quickstart-three-tier-web-app \ --component=cloud-run-2 \ --destination-component-uri=sql-postgresql-1 \ --space=SPACE \ --location=us-central1 \ --project=MANAGEMENT_PROJECT_ID変更を commit して、アプリケーション テンプレート リビジョンを作成します。
gcloud design-center spaces application-templates commit quickstart-three-tier-web-app \ --space=SPACE \ --location=us-central1 \ --project=MANAGEMENT_PROJECT_IDデザイン キャンバスで、[
アプリの設定 ] をクリックします。[
新しいロールを作成 ] をクリックして、次の操作を行います。[名前] フィールドに「
quickstart-three-tier-test」と入力します。[表示名] フィールドに「
Quickstart three-tier test」と入力します。[リージョン] リストで [
us-central1 (Iowa)] を選択します。[環境] リストで [
Test] を選択します。[重要度] リストで [
Low] を選択します。[範囲] 領域の [アプリケーションの範囲] リストで、[
Regional] を選択します。
[アプリケーションを作成] をクリックします。
アプリケーションのドラフトが作成されます。
アプリケーション テンプレートの最新リビジョン URI を特定します。
gcloud design-center spaces application-templates describe quickstart-three-tier-web-app \ --space=SPACE \ --location=us-central1 \ --project=MANAGEMENT_PROJECT_ID \ --format='yaml(name,latestRevision)'テンプレートに基づいてアプリケーションのドラフトを作成します。
gcloud design-center spaces applications create quickstart-three-tier-test \ --space=SPACE \ --location=us-central1 \ --project=MANAGEMENT_PROJECT_ID \ --source-application-template-revision=projects/MANAGEMENT_PROJECT_ID/locations/us-central1/spaces/SPACE/applicationTemplates/quickstart-three-tier-web-app/revisions/TEMPLATE_REVISION \ --display-name="Quickstart three-tier test" \ --environment-type=test \ --criticality-type=low \ --scope-type=regional \ --deployment-region=us-central1デザイン キャンバスで [cloud-run-1] をクリックし、[構成] 領域で次の操作を行います。
[プロジェクト ID] リストで、始める前にで作成した子孫プロジェクトを選択します。リソースはこのプロジェクトにデプロイされます。
[サービス名] フィールドに「
frontend-service」と入力します。[保存] をクリックします。
デザイン キャンバスで [cloud-run-2] をクリックし、[構成] 領域で次の操作を行います。
[プロジェクト ID] リストで、始める前にで作成した子孫プロジェクトを選択します。リソースはこのプロジェクトにデプロイされます。
[サービス名] フィールドに「
backend-service」と入力します。[保存] をクリックします。
デザイン キャンバスで [sql-postgresql-1] をクリックし、[構成] 領域で次の操作を行います。
[プロジェクト ID] リストで、始める前にで作成した子孫プロジェクトを選択します。リソースはこのプロジェクトにデプロイされます。
[名前] フィールドに「
database-postgresql」と入力します。[データベースのバージョン] リストで [
POSTGRES_15] を選択します。[ゾーン] プルダウン リストで、[
us-central1-a] を選択します。[保存] をクリックします。
キャンバスの各コンポーネントに緑色のチェックマークが表示され、必要なパラメータが指定されていることが示されます。これで、アプリケーションのドラフトを
Test環境にデプロイして確認できるようになりました。アプリケーションを説明して、必要な構成パラメータを特定します。
gcloud design-center spaces applications describe quickstart-three-tier-test \ --space=SPACE \ --location=us-central1 \ --project=MANAGEMENT_PROJECT_ID \ --format='yaml(name,componentParameters)'コンポーネントごとに、ホーム ディレクトリに必要なパラメータ値を含む JSON ファイルを作成します。
frontend-service.jsonを作成します。{ "component": "projects/MANAGEMENT_PROJECT_ID/locations/us-central1/spaces/SPACE/applicationTemplates/quickstart-three-tier-web-app/components/cloud-run-1", "parameters": [ { "key": "service_name", "value": "frontend-service" }, { "key": "project_id", "value": "DEPLOYMENT_PROJECT_ID" } ] }backend-service.jsonを作成します。{ "component": "projects/MANAGEMENT_PROJECT_ID/locations/us-central1/spaces/SPACE/applicationTemplates/quickstart-three-tier-web-app/components/cloud-run-2", "parameters": [ { "key": "service_name", "value": "backend-service" }, { "key": "project_id", "value": "DEPLOYMENT_PROJECT_ID" } ] }database-postgresql.jsonを作成します。{ "component": "projects/MANAGEMENT_PROJECT_ID/locations/us-central1/spaces/SPACE/applicationTemplates/quickstart-three-tier-web-app/components/sql-postgresql-1", "parameters": [ { "key": "name", "value": "database-postgresql" }, { "key": "project_id", "value": "DEPLOYMENT_PROJECT_ID" }, { "key": "database_version", "value": "POSTGRES_15" }, { "key": "region", "value": "us-central1" }, { "key": "zone", "value": "us-central1-a" } ] }
アプリケーションを更新して、必要なパラメータを構成します。
gcloud design-center spaces applications update quickstart-three-tier-test \ --space=SPACE \ --location=us-central1 \ --project=MANAGEMENT_PROJECT_ID \ --component-parameters=./frontend-service.json \ --component-parameters=./backend-service.json \ --component-parameters=./database-postgresql.json[
Deploy ] をクリックします。[サービス アカウントを選択] 領域で、次の操作を行います。
[サービス アカウントを新規作成] をクリックします。
[続行] をクリックします。
[デプロイ] をクリックします。
数分後、アプリケーションがデプロイされ、プロジェクトにリソースが作成されます。次の詳細が表示されます。
- App Hub へのリンク。デプロイされたリソースの詳細(モニタリング ダッシュボードへのリンクなど)が表示されます。
- Cloud Build ログへのリンク。デプロイ エラーのトラブルシューティングに使用できます。
- サービス URI などの出力。デプロイされたリソースを操作する際に使用できます。
このクイックスタートに基づいて構築するには、アプリケーション テンプレートを更新して再デプロイするをご覧ください。
アプリケーションを記述して、デプロイ サービス アカウントに必要な IAM ロールを特定します。
gcloud design-center spaces applications describe quickstart-three-tier-test \ --space=SPACE \ --location=us-central1 \ --project=MANAGEMENT_PROJECT_ID \ --format='yaml(name,projectParameters)'アプリケーションをデプロイするための新しいサービス アカウントを作成します。
gcloud iam service-accounts create quickstart-service-account \ --project=MANAGEMENT_PROJECT_ID \ --display-name="Quickstart service account" \ --description="A service account to deploy the ADC quickstart"必要なデプロイ プロジェクトのロールをサービス アカウントに追加します。
#!/bin/bash PROJECT_ID="DEPLOYMENT_PROJECT_ID" SERVICE_ACCOUNT="quickstart-service-account@MANAGEMENT_PROJECT_ID.iam.gserviceaccount.com" ROLES=( "roles/iap.admin" "roles/compute.networkAdmin" "roles/compute.viewer" "roles/run.admin" "roles/iam.serviceAccountAdmin" "roles/serviceusage.serviceUsageAdmin" "roles/cloudkms.admin" "roles/logging.logWriter" "roles/iam.serviceAccountUser" "roles/cloudsql.admin" "roles/cloudkms.autokeyAdmin" "roles/storage.admin" "roles/serviceusage.serviceUsageViewer" "roles/resourcemanager.projectIamAdmin" "roles/cloudkms.cryptoKeyEncrypterDecrypter" ) for role in "${ROLES[@]}"; do echo "Adding role: ${role}" gcloud projects add-iam-policy-binding "${PROJECT_ID}" \ --member="serviceAccount:${SERVICE_ACCOUNT}" \ --role="${role}" echo "---" done echo "Finished adding roles."必要な管理プロジェクトのロールをサービス アカウントに追加します。
#!/bin/bash PROJECT_ID="MANAGEMENT_PROJECT_ID" SERVICE_ACCOUNT="quickstart-service-account@MANAGEMENT_PROJECT_ID.iam.gserviceaccount.com" ROLES=( "roles/config.agent" "roles/apphub.editor" ) for role in "${ROLES[@]}"; do echo "Adding role: ${role}" gcloud projects add-iam-policy-binding "${PROJECT_ID}" \ --member="serviceAccount:${SERVICE_ACCOUNT}" \ --role="${role}" echo "---" done echo "Finished adding roles."管理プロジェクト番号を確認します。
gcloud projects describe MANAGEMENT_PROJECT_ID \ --format="value(projectNumber)"管理プロジェクトの
roles/iam.serviceAccountUserロールの IAM ポリシー バインディングを追加します。gcloud iam service-accounts add-iam-policy-binding projects/MANAGEMENT_PROJECT_ID/serviceAccounts/quickstart-service-account@MANAGEMENT_PROJECT_ID.iam.gserviceaccount.com \ --project=MANAGEMENT_PROJECT_ID \ --member="serviceAccount:service-MANAGEMENT_PROJECT_NUMBER@gcp-sa-designcenter.iam.gserviceaccount.com" \ --role="roles/iam.serviceAccountUser"サービス アカウントを使用するようにアプリケーションを更新します。
gcloud design-center spaces applications update quickstart-three-tier-test \ --space=SPACE \ --location=us-central1 \ --project=MANAGEMENT_PROJECT_ID \ --service-account=projects/MANAGEMENT_PROJECT_ID/serviceAccounts/quickstart-service-account@MANAGEMENT_PROJECT_ID.iam.gserviceaccount.comサービス アカウントに対する actAs 権限をユーザーに付与します。
gcloud iam service-accounts add-iam-policy-binding quickstart-service-account@MANAGEMENT_PROJECT_ID.iam.gserviceaccount.com \ --project=MANAGEMENT_PROJECT_ID \ --member="user:USER" \ --role="roles/iam.serviceAccountUser"USER は Google Cloud ユーザーです。例:
dana@example.comアプリケーションをプレビューします。
プレビューの生成には数分かかります。
gcloud design-center spaces applications preview quickstart-three-tier-test \ --location=us-central1 \ --space=SPACE \ --project=MANAGEMENT_PROJECT_IDアプリケーションをデプロイします。
gcloud design-center spaces applications deploy quickstart-three-tier-test \ --space=SPACE \ --location=us-central1 \ --project=MANAGEMENT_PROJECT_ID \ --asyncオペレーション ID を特定します。
デプロイが完了するまで数分かかります。デプロイのステータスを追跡します。
gcloud design-center operations describe operation-OPERATION_ID \ --space=SPACE \ --location=us-central1 \ --project=MANAGEMENT_PROJECT_IDデプロイが完了したら、アプリケーションの出力パラメータを特定します。
gcloud design-center spaces applications describe quickstart-three-tier-test \ --space=SPACE \ --location=us-central1 \ --project=MANAGEMENT_PROJECT_ID \ --format='yaml(name,appParameters,componentParameters,deploymentMetadata,deploymentRevision,previewReference)'-
Google Cloud コンソールで、[アプリケーションのモニタリング] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] である結果を選択します。
Google Cloud コンソールのプロジェクト選択ツールで、管理プロジェクトを選択します。
事前定義されたダッシュボードを使用してテレメトリー データを調べる方法の詳細な手順については、アプリケーションのテレメトリーを表示するをご覧ください。
ナビゲーション メニューで [アプリケーション] をクリックします。
テーブル内の [3 階層ウェブアプリのクイックスタート] をクリックします。
[アクション] をクリックして、[アプリケーションを削除] を選択します。
[削除] フィールドに「
Quickstart three-tier web app」と入力します。[削除] をクリックします。
- App Design Center からアプリケーションの詳細が削除されます。
- 基盤となる App Hub アプリケーションが削除されます。
- 基盤となるリソースが削除されます。
- Google Cloud コンソールで [リソースの管理] ページに移動します。
- プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
- プロンプトでプロジェクト ID を入力し、[シャットダウン] をクリックします。
必要なロールがあることを確認する
新しいテンプレートを作成して詳細を追加する
デザイン キャンバス
Gemini Cloud Assist
gcloud CLI
アプリケーションのドラフトを作成する
デザイン キャンバス
gcloud CLI
コンポーネントを構成する
デザイン キャンバス
gcloud CLI
アプリケーションをデプロイする
デザイン キャンバス
gcloud CLI
省略可: デプロイをモニタリングする
アプリケーションをデプロイしたら、アプリケーション モニタリングを使用して、アプリケーションのテレメトリーを表示し、健全性とパフォーマンスをモニタリングできます。
Cloud Hub では、デプロイの失敗や更新可能なデプロイ、アプリケーションに影響する Google Cloud インシデントに関する情報、割り当て上限に近いサービスなど、追加の健全性とパフォーマンスに関する情報を取得することもできます。
クリーンアップ
このページで使用したリソースについて、 Google Cloud アカウントに課金されないようにするには、リソースを含む Google Cloud プロジェクトを削除します。
デプロイされたアプリケーションを削除する
以下を含むアプリケーションが削除されます。
省略可: プロジェクトを削除する
始める前にで作成した子孫プロジェクトを削除する手順は次のとおりです。