アプリケーションを管理する

Application Design Center でテンプレートからアプリケーション ドラフトを作成すると、テスト環境や本番環境などの環境ごとに個別のアプリケーション インスタンスをカスタマイズしてデプロイできます。アプリケーション ドラフトを作成するときに、アプリケーションを分類してフィルタする属性を指定し、コンポーネントと接続を構成します。また、生成された Terraform コードを編集することもできます。要件の変更に応じて新しいリビジョンを作成することもできます。また、デプロイされたリソースが不要になった場合は、アプリケーションを削除することもできます。

始める前に

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

タスク 必要なロール
アプリケーションの下書きの作成、構成、編集、バージョニング Application Design Center 管理者(roles/designcenter.admin)、または
アプリケーション管理者(roles/designcenter.applicationAdmin)、または
アプリケーション編集者(roles/designcenter.applicationEditor)
アプリケーションを削除する Application Design Center 管理者(roles/designcenter.admin)、または
アプリケーション管理者(roles/designcenter.applicationAdmin)

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

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

詳細を指定し、必要に応じてコンポーネント構成をオーバーライドして、テンプレートからアプリケーション ドラフトを作成します。その後、ドラフトをデプロイしてアプリケーションを作成できます。

デザイン キャンバス

  1. ナビゲーション メニューから、次のいずれかを行います。

  2. 使用するテンプレート ID をクリックします。

  3. デザイン キャンバスで、[アプリの設定] をクリックします。次に、[新しいアプリケーションを作成] をクリックします。

  4. [アプリケーション名] 領域で、次の操作を行い、アプリケーションの名前と説明を入力します。

    1. [名前] フィールドに、このスペースの固有識別子を入力します。たとえば、web-app-staging のような一意の名前と環境の組み合わせを使用します。これは必須項目です。

      英小文字、数字、ハイフンを含む最大 63 文字を使用できます。名前は先頭を小文字にし、末尾をハイフンにすることはできません。名前は変更できません。

    2. [表示名] フィールドに、Google Cloud コンソールに表示する名前を入力します。

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

  5. [プロジェクト ID] フィールドが空のコンポーネントにデフォルト プロジェクトを設定するには、[デプロイ プロジェクト] リストからプロジェクトを選択します。フォルダレベルの境界では、プロジェクトに次の資格が必要です。

    コンポーネントの [プロジェクト ID] フィールドですでにプロジェクトが指定されている場合は、この設定ではなく、そのプロジェクトが使用されます。

  6. [リージョン] リストから、コンポーネントがデプロイされているリージョンを選択します。コンポーネントのリージョンは、次の条件に基づいて適用されます。

    • アプリケーションのスコープがグローバル(デフォルト)の場合、リージョンがまだ構成されていないコンポーネントにリージョンが適用されます。

    • アプリケーション スコープがリージョンの場合、リージョンはすべてのコンポーネントに適用されます。

  7. [Environment] リストから、このアプリケーションをデプロイする環境を選択します。たとえば、TEST でデプロイが想定どおりに動作することを確認する必要がある場合などです。

  8. [重要度] リストで、ビジネスへの影響度を選択します。たとえば、LOW や HIGH です。

  9. オーナーを指定するには、[オーナー] 領域で [オーナーを追加] をクリックし、次の表示名とメールアドレスを入力します。

    • [ビジネス オーナー] 領域に、品質とユーザーの期待に責任を持つオーナーを入力します。

    • [デベロッパー オーナー] 領域に、開発とコーディングを担当するオーナーを入力します。

    • [オペレーター オーナー] 領域に、アプリケーションの運用を担当するオーナーを入力します。

  10. [スコープ] リストから、次のいずれかを選択します。

    • グローバル(デフォルト): アプリケーションにグローバル リソースが含まれているか、リソースが複数のリージョンに存在します。

    • リージョン: すべてのリソースが単一のリージョンにあります。

    これは必須項目です。詳細については、グローバル アプリケーションとリージョン アプリケーションを比較するをご覧ください。

  11. [アプリケーションを作成] をクリックします。アプリケーションの詳細が表示されます。

gcloud CLI

  1. アプリケーションの作成に使用するテンプレートのアプリケーション テンプレート リビジョン URI を特定します。

     gcloud design-center spaces application-templates describe APPLICATION_TEMPLATE \
     --project=PROJECT \
     --location=LOCATION \
     --space=SPACE \
     --format='yaml(name,latestRevision)'
    

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

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

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

  2. latestRevision の出力をコピーします。

  3. テンプレートに基づいてアプリケーションのドラフトを作成します。

      gcloud design-center spaces applications create APPLICATION \
      --project=PROJECT \
      --location=LOCATION \
      --space=SPACE \
      --source-application-template-revision=SOURCE_APPLICATION_TEMPLATE_REVISION \
      --scope-type=SCOPE_TYPE
    

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

    • APPLICATION: 作成するアプリケーション ドラフトのアプリケーション ID。
    • PROJECT: 実際の管理プロジェクト ID。
    • LOCATION: アプリケーション リージョン。
    • SPACE: スペース ID。
    • SOURCE_APPLICATION_TEMPLATE_REVISION: アプリケーション テンプレートの URI。例: projects/PROJECT/locations/LOCATION/spaces/SPACE/applicationTemplates/APPLICATION_TEMPLATE/revisions/REVISION
    • SCOPE_TYPE: アプリケーションのスコープ。regional、global のいずれかです。アプリケーションのスコープが「global, the region is applied to components that don't already have a configured region. If the application scope isregional」の場合、リージョンはすべてのコンポーネントに適用されます。

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

コンポーネントと接続を構成する

アプリケーションのコンポーネントごとに、リソースが作成されるプロジェクトやデプロイされるロケーションなどの構成の詳細を指定できます。

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

サポートされているリソースごとに必要な詳細を構成する必要があります。

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

デザイン キャンバス

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

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

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

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

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

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

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

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

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

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

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

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

gcloud CLI

  1. アプリケーションを記述してコンポーネント パラメータを表示し、アプリケーションに必要なパラメータを特定します。

     gcloud design-center spaces applications describe APPLICATION \
     --project=PROJECT \
     --location=LOCATION \
     --space=SPACE \
     --format='yaml(name,componentParameters)'
    

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

    • APPLICATION: アプリケーション ID。
    • PROJECT: 実際の管理プロジェクト ID。
    • LOCATION: アプリケーション リージョン。
    • SPACE: スペース ID。

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

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

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

      {
        "component": "projects/PROJECT/locations/us-central1/spaces/SPACE/applicationTemplates/APPLICATION_TEMPLATE/components/COMPONENT",
        "parameters": [
           {
              "key": "service_name",
              "value": "frontend-service"
           },
           {
              "key": "project_id",
              "value": "DEPLOYMENT_PROJECT"
           }
        ]
      }
    
  3. 必要なパラメータを構成するようにアプリケーションを更新します。

     gcloud design-center spaces applications update APPLICATION \
     --project=PROJECT \
     --location=LOCATION \
     --space=SPACE \
     --component-parameters=COMPONENT_FILE_PATH_1
    

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

    • APPLICATION: アプリケーション ID。
    • PROJECT: 実際の管理プロジェクト ID。
    • LOCATION: アプリケーション リージョン。
    • SPACE: スペース ID。
    • COMPONENT_FILE_PATH_1: コンポーネント パラメータを含む JSON ファイル。追加の JSON ファイルごとに、別の --component-parameter 引数と値を追加します。

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

デプロイ手順については、アプリケーションをデプロイするをご覧ください。

セキュリティ コンプライアンスを確認する

アプリケーションのセキュリティ評価を実行して、Security Command Center フレームワークに照らして構成を検証できます。この包括的な評価では、次の項目が評価されます。

  • コンポーネント構成値: テンプレートから自動的に継承された構成設定、またはこのアプリケーション用に変更した設定。
  • アプリケーション パラメータ: デプロイ リージョンや環境など、アプリケーションに提供されるインスタンス固有の詳細。
  • 許可されたコンポーネント: 現在のアプリケーションで組織が使用を許可しているサービスとワークロード。

アプリケーションは、テンプレートから Security Command Center フレームワークを継承します。まず、管理者がアプリケーション テンプレートにセキュリティ フレームワークを接続する必要があります。次に、アプリケーションからセキュリティ コンプライアンスを評価するには、次の操作を行います。

gcloud CLI

  gcloud alpha design-center spaces applications preview APPLICATION \
  --project=PROJECT \
  --location=LOCATION \
  --space=SPACE \
  --generate-assessment-report=true

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

  • APPLICATION: 評価するアプリケーションのアプリケーション ID。
  • PROJECT: 管理プロジェクト ID。
  • LOCATION: アプリケーション リージョン。
  • SPACE: スペース ID。

出力には、テンプレートに添付されたフレームワークに基づくアプリケーションの評価レポートが表示されます。

Terraform コードを編集する

アプリケーションは、設計と構成の詳細を反映する 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. コンポーネントをクリックして、構成の詳細を確認します。

アプリケーション リビジョンを作成する

アプリケーション リビジョンを作成して、詳細またはコンポーネントを変更します。App Design Center の外部でアプリケーション コンポーネントを変更した場合、再デプロイ時にそれらの変更は保持されません。

アプリケーション リビジョンを作成するには:

デザイン キャンバス

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

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

  2. 表で、修正するアプリケーション名をクリックします。

  3. アプリケーションの詳細を変更するには、次の操作を行います。

  4. [編集] をクリックして詳細を変更します。

  5. [保存] をクリックして、変更を保存します。

  6. このアプリケーションのコンポーネントを変更するには、次の操作を行います。

    1. デザイン キャンバスでコンポーネントをクリックし、[構成] 領域で詳細を編集します。

    2. [保存] をクリックして、変更を保存します。

gcloud CLI

コンポーネントと接続を構成するをご覧ください。

デプロイ手順については、アプリケーションをデプロイするをご覧ください。

アプリケーションを削除する

アプリケーションが不要になった場合は、削除できます。たとえば、TEST 環境でテンプレートを検証するためにアプリケーションをデプロイし、その後アプリケーションを削除することがあります。

次のアプリケーションを削除できます。

  • デプロイされていないアプリケーション。[アプリケーション] ページで、[ステータス] が [ドラフト] と表示されます。
  • TEST、DEVELOPMENT、または STAGING の環境にデプロイされたアプリケーション。

アプリケーションを削除すると、次のようになります。

  • Application Design Center からアプリケーションの詳細が削除されます。
  • 基盤となる App Hub アプリケーションが削除されます。
  • デプロイした場合は、リソースが削除されます。

アプリケーションを削除するには:

デザイン キャンバス

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

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

  2. 表で [アプリケーション名] をクリックします。

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

  4. [削除] フィールドにアプリケーション名を入力します。

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

gcloud CLI

アプリケーションを削除する。

    gcloud design-center spaces applications delete APPLICATION \
    --project=PROJECT \
    --location=LOCATION \
    --space=SPACE

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

次のステップ