標準アプリケーション テンプレートを設計する

Application Design Center の標準アプリケーション テンプレートを使用すると、優先アーキテクチャを定義し、開発チームがデプロイで使用するリソースと構成を管理できます。標準テンプレートは、スペースのメンバーと共有したり、他のスペースのカタログに公開したり、より大きな複合テンプレートに埋め込んだりできます。デベロッパーは、標準テンプレートからアプリケーションを作成するときに、コンポーネントを追加または削除することなく、各コンポーネントを構成できます。各テンプレートは、デベロッパーが App Design Center から直接ダウンロードまたはデプロイできる Terraform コードを生成します。

始める前に

このドキュメントのタスクを実行するには、次の表に示すように、アプリ対応フォルダまたは管理プロジェクトに必要なロールを付与するよう管理者に依頼してください。

タスク 必要なロール
標準アプリケーション テンプレートの作成、設計、編集 Application Design Center 管理者(roles/designcenter.admin)、または
Application Design Center ユーザー(roles/designcenter.user)
標準テンプレートをカタログに公開または共有する Application Design Center 管理者(roles/designcenter.admin)

ロールの詳細については、IAM を使用したアクセス制御をご覧ください。

標準アプリケーション テンプレートを作成する

標準のアプリケーション テンプレートを作成して、アーキテクチャ設計を開発チームと共有します。テンプレートのデザインには、次のコンポーネントを追加できます。

  • アセット: サービス アカウントなどの他のリソースを制御するのに役立つ高レベルのリソース。

  • サービス: Cloud Storage や Vertex AI など、ネットワーク経由で使用されるネットワーク インターフェースまたは API インターフェース。

  • ワークロード: Cloud Run や Compute Engine など、ビジネス機能を実行するバイナリ デプロイ。

次のコンポーネントから選択できます。

テンプレートを設計すると、App Design Center は設計と構成の詳細を反映する Terraform コードを生成します。

テンプレートの詳細を指定する

テンプレートの詳細は、テンプレートを分類するのに役立ち、デベロッパーがテンプレートを使用するかどうかを判断するのに役立ちます。

テンプレートの詳細を入力する手順は次のとおりです。

デザイン キャンバス

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

    [テンプレート] に移動

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

  3. [テンプレート ID] フィールドは自動的に入力されます。または、テンプレートの固有識別子を入力します。このフィールドは必須です。

  4. [テンプレート名] フィールドに、 Google Cloud コンソールに表示する人が読める形式の識別子を入力します。

    名前を指定しない場合、テンプレート ID がこのフィールドにコピーされます。

  5. [説明] フィールドに、アプリケーションの目的の簡単な説明を入力します。

  6. [テンプレートを作成] をクリックします。デザイン キャンバスが表示されます。

gcloud CLI

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

gcloud design-center spaces application-templates create APPLICATION_TEMPLATE \
--project=PROJECT \
--location=LOCATION \
--space=SPACE \
--display-name=DISPLAY_NAME \
--description=DESCRIPTION

次のように置き換えます。

  • APPLICATION_TEMPLATE: 作成するアプリケーション テンプレートのテンプレート ID。
  • PROJECT: 実際の管理プロジェクト ID。
  • LOCATION: アプリケーション テンプレートのリージョン。
  • SPACE: スペース ID。
  • DISPLAY_NAME: Google Cloud コンソールに表示する名前。
  • DESCRIPTION: 簡単な説明。

詳細については、gcloud design-center spaces application-templates create をご覧ください。

テンプレートを設計する

コンポーネントを追加して接続し、テンプレートを設計します。次の例では、デザイン キャンバスに 3 つの接続コンポーネントが含まれています。

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

次の開始点にコンポーネントを追加して、テンプレートを設計できます。

デベロッパーがテンプレートに基づいてアプリケーションを構成できるように、特定の入力変数と出力変数を指定します。変数を使用すると、次のものを定義できます。

  • デベロッパーがテンプレートに基づいてアプリケーションを作成するときに指定する必要がある特定の入力。たとえば、アプリケーションを開発環境、本番環境、テスト環境にデプロイするときに、環境ごとに異なる変数値を指定できます。これらの変数は、生成された Terraform の variables.tf ファイルと outputs.tf ファイルで自動的に公開されます。

  • 複合テンプレートに埋め込まれた 2 つの標準アプリケーション テンプレート間の接続。たとえば、複合テンプレートで接続を作成するために、データベース テンプレートがデータベース名変数を出力し、それがアプリケーション ロジック テンプレートの入力として使用される場合があります。

テンプレートを設計する手順は次のとおりです。

デザイン キャンバス

  1. デザイン キャンバスから [Design] を選択して、キャンバスを表示します。

  2. 次のいずれかの操作を行います。

    • 最初から作成するには、[コンポーネント] 領域でコンポーネントをクリックして、キャンバス領域に追加します。

    • Google 提供のテンプレートから開始するには、キャンバスの [Get Started] 領域でテンプレート名をクリックします。

    • 自然言語チャットを使用してテンプレートを生成するには、[Custom Application with Gemini] をクリックします。

  3. コンポーネント間の通信チャネルを作成するには、次のいずれかを行います。

    • キャンバス上の 2 つのコンポーネントを接続するには、コンポーネントの青い点から別のコンポーネントの青い点にドラッグします。

    • 既存のコンポーネントに追加するには、 [追加] をクリックし、追加するコンポーネントを選択します。

    接続の詳細については、サポートされているリソースごとの構成ドキュメントをご覧ください。

  4. コンポーネントまたは接続を削除する手順は次のとおりです。

    1. キャンバスで、コンポーネントまたは接続をクリックします。

    2. [構成] 領域で、[削除] をクリックします。

    3. フィールドに「delete」と入力します。

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

  5. テンプレートの入力変数と出力変数を指定する手順は次のとおりです。

    1. [テンプレートの詳細] をクリックします。

    2. [テンプレートの詳細] パネルで、[変数] タブをクリックします。

    3. [変数の編集] 領域で、次の操作を行います。

      1. [コンポーネント] リストから、変数のベースとなるコンポーネントを選択します。

      2. [変数タイプ] のリストから、次のいずれかを選択します。

        • 出力: コンポーネントは、接続に必要な値を出力します。たとえば、Cloud Run サービスが IP アドレスを出力する場合があります。

        • 入力: コンポーネントには、デベロッパーまたは別の標準アプリケーション テンプレートからの入力が必要です。たとえば、データ処理テンプレートでは、データ ストレージ テンプレートのデータベース名が必要になる場合があります。

      3. 別の変数を作成するには、[変数を追加] をクリックして、上記の手順を繰り返します。

gcloud CLI

  1. テンプレートに追加する Google カタログ コンポーネントのテンプレート リビジョン URI を特定します。

    gcloud design-center spaces shared-templates list \
    --google-catalog \
    --location=us-central1
    

    詳細については、gcloud design-center spaces shared-templates list をご覧ください。

  2. アプリケーション テンプレートにコンポーネントを追加します。

    gcloud design-center spaces application-templates components create COMPONENT \
    --project=PROJECT \
    --location=LOCATION \
    --space=SPACE \
    --application-template=APPLICATION_TEMPLATE \
    --shared-template-revision-uri=SHARED_TEMPLATE_URI
    

    次のように置き換えます。

    • COMPONENT: テンプレートに追加するコンポーネントのコンポーネント ID。
    • PROJECT: 実際の管理プロジェクト ID。
    • LOCATION: アプリケーション テンプレートのリージョン。
    • SPACE: スペース ID。
    • APPLICATION_TEMPLATE: コンポーネントを追加するアプリケーション テンプレートのテンプレート ID。
    • SHARED_TEMPLATE_URI: コンポーネントの共有済みテンプレート URI。例: projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1

    詳細については、gcloud design-center spaces application-templates components create をご覧ください。

  3. テンプレートに 2 つ目のコンポーネントを追加します。

    gcloud design-center spaces application-templates components create COMPONENT_2 \
    --project=PROJECT \
    --location=LOCATION \
    --space=SPACE \
    --application-template=APPLICATION_TEMPLATE \
    --shared-template-revision-uri=SHARED_TEMPLATE_URI_2
    

    次のように置き換えます。

    • COMPONENT_2: テンプレートに追加する 2 番目のコンポーネントのコンポーネント ID。
    • PROJECT: 実際の管理プロジェクト ID。
    • LOCATION: アプリケーション テンプレートのリージョン。
    • SPACE: スペース ID。
    • APPLICATION_TEMPLATE: コンポーネントを追加するアプリケーション テンプレートのテンプレート ID。
    • SHARED_TEMPLATE_URI_2: 2 番目のコンポーネントの共有テンプレート URI。例: projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1

    詳細については、gcloud design-center spaces application-templates components create をご覧ください。

  4. 2 つのコンポーネント間の接続を作成します。

    gcloud design-center spaces application-templates components connections create CONNECTION \
    --project=PROJECT \
    --location=LOCATION \
    --space=SPACE \
    --application-template=APPLICATION_TEMPLATE \
    --component=COMPONENT \
    --destination-component-uri=COMPONENT_2
    

    次のように置き換えます。

    • CONNECTION: テンプレートに追加する接続の接続 ID。
    • PROJECT: 実際の管理プロジェクト ID。
    • LOCATION: アプリケーション テンプレートのリージョン。
    • SPACE: スペース ID。
    • APPLICATION_TEMPLATE: 接続を追加するアプリケーション テンプレートのテンプレート ID。
    • COMPONENT: ソース コンポーネント ID。
    • COMPONENT_2: 宛先コンポーネント ID。

    詳細については、gcloud design-center spaces application-templates components connections create をご覧ください。

  5. 入力変数と出力変数を追加して、デベロッパーの入力を要求するか、複合テンプレートの他のコンポーネントに接続します。

    gcloud design-center spaces application-templates update APPLICATION_TEMPLATE \
    --project=PROJECT \
    --location=LOCATION \
    --space=SPACE \
    --add-root-input-variables=componentUri=COMPONENT_URI,variable=VARIABLE \
    --add-root-output-variables=componentUri=COMPONENT_URI,variable=VARIABLE
    

    次のように置き換えます。

    • APPLICATION_TEMPLATE: 変数を追加するアプリケーション テンプレートのテンプレート ID。
    • PROJECT: 実際の管理プロジェクト ID。
    • LOCATION: アプリケーション テンプレートのリージョン。
    • SPACE: スペース ID。
    • COMPONENT_URI: 変数のベースとなるコンポーネントの URI。
    • VARIABLE: 入力または出力するコンポーネント変数。たとえば、データベース コンポーネントに database_name 変数があり、これを出力するか、デベロッパーからの入力を必要とする場合があります。

    詳細については、gcloud design-center spaces application-templates update をご覧ください。

コンポーネントのデフォルト値を構成する

テンプレートに追加するコンポーネントごとに、リソースのプロジェクトやデプロイ ロケーションなどのデフォルトの構成の詳細を指定できます。Application Design Center は、このテンプレートからアプリケーションが作成されるときに、これらのデフォルトを適用します。

アプリケーション デベロッパーは、デフォルトの構成が要件を満たしていない場合に、接続の詳細を変更することもできます。たとえば、アプリケーションの作成時に、環境変数のキー名の変更、接続ポートの変更、サービス アカウントへのロールの追加などを行うことができます。

デベロッパーは、アプリケーションをデプロイする前に、テンプレートで構成したデフォルト値を表示して変更できます。デベロッパーは、サポートされているリソースごとに必要な詳細を構成する必要があります。

コンポーネントと接続を構成する手順は次のとおりです。

デザイン キャンバス

  1. デザイン キャンバスでコンポーネントをクリックします。

  2. [構成] 領域の [プロジェクト ID] リストで、リソースをデプロイするプロジェクトを選択します。次の条件を満たすプロジェクトを選択します。

  3. リソースの追加設定を構成します。たとえば、Cloud SQL の場合は、次のように構成します。

    • リージョン
    • バックアップ構成
    • データベース フラグ
    • IP 構成

    各コンポーネントの構成ドキュメントへのリンクについては、サポートされているリソースをご覧ください。

  4. デザイン キャンバスでコンポーネントを接続すると、デフォルトの構成値を使用して接続が作成されます。接続の詳細を追加または変更する手順は次のとおりです。

    1. デザイン キャンバスで、2 つのコンポーネント間の接続をクリックします。[接続] パネルが開き、接続パラメータが表示されます。

    2. 次のいずれかを行います。

      • 既存の接続パラメータを変更するには、[編集] をクリックします。

      • 新しい接続パラメータを追加するには、[パラメータを追加] をクリックします。

    3. [キー] フィールドと [値] フィールドを更新します。たとえば、次の詳細を変更できます。

      • アプリケーションの要件に合わせて調整する環境変数のキー名。
      • 接続ポートの値。
      • サービス アカウントに追加されたロール。
  5. [保存] をクリックします。

gcloud CLI

  1. アプリケーション テンプレートの各コンポーネントを記述して、コンポーネント パラメータを表示します。

    gcloud design-center spaces application-templates components describe COMPONENT \
    --project=PROJECT \
    --location=LOCATION \
    --space=SPACE \
    --application-template=APPLICATION_TEMPLATE
    

    次のように置き換えます。

    • COMPONENT: 説明するコンポーネントのコンポーネント ID。
    • PROJECT: 実際の管理プロジェクト ID。
    • LOCATION: アプリケーション テンプレートのリージョン。
    • SPACE: スペース ID。
    • APPLICATION_TEMPLATE: アプリケーション テンプレートのテンプレート ID。

    詳細については、gcloud design-center spaces application-templates components describe をご覧ください。

  2. 変更するコンポーネントごとに、パラメータ値を含む JSON ファイルをホーム ディレクトリに作成します。

    たとえば、Cloud Run コンポーネント用に次のファイルを作成します。

      [
          {
            "key": "service_name",
            "value": "frontend-service"
          },
          {
            "key": "project_id",
            "value": "DEPLOYMENT_PROJECT"
          }
      ]
    
  3. アプリケーション テンプレートの各コンポーネントを更新して、必要なパラメータを構成します。

    gcloud design-center spaces application-templates components update COMPONENT \
    --project=PROJECT \
    --location=LOCATION \
    --space=SPACE \
    --parameters=PARAMETERS_FILE_PATH \
    --application-template=APPLICATION_TEMPLATE
    

    次のように置き換えます。

    • COMPONENT: 更新するコンポーネントのコンポーネント ID。
    • PROJECT: 実際の管理プロジェクト ID。
    • LOCATION: アプリケーション テンプレートのリージョン。
    • SPACE: スペース ID。
    • PARAMETERS_FILE_PATH: コンポーネント パラメータを含む JSON ファイル。
    • APPLICATION_TEMPLATE: アプリケーション テンプレートのテンプレート ID。

    詳細については、gcloud design-center spaces application-templates components update をご覧ください。

  4. コンポーネントの接続を記述する。

    gcloud design-center spaces application-templates components connections describe CONNECTION \
    --component=COMPONENT \
    --application-template=APPLICATION_TEMPLATE \
    --project=PROJECT \
    --location=LOCATION \
    --space=SPACE
    

    次のように置き換えます。

    • CONNECTION: 接続 ID。
    • COMPONENT: コンポーネント ID。
    • APPLICATION_TEMPLATE: テンプレート ID。
    • PROJECT: 実際の管理プロジェクト ID。
    • LOCATION: アプリケーション テンプレートのリージョン。
    • SPACE: スペース ID。

    詳細については、gcloud design-center spaces application-templates components connections describe をご覧ください。

  5. コンポーネントの接続パラメータを編集します。

    gcloud design-center spaces application-templates components connections update CONNECTION \
        --component=COMPONENT \
        --application-template=APPLICATION_TEMPLATE \
        --project=PROJECT \
        --location=LOCATION \
        --space=SPACE \
        --source-component-parameters='[{"key": "SOURCE_KEY", "value": "SOURCE_VALUE"}]'
    

    次のように置き換えます。

    • CONNECTION: 接続 ID。
    • COMPONENT: コンポーネント ID。
    • APPLICATION_TEMPLATE: テンプレート ID。
    • PROJECT: 実際の管理プロジェクト ID。
    • LOCATION: アプリケーション テンプレートのリージョン。
    • SPACE: スペース ID。
    • SOURCE_KEY: 新しいパラメータキー。
    • SOURCE_VALUE: 新しいパラメータ値。

    詳細については、gcloud design-center spaces application-templates components connections update をご覧ください。

セキュリティ フレームワークへの準拠を確認する

テンプレートからデプロイされるすべてのアプリケーションに一貫したポリシーを適用して、デプロイ前に組織の特定のセキュリティ要件を適用できます。テンプレート設計フェーズでの評価の実行は任意ですが、評価はアプリケーションのデプロイ前フェーズで適用されるため、構成ミスを早期に解決することを強くおすすめします。

Security Command Center のスタンダード ティアを使用している場合、テンプレートは Google CloudSecurity Essentials フレームワークに照らして検証されます。プレミアム ティアまたはエンタープライズ ティアをご利用の場合は、追加のフレームワークを作成して、フォルダレベルの境界または単一プロジェクトの境界内でアプリケーション テンプレートに直接アタッチできます。

セキュリティ フレームワークをテンプレートに適用する方法については、セキュリティ ポリシーを適用するをご覧ください。

Terraform コードを編集する

アプリケーション テンプレートを設計すると、App Design Center は設計と構成の詳細を反映する Terraform コードを生成します。Terraform を編集して、コンポーネント構成の詳細を指定できます。

システムによって次の Terraform ファイルが生成されます。

  • main.tf: テンプレート内の各コンポーネントのモジュールを含むインフラストラクチャ コード。
  • outputs.tf: デプロイされているインフラストラクチャ コンポーネントに関する情報を公開します。
  • variables.tf: main.tf ファイルで使用される変数の名前、型、説明を宣言します。
  • input.tfvars: main.tf ファイルで使用される変数の値を定義します。
  • providers.tf: Terraform が Google Cloud API とリソースを操作する際に役立つラベルを定義します。

背景情報については、Google Cloudでの Terraform の概要をご覧ください。

Terraform コードを編集する手順は次のとおりです。

  1. デザイン キャンバスで、[コード] をクリックします。生成された Terraform ファイルが表示されます。

  2. [main.tf] をクリックします。各コンポーネントの Terraform モジュールが表示されます。

  3. 構成の詳細を編集します。詳細については、サポートされているリソースの構成ドキュメントをご覧ください。

    編集内容は自動的に検証され、無効な編集がある場合はエラーが表示されます。

  4. 編集内容をハイライト表示して比較する手順は次のとおりです。

    1. [差分を表示] をクリックします。

    2. 変更を元に戻すには、マージンで [クリックして変更を元に戻す] をクリックします。

    3. [差分を表示] をクリックして、比較ビューを閉じます。

  5. 編集内容を保存するには、[コードの変更を保存] をクリックします。

  6. 変更を確認するには、次の操作を行います。

    1. [デザイン] をクリックします。
    2. コンポーネントをクリックして、構成の詳細を確認します。

テンプレートを確認する

テンプレートをデベロッパーと共有する前に、テンプレートが意図したとおりに機能することを確認してください。テンプレートを確認する手順は次のとおりです。

  1. 次の設定でアプリケーションを作成します。
    1. [環境] リストで [TEST] を選択します。
    2. [重要度] リストで [低] を選択します。
  2. アプリケーションをデプロイする。
  3. インフラストラクチャをテストして、要件を満たしていることを確認します。
  4. 繰り返し費用が発生しないようにするには、テスト デプロイを削除します。

テンプレートをカタログに共有する

テンプレートを検証したら、テンプレートをカタログに公開できます。このテンプレートは、カタログが共有されているスペースにアクセスできるアプリケーション デベロッパーが使用できます。

  1. デザイン キャンバスで、[カタログに追加] をクリックします。
  2. カタログが共有されているスペースを管理するには、カタログを管理するをご覧ください。

テンプレートを修正して再共有する

アプリケーションの使用経験を積み、ビジネスニーズが進化するにつれて、テンプレートの更新が必要になることがあります。たとえば、キャッシュ保存用の Memorystore サービスを追加して、バックエンド サービスのパフォーマンスを向上させることができます。

テンプレートを変更すると、テンプレート リビジョンが作成されます。既存のアプリケーションに変更を適用するには、デベロッパーがリビジョンを使用してアプリケーションをデプロイする必要があります。

App Design Center は、テンプレート リビジョンをカタログに自動的に公開しません。最新のリビジョンを共有するには、テンプレートをカタログに再度公開します。

新しいリビジョンを作成するには、次の操作を行います。

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

    [テンプレート] に移動

  2. 修正するアプリケーション テンプレートを選択します。キャンバスが開きます。

  3. 新しい要件に合わせてテンプレートを変更します。たとえば、新しいコンポーネントを追加して構成します。

  4. 最新のリビジョンを他のスペースと共有するには、テンプレートをカタログに再度追加します。

テンプレートを削除する

不要になったテンプレートは削除できます。

デザイン キャンバス

  1. デザイン キャンバスで、[ アクション] をクリックします。
  2. [削除] をクリックします。

gcloud CLI

アプリケーション テンプレートを削除します。

```sh
gcloud design-center spaces application-templates delete APPLICATION_TEMPLATE \
--project=PROJECT \
--location=LOCATION \
--space=SPACE
```

次のように置き換えます。

  • APPLICATION_TEMPLATE: 削除するアプリケーション テンプレートのテンプレート ID。
  • PROJECT: 実際の管理プロジェクト ID。
  • LOCATION: アプリケーション テンプレートのリージョン。
  • SPACE: スペース ID。

詳細については、gcloud design-center spaces application-templates delete をご覧ください。

次のステップ