既存のリソースをアプリケーションに登録する

既存のサービスとワークロードをアプリケーションに登録すると、ビジネス上の目的に基づいてリソースを整理することで、管理を簡素化できます。このアプローチにより、可視性、モニタリング、ガバナンス、運用制御を一元的に行うことができます。

このガイドでは、まだアプリケーションとして正式に定義されていないGoogle Cloud で実行されている既存のサービスとワークロードをグループ化する方法について説明します。

始める前に

リソースをアプリケーションに整理する前に、アプリケーション管理の初期設定を完了する必要があります。このプロセスには通常、次のロールと手順が含まれます。

  • 管理者向け:

    1. アプリケーション管理を設定します。アプリ対応フォルダまたはホスト プロジェクトを構成して、アプリケーションの管理境界として機能するようにします。
    2. 必要な API を有効にします。使用するすべてのリソースの API を有効にします。
    3. ユーザーにアクセス権を付与します。 アプリケーション ライフサイクルにおけるユーザーの役割に基づいて、適切な IAM ロールを割り当てます。
  • デベロッパーとオペレータ向け:

    1. 初期設定が完了していることを管理者にご確認ください。
    2. 実行するタスクに必要な IAM ロールがあることを確認します
    3. 設定モデルに応じて、アプリ対応フォルダまたはホスト プロジェクトを開きます。

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

App Hub でアプリケーションを作成して、既存のサービスとワークロードの論理コンテナとして機能させます。

コンソール

  1. Google Cloud コンソールで、設定モデルに応じて、プロジェクト選択ツールを使用してホスト プロジェクトまたはアプリ対応フォルダの管理プロジェクトを選択します。
  2. App Hub から [アプリケーション] ページに移動します。

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

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

  4. [アプリケーションのリージョンと名前の選択] ペインで、地理的分布の要件に基づいてアプリケーションに最適なロケーションを選択します。

    • リージョン アプリケーションを作成するには、[リージョン] を選択します。次に、App Hub でサポートされているリージョンに基づいて、アプリケーションの特定のリージョンを選択します。
    • [グローバル] を選択して、グローバル アプリケーションを作成します。

    アプリケーションに最適なロケーションの詳細については、グローバル アプリケーションとリージョン アプリケーションをご覧ください。

  5. [アプリケーション名] を入力し、[続行] をクリックします。

  6. 省略可: アプリケーションの最上位属性を定義して、検出可能性とガバナンスをサポートします。

    • [属性を追加] セクションで、表示名を入力します。
    • [重要度] リストで、アプリケーションの重要性を示す値を選択します。
    • [環境] リストで、ソフトウェア ライフサイクルのステージを示す値を選択します。
    • 所有者の連絡先情報(表示名、メールアドレスなど)を追加します。メールアドレスは username@yourdomain 形式(例: jane-doe@gmail.com)にする必要があります。
  7. [作成] をクリックします。

gcloud

  1. Google Cloud CLI を使用して、ターミナルまたは Cloud Shell からアプリケーションを作成します。

    gcloud apphub applications create APPLICATION_NAME \
      --project=PROJECT_ID \
      --scope-type=LOCATION \
      --location=REGION \
      --display-name=DISPLAY_NAME \
      --criticality-type=CRITICALITY \
      --environment-type=ENVIRONMENT \
      --developer-owners=display-name=DEV_NAME,email=DEV_EMAIL \
      --operator-owners=display-name=OPERATOR_NAME,email=OPERATOR_EMAIL \
      --business-owners=display-name=BUSINESS_NAME,email=BUSINESS_EMAIL
    

    APPLICATION_NAME は、アプリケーションの名前に置き換えます。名前にはスペースなしの小文字の英数字のみを使用します。

    --criticality-type などのオプションのフラグを使用して、アプリケーションの最上位の属性を定義し、検出可能性とガバナンスをサポートします。

    必須フラグとオプション フラグの場合は、次のように置き換えます。

    • 必須: PROJECT_ID: 設定モデルに応じて、ホスト プロジェクトまたは管理プロジェクトの ID。
    • 必須: LOCATION: 地理的分布の要件に基づくアプリケーションのロケーション。次のいずれかの値を使用します。

      • リージョン アプリケーションの場合は REGIONAL
      • グローバル アプリケーションの場合は GLOBAL

      アプリケーションに最適なロケーションの詳細については、グローバル アプリケーションとリージョン アプリケーションをご覧ください。

    • 必須: REGION: アプリケーションの特定のリージョン。次の値のいずれかを使用できます。

      • アプリケーションの --scope-type ロケーションが REGIONAL に設定されている場合は、App Hub でサポートされているリージョン名を指定します。
      • アプリケーションの --scope-type の場所が GLOBAL に設定されている場合は、global を使用します。
    • 省略可: DISPLAY_NAME: アプリケーションの表示名。

    • 省略可: CRITICALITY: 運用におけるアプリケーションの重要度。次のいずれかの値を使用します。

      • MISSION_CRITICAL
      • HIGH
      • MEDIUM
      • LOW
    • 省略可: ENVIRONMENT: ソフトウェア ライフサイクルのステージ。次の値のいずれかを使用できます。

      • PRODUCTION
      • STAGING
      • DEVELOPMENT
      • TEST
    • 省略可: DEV_NAMEDEV_EMAIL: それぞれデベロッパー オーナーの表示名とメールアドレス。

    • 省略可: OPERATOR_NAMEOPERATOR_EMAIL: オペレーター オーナーの表示名とメールアドレス。

    • 省略可: BUSINESS_NAMEBUSINESS_EMAIL: それぞれビジネス オーナーの表示名とメールアドレス。

  2. プロジェクト内のアプリケーションを一覧表示します。

    gcloud apphub applications list \
      --project=PROJECT_ID \
      --location=REGION
    

    次のような出力が得られるはずです。

    ID                 DISPLAY_NAME   CREATE_TIME
    APPLICATION_NAME   DISPLAY_NAME   2023-10-31T18:33:48
    

サービスとワークロードを登録する

アプリケーションを作成したら、既存のサービスとワークロードを登録します。

コンソール

  1. Google Cloud コンソールで、設定モデルに応じて、プロジェクト選択ツールを使用してホスト プロジェクトまたはアプリ対応フォルダの管理プロジェクトを選択します。
  2. App Hub から [アプリケーション] ページに移動します。

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

  3. 既存のサービスとワークロードを登録するアプリケーションの名前をクリックします。

  4. アプリケーションの詳細ページで、[サービスとワークロード] タブを選択します。このタブには、アプリケーションに登録できる既存のリソースのリストが表示されます。App Hub では、リソース階層内にあるサポートされているリソースをサービスとワークロードとして選択できます。

  5. 登録するサービスまたはワークロードごとに、次の操作を行います。

    1. [サービスとワークロード] タブで、[サービス/ワークロードを登録] をクリックします。
    2. [リソースを選択] ペインに移動し、[参照] をクリックして、登録するサービスまたはワークロードを見つけます。
    3. サービスまたはワークロードを選択して、[選択] をクリックします。
    4. [リソースの選択] ペインで、サービスまたはワークロードの名前を入力して [続行] をクリックします。
    5. 省略可: [属性を追加] ペインで、検出可能性とガバナンスをサポートするリソースの最上位属性を定義します。

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

    7. 省略可: [オーナーを追加] セクションで、サービスまたはワークロードのオーナーの詳細を追加します。

    8. [Register] をクリックします。

[サービスとワークロード] タブに、登録済みのサービスまたはワークロードが表示されます。

gcloud

App Hub では、リソース階層内にあるサポートされているリソースをサービスとワークロードとして選択できます。Google Cloud CLI を使用して、ターミナルまたは Cloud Shell からアプリケーションに登録できるサービスまたはワークロードを一覧表示します。サービスとワークロードではコマンドが若干異なります。

サービスを登録する

  1. アプリケーションに登録できる利用可能なサービスを一覧表示します。

    gcloud apphub discovered-services list \
      --project=PROJECT_ID \
      --location=REGION \
      --filter=FILTER_EXPRESSION
    

    必須フラグとオプション フラグの場合は、次のように置き換えます。

    • 必須: PROJECT_ID: 設定モデルに応じて、ホスト プロジェクトまたは管理プロジェクトの ID。
    • 必須: REGION: 地理的な分布に基づくサービスの特定のリージョン。次のいずれかの値を使用します。

    • 省略可: FILTER_EXPRESSION: --filter フラグのフィルタ式。指定したプロジェクトのサービスまたは特定のプロパティを持つサービスのみを表示します。例:

      • service_properties.gcp_project=projects/PROJECT_ID
      • service_properties.gcp_project=projects/PROJECT_ID AND service_reference.uri~"forwardingRules"

    出力は次のようになります。

    ID            SERVICE_REFERENCE                                                                                             SERVICE_PROPERTIES
    SERVICE_ID    {'uri': '//compute.googleapis.com/projects/PROJECT_NUMBER/regions/REGION/forwardingRules/forwarding-rule'}    {'gcpProject': 'projects/PROJECT_ID', 'location': 'REGION'}
    
  2. 出力からサービス ID SERVICE_ID をコピーします。

  3. サービスをアプリケーションに登録します。

    gcloud apphub applications services create SERVICE_NAME \
      --project=PROJECT_ID \
      --location=REGION \
      --application=APPLICATION_NAME \
      --discovered-service=projects/PROJECT_ID/locations/REGION/discoveredServices/SERVICE_ID \
      --display-name=SERVICE_DISPLAY_NAME \
      --criticality-type=CRITICALITY \
      --environment-type=ENVIRONMENT \
      --developer-owners=display-name=DEV_NAME,email=DEV_EMAIL \
      --operator-owners=display-name=OPERATOR_NAME,email=OPERATOR_EMAIL \
      --business-owners=display-name=BUSINESS_NAME,email=BUSINESS_EMAIL
    

    SERVICE_NAME は、サービスをアプリケーションに登録するために使用する名前に置き換えます。

    --criticality-type などのオプション フラグを使用して、サービスの最上位属性を定義し、検出可能性とガバナンスをサポートします。

    必須フラグとオプション フラグの場合は、次のように置き換えます。

    • 必須: PROJECT_ID: 設定モデルに応じて、ホスト プロジェクトまたは管理プロジェクトの ID。
    • 必須: REGION: 地理的な分布に基づくサービスの特定のリージョン。次のいずれかの値を使用します。

    • 必須: APPLICATION_NAME: サービスを登録するアプリケーションの名前。

    • 必須: SERVICE_ID: 前の出力からコピーしたサービス ID。

    • 省略可: SERVICE_DISPLAY_NAME: サービスの表示名。

    • 省略可: CRITICALITY: 運用におけるサービスの重要度。次の値のいずれかを使用できます。

      • MISSION_CRITICAL
      • HIGH
      • MEDIUM
      • LOW
    • 省略可: ENVIRONMENT: ソフトウェア ライフサイクルのステージ。次の値のいずれかを使用できます。

      • PRODUCTION
      • STAGING
      • DEVELOPMENT
      • TEST
    • 省略可: DEV_NAMEDEV_EMAIL: それぞれデベロッパー オーナーの表示名とメールアドレス。

    • 省略可: OPERATOR_NAMEOPERATOR_EMAIL: オペレーター オーナーの表示名とメールアドレス。

    • 省略可: BUSINESS_NAMEBUSINESS_EMAIL: ビジネス オーナーの表示名とメールアドレス。

  4. アプリケーションに登録されているサービスを一覧表示します。

    gcloud apphub applications services list \
      --application=APPLICATION_NAME
      --project=PROJECT_ID \
      --location=REGION
    

    登録された各サービスについて、次のような出力を取得する必要があります。

    ID              DISPLAY_NAME            SERVICE_REFERENCE                                                                                             CREATE_TIME
    SERVICE_NAME    SERVICE_DISPLAY_NAME    {'uri': '//compute.googleapis.com/projects/PROJECT_NUMBER/regions/REGION/forwardingRules/forwarding-rule'}    2023-11-01T21:38:08
    

ワークロードを登録する

  1. アプリケーションに登録できる使用可能なワークロードを一覧表示します。

    gcloud apphub discovered-workloads list \
      --project=PROJECT_ID \
      --location=REGION \
      --filter=FILTER_EXPRESSION
    

    必須フラグとオプション フラグの場合は、次のように置き換えます。

    • 必須: PROJECT_ID: 設定モデルに応じて、ホスト プロジェクトまたは管理プロジェクトの ID。
    • 必須: REGION: 地理的分布に基づくワークロードの特定のリージョン。次のいずれかの値を使用します。

    • 省略可: FILTER_EXPRESSION: --filter フラグのフィルタ式。指定されたプロジェクトのワークロードまたは特定のプロパティを持つワークロードのみを表示します。例: workload_properties.gcp_project=projects/PROJECT_ID

    出力は次のようになります。

    ID             WORKLOAD_REFERENCE                                                                                    WORKLOAD_PROPERTIES
    WORKLOAD_ID    {'uri': '//compute.googleapis.com/projects/PROJECT_NUMBER/regions/REGION/instanceGroups/mig-name'}    {'gcpProject': 'projects/PROJECT_ID', 'location': 'REGION'}
    
  2. 出力からワークロード ID WORKLOAD_ID をコピーします。

  3. ワークロードをアプリケーションに登録します。

    gcloud apphub applications workloads create WORKLOAD_NAME \
      --project=PROJECT_ID \
      --location=REGION \
      --application=APPLICATION_NAME \
      --discovered-workload=projects/PROJECT_ID/locations/REGION/discoveredWorkloads/WORKLOAD_ID \
      --display-name=WORKLOAD_DISPLAY_NAME \
      --criticality-type=CRITICALITY \
      --environment-type=ENVIRONMENT \
      --developer-owners=display-name=DEV_NAME,email=DEV_EMAIL \
      --operator-owners=display-name=OPERATOR_NAME,email=OPERATOR_EMAIL \
      --business-owners=display-name=BUSINESS_NAME,email=BUSINESS_EMAIL
    

    WORKLOAD_NAME は、ワークロードをアプリケーションに登録するために使用する名前に置き換えます。

    --criticality-type などのオプション フラグを使用して、ワークロードの最上位属性を定義し、検出可能性とガバナンスをサポートします。

    必須フラグとオプション フラグの場合は、次のように置き換えます。

    • 必須: PROJECT_ID: 設定モデルに応じて、ホスト プロジェクトまたは管理プロジェクトの ID。
    • 必須: REGION: 地理的分布に基づくワークロードの特定のリージョン。次のいずれかの値を使用します。

    • 必須: APPLICATION_NAME: ワークロードを登録するアプリケーションの名前。

    • 必須: WORKLOAD_ID: 前の出力からコピーしたワークロード ID。

    • 省略可: WORKLOAD_DISPLAY_NAME: ワークロードの表示名。

    • 省略可: CRITICALITY: 運用におけるワークロードの重要度。次の値のいずれかを使用できます。

      • MISSION_CRITICAL
      • HIGH
      • MEDIUM
      • LOW
    • 省略可: ENVIRONMENT: ソフトウェア ライフサイクルのステージ。次の値のいずれかを使用できます。

      • PRODUCTION
      • STAGING
      • DEVELOPMENT
      • TEST
    • 省略可: DEV_NAMEDEV_EMAIL: それぞれデベロッパー オーナーの表示名とメールアドレス。

    • 省略可: OPERATOR_NAMEOPERATOR_EMAIL: オペレーター オーナーの表示名とメールアドレス。

    • 省略可: BUSINESS_NAMEBUSINESS_EMAIL: ビジネス オーナーの表示名とメールアドレス。

  4. アプリケーションに登録されているワークロードを一覧表示します。

    gcloud apphub applications workloads list \
      --application=APPLICATION_NAME
      --project=PROJECT_ID \
      --location=REGION
    

    登録されたワークロードごとに、次のような出力を取得する必要があります。

    ID               DISPLAY_NAME             WORKLOAD_REFERENCE                                                                                    CREATE_TIME
    WORKLOAD_NAME    WORKLOAD_DISPLAY_NAME    {'uri': '//compute.googleapis.com/projects/PROJECT_NUMBER/regions/REGION/instanceGroups/mig-name'}    2023-11-01T21:38:08
    

権限を付与してオペレーションを開始する

アプリケーションを作成して App Hub にリソースを登録したら、責任に基づいてユーザー アクセス権を付与し、このロジック グループを単一の単位として管理します。

  1. アクセス要件に応じて、アプリケーションに権限を付与できます。推奨されるロールの一覧については、ユーザーにアプリケーション中心のロールを付与するをご覧ください。
  2. Cloud Hub に移動して、定義したアプリケーションの統合運用ダッシュボードを表示します。このダッシュボードには、健全性、パフォーマンス、費用に関するデータが表示されます。