テンプレートを作成して確認する

このクイックスタートでは、フロントエンド、バックエンド、データベース コンポーネントを含む 3 層ウェブ アプリケーション テンプレートを作成してデプロイする方法について説明します。次の図は、アプリケーション コンポーネントと接続を含むデザイン キャンバスを示しています。

デザイン キャンバスに表示された 3 層ウェブ アプリケーション。このアプリケーションには、フロントエンド、バックエンド、データベースのコンポーネントが含まれています。

テンプレートは次のいずれかを使用して設計します。

設計が完了したら、App Design Center でテスト アプリケーションをデプロイしてテンプレートを確認します。


このタスクを Google Cloud コンソールで直接行う際の順を追ったガイダンスについては、「ガイドを表示」をクリックしてください。

ガイドを表示


始める前に

  1. App Design Center を設定します。

  2. アプリ対応フォルダに子孫プロジェクトを作成します。

    アプリケーションをデプロイするときに、このプロジェクトに Google Cloud リソースをデプロイします。

  3. 子孫プロジェクトで課金が有効になっていることを確認します。

ツールを設定する

このクイックスタートは、次のいずれかを使用して完了できます。

  • 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

必要なロールがあることを確認する

  1. テンプレートを作成するには、管理プロジェクトに次のいずれかのロールがあることを確認します。

  2. アプリケーションをデプロイするには、管理プロジェクトに次のいずれかのロールがあることを確認します。

  3. デプロイ時にサービス アカウントを作成する場合、次のロールがあることを確認します。

    • サービス アカウントを作成するには、管理プロジェクトに対するサービス アカウントの作成roles/iam.serviceAccountCreator)ロールが必要です。

    • サービス アカウントに子孫プロジェクトへのアクセス権を付与するには、子孫プロジェクトに対するプロジェクト IAM 管理者roles/resourcemanager.projectIamAdmin)ロールが必要です。

新しいテンプレートを作成して詳細を追加する

デザイン キャンバス

  1. Google Cloud コンソールで、[テンプレート] ページに移動します。

    [テンプレート] に移動

  2. [テンプレートを作成] をクリックし、次の詳細を入力します。

    1. [テンプレート ID] フィールドに「quickstart-three-tier-web-app」と入力します。

    2. [テンプレート名] フィールドに「Quickstart three-tier web app」と入力します。

    3. [説明] フィールドに「A template to generate a three-tier web application」と入力します。

    4. [テンプレートを作成] をクリックします。

    テンプレートが作成され、デザイン キャンバスが表示されます。

  3. [コンポーネント] 領域で次のコンポーネントをクリックして、デザイン キャンバスに追加します。

    • Cloud Run(2 つのコンポーネントを追加)
    • Cloud SQL(PostgreSQL)
  4. コンポーネント間の接続を作成する手順は次のとおりです。

    1. cloud-run-1 の下部にある青い点から、cloud-run-2 の上部にある青い点までドラッグします。

    2. cloud-run-2 の下部にある青い点から、sql-postgresql-1 の上部にある青い点までドラッグします。

    テンプレートには 3 つのコンポーネントが含まれています。キャンバスのコンポーネント間に接続を表す線が表示されます。

Gemini Cloud Assist

  1. Google Cloud コンソールのツールバーで、sparkGemini Cloud Assist チャットを開始または終了します」をクリックします。

    [Cloud Assist] パネルが開きます。

  2. Gemini Cloud Assist チャットに次のプロンプトを入力します。

    I want to create a three-tier web application.
    

    Gemini Cloud Assist は、3 階層のウェブ アプリケーションの基本的な設計を生成します。

  3. ロードバランサと Secret Manager コンポーネントを削除するには、次のプロンプトを入力します。

    I don't need load balancers or Secret Manager.
    

    Gemini Cloud Assist は、コンポーネントを削除するようにデザインを更新します。

  4. 次のコンポーネントを含む更新された設計を確認します。

    • Cloud Run(2 つのコンポーネント)
    • Cloud SQL for PostgreSQL
  5. [アプリのデザインを編集] をクリックします。

    [新しいテンプレートを作成] ページが表示されます。

  6. 次のテンプレートの詳細を入力します。

    1. [テンプレート ID] フィールドに「quickstart-three-tier-web-app」と入力します。

    2. [テンプレート名] フィールドに「Quickstart three-tier web app」と入力します。

    3. [説明] フィールドに「A template to generate a three-tier web application」と入力します。

  7. [テンプレートを作成] をクリックします。

    新しいテンプレートが作成され、デザイン キャンバスが表示されます。

gcloud CLI

  1. アプリケーション テンプレートを作成します。

    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_ID
    
  2. Google カタログ内の共有テンプレートを一覧表示します。

    gcloud design-center spaces shared-templates list \
    --google-catalog \
    --location=us-central1
    
    1. Cloud Run と Cloud SQL の共有テンプレート ID を特定します。
  3. フロントエンドとして使用する 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
    
  4. バックエンドとして使用する 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_ID
    
  5. Cloud 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_ID
    
  6. cloud-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_ID
    
  7. cloud-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
    
  8. 変更を commit して、アプリケーション テンプレート リビジョンを作成します。

     gcloud design-center spaces application-templates commit quickstart-three-tier-web-app \
     --space=SPACE \
     --location=us-central1 \
     --project=MANAGEMENT_PROJECT_ID
    

アプリケーションのドラフトを作成する

デザイン キャンバス

  1. デザイン キャンバスで、[アプリの設定] をクリックします。

  2. [新しいロールを作成] をクリックして、次の操作を行います。

    1. [名前] フィールドに「quickstart-three-tier-test」と入力します。

    2. [表示名] フィールドに「Quickstart three-tier test」と入力します。

    3. [リージョン] リストで [us-central1 (Iowa)] を選択します。

    4. [環境] リストで [Test] を選択します。

    5. [重要度] リストで [Low] を選択します。

    6. [範囲] 領域の [アプリケーションの範囲] リストで、[Regional] を選択します。

  3. [アプリケーションを作成] をクリックします。

    アプリケーションのドラフトが作成されます。

gcloud CLI

  1. アプリケーション テンプレートの最新リビジョン 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)'
    
  2. テンプレートに基づいてアプリケーションのドラフトを作成します。

       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
    

コンポーネントを構成する

デザイン キャンバス

  1. デザイン キャンバスで [cloud-run-1] をクリックし、[構成] 領域で次の操作を行います。

    1. [プロジェクト ID] リストで、始める前にで作成した子孫プロジェクトを選択します。リソースはこのプロジェクトにデプロイされます。

    2. [サービス名] フィールドに「frontend-service」と入力します。

    3. [保存] をクリックします。

  2. デザイン キャンバスで [cloud-run-2] をクリックし、[構成] 領域で次の操作を行います。

    1. [プロジェクト ID] リストで、始める前にで作成した子孫プロジェクトを選択します。リソースはこのプロジェクトにデプロイされます。

    2. [サービス名] フィールドに「backend-service」と入力します。

    3. [保存] をクリックします。

  3. デザイン キャンバスで [sql-postgresql-1] をクリックし、[構成] 領域で次の操作を行います。

    1. [プロジェクト ID] リストで、始める前にで作成した子孫プロジェクトを選択します。リソースはこのプロジェクトにデプロイされます。

    2. [名前] フィールドに「database-postgresql」と入力します。

    3. [データベースのバージョン] リストで [POSTGRES_15] を選択します。

    4. [ゾーン] プルダウン リストで、[us-central1-a] を選択します。

    5. [保存] をクリックします。

    キャンバスの各コンポーネントに緑色のチェックマークが表示され、必要なパラメータが指定されていることが示されます。これで、アプリケーションのドラフトを Test 環境にデプロイして確認できるようになりました。

gcloud CLI

  1. アプリケーションを説明して、必要な構成パラメータを特定します。

     gcloud design-center spaces applications describe quickstart-three-tier-test \
     --space=SPACE \
     --location=us-central1 \
     --project=MANAGEMENT_PROJECT_ID \
     --format='yaml(name,componentParameters)'
    
  2. コンポーネントごとに、ホーム ディレクトリに必要なパラメータ値を含む JSON ファイルを作成します。

    1. 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"
            }
         ]
       }
      
    2. 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"
            }
         ]
       }
      
    3. 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"
            }
         ]
       }
      
  3. アプリケーションを更新して、必要なパラメータを構成します。

     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
    

アプリケーションをデプロイする

デザイン キャンバス

  1. [Deploy] をクリックします。

  2. [サービス アカウントを選択] 領域で、次の操作を行います。

    1. [サービス アカウントを新規作成] をクリックします。

    2. [続行] をクリックします。

  3. [デプロイ] をクリックします。

    数分後、アプリケーションがデプロイされ、プロジェクトにリソースが作成されます。次の詳細が表示されます。

    • App Hub へのリンク。デプロイされたリソースの詳細(モニタリング ダッシュボードへのリンクなど)が表示されます。
    • Cloud Build ログへのリンク。デプロイ エラーのトラブルシューティングに使用できます。
    • サービス URI などの出力。デプロイされたリソースを操作する際に使用できます。
  4. このクイックスタートに基づいて構築するには、アプリケーション テンプレートを更新して再デプロイするをご覧ください。

gcloud CLI

  1. アプリケーションを記述して、デプロイ サービス アカウントに必要な IAM ロールを特定します。

     gcloud design-center spaces applications describe quickstart-three-tier-test \
     --space=SPACE \
     --location=us-central1 \
     --project=MANAGEMENT_PROJECT_ID \
     --format='yaml(name,projectParameters)'
    
  2. アプリケーションをデプロイするための新しいサービス アカウントを作成します。

     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"
    
  3. 必要なデプロイ プロジェクトのロールをサービス アカウントに追加します。

    #!/bin/bash
    
    PROJECT_ID="DEPLOYMENT_PROJECT_ID"
    SERVICE_ACCOUNT="quickstart-service-account@MANAGEMiam.gserviceaccount.comENT_PROJECT_ID."
    
    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."
    
  4. 必要な管理プロジェクトのロールをサービス アカウントに追加します。

    #!/bin/bash
    
    PROJECT_ID="MANAGEMENT_PROJECT_ID"
    SERVICE_ACCOUNT="quickstart-service-account@MANAGEMiam.gserviceaccount.comENT_PROJECT_ID."
    
    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."
    
  5. 管理プロジェクト番号を確認します。

    gcloud projects describe MANAGEMENT_PROJECT_ID \
    --format="value(projectNumber)"
    
  6. 管理プロジェクトの 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-designceiam.gserviceaccount.comnter." \
    --role="roles/iam.serviceAccountUser"
    
  7. サービス アカウントを使用するようにアプリケーションを更新します。

    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
    
  8. サービス アカウントに対する 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

  9. アプリケーションをプレビューします。

    プレビューの生成には数分かかります。

    gcloud design-center spaces applications preview quickstart-three-tier-test \
    --location=us-central1 \
    --space=SPACE \
    --project=MANAGEMENT_PROJECT_ID
    
  10. アプリケーションをデプロイします。

    gcloud design-center spaces applications deploy quickstart-three-tier-test \
    --space=SPACE \
    --location=us-central1 \
    --project=MANAGEMENT_PROJECT_ID \
    --async
    
  11. オペレーション ID を特定します。

  12. デプロイが完了するまで数分かかります。デプロイのステータスを追跡します。

    gcloud design-center operations describe operation-OPERATION_ID \
    --space=SPACE \
    --location=us-central1 \
    --project=MANAGEMENT_PROJECT_ID
    
  13. デプロイが完了したら、アプリケーションの出力パラメータを特定します。

     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)'
    

省略可: デプロイをモニタリングする

アプリケーションをデプロイしたら、アプリケーション モニタリングを使用して、アプリケーションのテレメトリーを表示し、健全性とパフォーマンスをモニタリングできます。

  1. Google Cloud コンソールで、[アプリケーションのモニタリング] ページに移動します。

    [アプリケーションのモニタリング] に移動

    検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] である結果を選択します。

  2. Google Cloud コンソールのプロジェクト選択ツールで、管理プロジェクトを選択します。

  3. 事前定義されたダッシュボードを使用してテレメトリー データを調べる方法の詳細な手順については、アプリケーションのテレメトリーを表示するをご覧ください。

Cloud Hub では、デプロイの失敗や更新可能なデプロイ、アプリケーションに影響する Google Cloud インシデントに関する情報、割り当て上限に近いサービスなど、健全性とパフォーマンスに関する追加情報を取得することもできます。

クリーンアップ

このページで使用したリソースについて、 Google Cloud アカウントに課金されないようにするには、リソースを含む Google Cloud プロジェクトを削除します。

デプロイされたアプリケーションを削除する

  1. ナビゲーション メニューで [アプリケーション] をクリックします。

    [アプリケーション] に移動

  2. テーブル内の [3 階層ウェブアプリのクイックスタート] をクリックします。

  3. [アクション] をクリックして、[アプリケーションを削除] を選択します。

  4. [削除] フィールドに「Quickstart three-tier web app」と入力します。

  5. [削除] をクリックします。

以下を含むアプリケーションが削除されます。

  • App Design Center からアプリケーションの詳細が削除されます。
  • 基盤となる App Hub アプリケーションが削除されます。
  • 基盤となるリソースが削除されます。

省略可: プロジェクトを削除する

始める前にで作成した子孫プロジェクトを削除する手順は次のとおりです。

  1. Google Cloud コンソールで [リソースの管理] ページに移動します。

    [リソースの管理] に移動

  2. プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
  3. プロンプトでプロジェクト ID を入力し、[シャットダウン] をクリックします。

次のステップ