テンプレートを作成して確認する
このクイックスタートでは、フロントエンド、バックエンド、データベース コンポーネントを含む 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 を設定するをご覧ください。
- Google Cloud アカウントにログインします。 Google Cloudを初めて使用する場合は、 アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します。
gcloud init -
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します。
gcloud init
必要なロールがあることを確認する
クイックスタートを開始する前に、次の表に示すように、設計、構築、デプロイに必要なロールを付与するよう管理者に依頼してください。
| タスク | 必要なロール |
|---|---|
| 標準テンプレートの作成、デザイン、編集 | App Design Center 管理者(roles/designcenter.admin)または App Design Center ユーザー(roles/designcenter.user) |
| アプリケーションと構成をデプロイする | アプリケーション管理者(roles/designcenter.applicationAdmin)またはアプリケーション編集者(roles/designcenter.applicationEditor) |
| デプロイ中にサービス アカウントを作成する | 管理プロジェクトでサービス アカウントを作成する(roles/iam.serviceAccountCreator) |
| サービス アカウントにデプロイ プロジェクトへのアクセス権を付与する | デプロイ プロジェクトに対するプロジェクト IAM 管理者(roles/resourcemanager.projectIamAdmin) |
ロールの詳細については、IAM を使用したアクセス制御をご覧ください。
新しいテンプレートを作成して詳細を追加する
デザイン キャンバス
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 つのコンポーネントが含まれています。キャンバスのコンポーネント間に接続を表す線が表示されます。
Gemini Cloud Assist
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 CLI
アプリケーション テンプレートを作成します。
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] を選択します。
[アプリケーションを作成] をクリックします。
アプリケーションのドラフトが作成されます。
gcloud CLI
アプリケーション テンプレートの最新リビジョン 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 CLI
アプリケーションを説明して、必要な構成パラメータを特定します。
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 などの出力。デプロイされたリソースを操作する際に使用できます。
このクイックスタートに基づいて構築するには、アプリケーション テンプレートを更新して再デプロイするをご覧ください。
gcloud CLI
アプリケーションを記述して、デプロイ サービス アカウントに必要な 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 コンソールのプロジェクト選択ツールで、管理プロジェクトを選択します。
事前定義されたダッシュボードを使用してテレメトリー データを調べる方法の詳細については、アプリケーションのテレメトリーを表示するをご覧ください。
Cloud Hub では、デプロイの失敗や更新可能なデプロイ、アプリケーションに影響する Google Cloud インシデントに関する情報、割り当て上限に近いサービスなど、健全性とパフォーマンスに関する追加情報を取得することもできます。
クリーンアップ
このページで使用したリソースについて、 Google Cloud アカウントに課金されないようにするには、リソースを含む Google Cloud プロジェクトを削除します。
デプロイされたアプリケーションを削除する
ナビゲーション メニューで [アプリケーション] をクリックします。
テーブル内の [3 階層ウェブアプリのクイックスタート] をクリックします。
[アクション] をクリックして、[アプリケーションを削除] を選択します。
[削除] フィールドに「
Quickstart three-tier web app」と入力します。[削除] をクリックします。
以下を含むアプリケーションが削除されます。
- App Design Center からアプリケーションの詳細が削除されます。
- 基盤となる App Hub アプリケーションが削除されます。
- 基盤となるリソースが削除されます。
省略可: プロジェクトを削除する
始める前にで作成したデプロイ プロジェクトを削除する手順は次のとおりです。
- Google Cloud コンソールで [リソースの管理] ページに移動します。
- プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
- プロンプトでプロジェクト ID を入力し、[シャットダウン] をクリックします。
次のステップ
- テンプレートを更新して再デプロイすることで、アーキテクチャを変更する方法について学習する。
- App Design Center の概要で、基本的なコンセプトとメリットを確認する。
- Gemini アシスタンスを使用して、自然言語でテンプレートを作成します。
- クイックスタート: Google テンプレートをカスタマイズしてデプロイするで、テンプレート アーキテクチャを複製してカスタマイズします。
- アプリケーション テンプレートを設計して、独自の構成を定義します。