App Hub を設定する

このドキュメントでは、Google Cloud でアプリケーションをビルド、運用、管理するために App Hub を設定する手順について説明します。このドキュメントは、App Hub を設定して管理するユーザーを対象としています。

App Hub を設定する場合、主なタスクは次のとおりです。

  1. 新しい App Hub ホスト プロジェクトを作成するか、既存のプロジェクトをホスト プロジェクトとして使用するかを決定します。
    • 複数のホスト プロジェクトを作成する予定の場合は、同じフォルダに作成することを強くおすすめします。
    • App Hub のホスト プロジェクトは、共有 VPC ホスト プロジェクトと同じではなく、要件が同じではありません。たとえば、App Hub を使用するために共有 VPC ネットワークは必要ありません。このドキュメントでは、ホスト プロジェクトへの参照はすべて、App Hub のホスト プロジェクトを意味します。
    • ホスト プロジェクトは、それ自体以外のサービス プロジェクトにできません。
  2. ホスト プロジェクトで App Hub API を有効にします。
  3. 1 つ以上の App Hub サービス プロジェクトをホスト プロジェクトに追加します。
    • App Hub のサービス プロジェクトは、共有 VPC サービス プロジェクトと同じではなく、要件が同じではありません。このドキュメントでは、サービス プロジェクトへの参照はすべて、App Hub サービス プロジェクトを意味します。
  4. App Hub ユーザーを App Hub 管理者、App Hub 編集者、または App Hub 閲覧者として指定します。
  5. アプリケーションを作成します。
  6. アプリケーションにサービスとワークロードを登録します。

サービスとワークロード

App Hub を使用すると、ホスト プロジェクトに接続されているサービス プロジェクトのリソースを、サービスとワークロードとして利用できます。サービスとワークロードをアプリケーションに登録すると、リソースの観察とモニタリングが可能になります。次のリソースを App Hub サービスとして指定し、App Hub アプリケーションに登録できます。

  • 転送ルール
  • URL マップ
  • バックエンド サービス

個々の VM ではなく、マネージド インスタンス グループ(MIG)をワークロードとして指定し、App Hub アプリケーションに登録できます。

App Hub は、グローバル(プレビュー版)とリージョンのリソースをサポートしています。詳細については、App Hub でサポートされているリソースをご覧ください。

登録するサービスとワークロードは、アプリケーションと同じリージョンに存在する必要があります。そのため、以降の手順とコマンドは、すべてのリソースが同じリージョンにあることを前提としています。指定できるリージョンについては、ロケーションをご覧ください。

全体的な設定プロセス

App Hub を設定する手順は次のとおりです。

  1. アプリケーションに含める既存のリソースと、それらが属するプロジェクトを決定します
  2. App Hub ホスト プロジェクトを作成し、プロジェクトで App Hub API を有効にします。必要に応じて、ビジネスの組織構造に基づいて、複数のホスト プロジェクトを作成します。複数のプロジェクトを作成する場合は、新しいフォルダ内に作成することをおすすめします。
  3. サービス プロジェクトを接続します。ホスト プロジェクトを構成したら、アプリケーションに必要な基盤となるリソースを持つサービス プロジェクトをホスト プロジェクトに接続します。次の点にご注意ください。
    1. サービス プロジェクトは、ホスト プロジェクトと同じ組織に存在する必要があります。サービス プロジェクトをホスト プロジェクトに接続した後で、別の組織に移動することはできません。サービス プロジェクトを別の組織に移動するには、このドキュメントの手順に沿って、ホスト プロジェクトへのサービス プロジェクトの接続を削除または解除する必要があります。その後、サービス プロジェクトを別の組織に接続できます。
    2. 1 つのサービス プロジェクトを複数のホスト プロジェクトに接続することはできません。
    3. ホスト プロジェクトは、独自のサービス プロジェクトにできますが、他のホスト プロジェクトのサービス プロジェクトにすることはできません。
    4. サービス プロジェクトをホスト プロジェクトに接続した後は、ホスト プロジェクトにサービスまたはワークロードのクエリを実行すると、すべてのサービス プロジェクトのすべてのサービスとワークロードが自動的に返されるようになります。
  4. 複数のワークロードとサービスを整理するアプリケーションを作成します。 次の点にご注意ください。
    1. アプリケーションの名前が、ホスト プロジェクトとロケーションで一意であることを確認してください。
    2. サービス プロジェクトは、複数のアプリケーションでホスト プロジェクトに接続できますが、個々のリソースは 1 つのアプリケーションにのみ登録できます。
  5. サービスとワークロードをクエリし、アプリケーションに登録します。アプリケーションを作成したら、ホスト プロジェクトに対して使用可能なサービスとワークロードをクエリしてください。クエリは、ホスト プロジェクトと、そのホスト プロジェクトに接続されたすべてのサービス プロジェクトに対して実行されます。また、それらのプロジェクト内のすべてのサービスとワークロードも返されます。次の点にご注意ください。
    1. サービスやワークロードは 1 つのアプリケーションにのみ登録できます。
    2. 登録するワークロードとサービスは、アプリケーションと同じリージョンに存在する必要があります。
    3. 登録されたサービスとワークロードは、基盤となるインフラストラクチャ リソースの更新の影響を受けません。つまり、サービスとワークロードとして機能する基盤となるリソースを削除しても、App Hub によって関連するワークロードとサービスがアプリケーションから削除されることはありません。ワークロードまたはサービスを個別に登録解除する必要があります。

前提条件

App Hub を設定する前に、次のタスクを行ってください。

  1. ホスト プロジェクトにする既存のプロジェクトを決定するか、新しいプロジェクトを作成します。新しいプロジェクトを作成することを強くおすすめします。
  2. App Hub の Identity and Access Management(IAM)ロール(App Hub 管理者、App Hub 編集者、App Hub 閲覧者)を持つユーザーが決定されていることを確認します。

次の点にご注意ください。

  • ホスト プロジェクトには、1 つ以上のサービス プロジェクトを接続できます。
  • 1 つのサービス プロジェクトを複数のホスト プロジェクトに接続することはできません。
  • サービス プロジェクトをホスト プロジェクトに接続するユーザーには、サービス プロジェクトとホスト プロジェクトの両方での App Hub 管理者の IAM ロールが必要です。詳細については、App Hub のロールと権限をご覧ください。

App Hub を設定する

このセクションでは、サンプルの App Hub アーキテクチャを作成します。

この例では、組織に 3 つのサービス プロジェクトがあり、インフラストラクチャ リソースが次のようにプロジェクトにデプロイされています。

  • サービス プロジェクト 1 には、サービス 1 とサービス 2 の 2 つのインフラストラクチャ リソースがあります。
  • サービス プロジェクト 2 には、サービス 3、ワークロード 1、ワークロード 2 の 3 つのインフラストラクチャ リソースがあります。
  • サービス プロジェクト 3 には、サービス 4、ワークロード 3、ワークロード 4 の 3 つのインフラストラクチャ リソースがあります。

サンプルの作成に選択したプロジェクトに、このセクションで説明するリソースが含まれていることを確認するか、手順に沿ってサンプルを調整できるように準備してください。

以降のセクションでは、App Hub のサンプルを作成する手順について説明します。ホスト プロジェクトを作成してサービス プロジェクトをホスト プロジェクトに追加し、次にアプリケーションを作成してサービスとワークロードをアプリケーションに接続します。この例では 3 つのサービス プロジェクトがありますが、追加するサービス プロジェクトは増減できます。

この例では、追加するサービス プロジェクトがすでに存在し、アプリケーションに追加するサービスとワークロードが含まれていることを前提としています。サンプルを作成する前に、アプリケーションに含めるサービスとワークロードをどのサービス プロジェクトに含めるかを決定します。

App Hub を有効にする

このセクションでは、新しいホスト プロジェクトを選択または作成し、App Hub API を有効にして、組織内のユーザーに適切なロールと権限を付与します。また、サービス プロジェクトをホスト プロジェクトに接続します。

Console

  1. Google Cloud コンソールでプロジェクトの選択ページに移動します。

    プロジェクト セレクタに移動

  2. App Hub ホスト プロジェクトとして使用する Google Cloud プロジェクトを選択または作成します

  3. Enable the required API.

    Enable the API

  4. プロジェクト作成者にはオーナーロールroles/owner)が付与されます。デフォルトでは、この IAM ロールには、ほとんどの Google Cloud リソースに対する完全アクセスに必要な権限が含まれています。

    プロジェクト作成者でない場合は、プロジェクトで必要な権限を適切なプリンシパルに付与する必要があります。たとえば、プリンシパルは Google アカウント(エンドユーザーの場合)やサービス アカウント(アプリケーションとコンピューティング ワークロードの場合)になることもあります。このチュートリアルを完了するために必要な権限を取得するには、プロジェクトに対する次の IAM ロールを付与するよう管理者に依頼してください。

    1. Google Cloud コンソールの [IAM] ページに移動します。

      [IAM] に移動

    2. [アクセスを許可] をクリックします。アクセス権の付与ペインが開きます。

    3. [新しいプリンシパル] フィールドに、ホスト プロジェクトの App Hub 管理者のロール、つまり App Hub を管理するユーザーのメールアドレスを入力します。

    4. [ロールを選択] をクリックし、[フィルタ] フィールドに「App Hub」と入力します。

    5. App Hub 管理者のロールを選択し、[保存] をクリックします。

    6. 各 App Hub サービス プロジェクトで、App Hub 管理者のロールを同じユーザーに付与します。

  5. Google Cloud コンソールで、App Hub の [設定] ページに移動します。

    [設定] に移動

  6. [設定] ページで、[プロジェクトを接続] をクリックします。

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

    • プロジェクトのリストで、サービス プロジェクトとして追加するプロジェクトのチェックボックスをオンにします。
    • プロジェクトを検索し、サービス プロジェクトとして追加するプロジェクトを選択します。
  8. [選択] をクリックします。 [接続されたサービス プロジェクト] テーブルに、選択したサービス プロジェクトが表示されます。

  9. [閉じる] をクリックします。

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Google Cloud CLI の最新バージョンがインストールされていることを確認します。Cloud Shell から次のコマンドを実行します。

    gcloud components update
  3. App Hub のホスト プロジェクトとなる新しいプロジェクト HOST_PROJECT_ID を作成または選択します。

    • Google Cloud プロジェクトを作成する
      gcloud projects create HOST_PROJECT_ID
    • 作成した Google Cloud プロジェクトを選択します。
      gcloud config set project HOST_PROJECT_ID
  4. 作成したホスト プロジェクトで App Hub API を有効にします。

    gcloud services enable apphub.googleapis.com \
        --project=HOST_PROJECT_ID
    
  5. プロジェクト作成者にはオーナーロールroles/owner)が付与されます。デフォルトでは、この IAM ロールには、ほとんどの Google Cloud リソースに対する完全アクセスに必要な権限が含まれています。

    プロジェクト作成者でない場合は、プロジェクトで必要な権限を適切なプリンシパルに付与する必要があります。たとえば、プリンシパルは Google アカウント(エンドユーザーの場合)やサービス アカウント(アプリケーションとコンピューティング ワークロードの場合)になることもあります。このチュートリアルを完了するために必要な権限を取得するには、プロジェクトに対する次の IAM ロールを付与するよう管理者に依頼してください。

    1. 必要に応じて、App Hub を管理するユーザーにホスト プロジェクトの App Hub 管理者のロールを付与します。管理者ごとに次のコマンドを繰り返します。

      gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
          --member='user:HOST_PROJECT_ADMIN' \
          --role='roles/apphub.admin'
      

      HOST_PROJECT_ADMIN は、ホスト プロジェクトで App Hub 管理者のロールを持つユーザーに置き換えます。この値の形式は username@yourdomain です(例: robert.smith@example.com)。

    2. App Hub を管理するユーザーに、サービス プロジェクトの App Hub 管理者ロールを付与します。サービス プロジェクトをホスト プロジェクトに追加するには、App Hub 管理者のロールが必要です。このロールを持つユーザーは、サービス プロジェクトごとに 1 人以上必要です。1 人のユーザーが複数のサービス プロジェクトでロールを持つことができます。

      gcloud projects add-iam-policy-binding SERVICE_PROJECT_1 \
          --member='user:HOST_PROJECT_ADMIN' \
          --role='roles/apphub.admin'
      
      gcloud projects add-iam-policy-binding SERVICE_PROJECT_2 \
          --member='user:HOST_PROJECT_ADMIN' \
          --role='roles/apphub.admin'
      
      gcloud projects add-iam-policy-binding SERVICE_PROJECT_3 \
          --member='user:HOST_PROJECT_ADMIN' \
          --role='roles/apphub.admin'
      

      以下を置き換えます。

      • SERVICE_PROJECT_1: この例の 3 つのサービス プロジェクトのうち最初のプロジェクト。
      • SERVICE_PROJECT_2: この例の 3 つのサービス プロジェクトのうち 2 番目のプロジェクト。
      • SERVICE_PROJECT_3: この例の 3 つのサービス プロジェクトのうちの 3 番目のプロジェクト。
  6. サービス プロジェクトを App Hub ホスト プロジェクトに追加します。

    gcloud apphub service-projects add SERVICE_PROJECT_1 \
        --project=HOST_PROJECT_ID
    
    gcloud apphub service-projects add SERVICE_PROJECT_2 \
        --project=HOST_PROJECT_ID
    
    gcloud apphub service-projects add SERVICE_PROJECT_3 \
        --project=HOST_PROJECT_ID
    

省略可: ホスト プロジェクトの指標スコープにサービス プロジェクトを追加する

ホスト プロジェクトのアプリケーションのシステム指標を表示するには、サービス プロジェクトをリソース コンテナとしてホスト プロジェクトの指標スコープに追加します。App Hub ホスト プロジェクトは、指標スコープをホストするスコーピング プロジェクトとして機能します。Google Cloud プロジェクトの指標スコープは、ホスト プロジェクトでグラフ化してモニタリングできる時系列データのリソース コンテナのセットを定義します。リソース コンテナ、指標スコープ、スコーピング プロジェクトの詳細については、Cloud Monitoring: データモデルをご覧ください。

アプリケーションのシステム指標を表示するには、必要に応じて、モニタリング対象のサービス プロジェクトを手動でホスト プロジェクトに追加または削除する必要があります。ただし、ホスト プロジェクトを独自のサービス プロジェクトとして使用している場合、App Hub アプリケーションは同じプロジェクトに存在するため、プロジェクトを指標スコープに追加しないでください。

次の IAM ロールがあることを確認します。

Console

  1. Google Cloud コンソールで、[設定] ページに移動します。

    [設定] に移動

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

  2. [指標のスコープ] を選択します。

    [指標スコープ] タブには、現在の Google Cloud プロジェクトでモニタリングされているリソースが一覧表示されます。また、指標スコープに現在の Google Cloud プロジェクトが含まれる Google Cloud プロジェクトも一覧表示されます。

  3. Google Cloud プロジェクトを指標スコープに追加するには:

    1. [Google Cloud プロジェクト] ペインで、[プロジェクトを追加] をクリックします。
    2. [Google Cloud プロジェクトを追加] ダイアログで [プロジェクトを選択] をクリックし、モニタリングする必要なサービス プロジェクトのチェックボックスをオンにします。
    3. 変更を保存するには、[プロジェクトを追加] をクリックします。

      [設定] ページが表示され、そのページの表が更新されて選択内容が一覧表示されます。

プロジェクトを指標スコープに追加した後、変更がすべての Monitoring システム全体に反映されるまで約 60 秒かかります。

Google Cloud コンソールを使用して指標スコープを構成する方法については、指標スコープを構成するをご覧ください。

gcloud

サービス プロジェクトをモニタリング対象リソース コンテナとして App Hub ホスト プロジェクトに追加するには:

gcloud beta monitoring metrics-scopes create projects/SERVICE_PROJECT_1 \
    --project=HOST_PROJECT_ID
gcloud beta monitoring metrics-scopes create projects/SERVICE_PROJECT_2 \
    --project=HOST_PROJECT_ID
gcloud beta monitoring metrics-scopes create projects/SERVICE_PROJECT_3 \
    --project=HOST_PROJECT_ID

Google Cloud CLI を使用して指標スコープを構成する方法については、API を使用して指標スコープを構成するをご覧ください。

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

まだ作成していない場合は、サービスとワークロードのコンテナとなるアプリケーションを作成します。サービス プロジェクトのサービスとワークロードのスコープに基づいて、グローバル(プレビュー)またはリージョン アプリケーションを作成します。

  • グローバル アプリケーション(プレビュー)を使用すると、グローバル Google Cloud リソースから検出されたサービスとワークロードを登録できます。
  • リージョン アプリケーションを使用すると、リージョン Google Cloud リソースから検出されたサービスとワークロードを登録できます。

アプリケーションの作成後にアプリケーション スコープを変更することはできません。グローバルに利用可能なリソースはグローバル アプリケーションに、リージョンで利用可能なリソースはリージョン アプリケーション(プレビュー版)にのみ登録できます。詳細については、グローバルおよびリージョンの App Hub アプリケーションをご覧ください。

Console

  1. ホスト プロジェクトにいることを確認します。
  2. Google Cloud コンソールで、App Hub の [アプリケーション] ページに移動します。

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

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

  4. [アプリケーションの作成] ページの [アプリケーションのリージョンと名前を選択] ペインで、アプリケーションに登録するサービスとワークロードのスコープに基づいて、次のいずれかを行います。

    • グローバル ロケーションからサービスとワークロードを登録できるアプリケーションを作成するには、[グローバル](プレビュー)を選択します。

    • 1 つの場所からサービスとワークロードを登録できるアプリケーションを作成するには:

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

  6. 必要に応じて、次のフィールドにアプリケーションの詳細を追加します。詳しくは、このドキュメントの既存の App Hub アプリケーションを更新するをご覧ください。

  7. [作成] をクリックします。

gcloud

  1. APPLICATION_NAME という名前の新しいアプリケーションを作成し、表示名 APPLICATION_DISPLAY_NAME を設定します。

    gcloud apphub applications create APPLICATION_NAME \
      --scope-type=SCOPE_TYPE \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    以下を置き換えます。

    • APPLICATION_NAME: アプリケーションの名前。 名前にはスペースなしの小文字の英数字のみを使用します。
    • SCOPE_TYPE: アプリケーションに登録できるサービスとワークロードを定義するアプリケーションのスコープ。次の値のいずれかを使用できます。
    • REGION: アプリケーションのリージョン。--scope-type に応じて、値を us-east1 または globalプレビュー版)にします。
  2. ホスト プロジェクト内のアプリケーションを一覧表示します。

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

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

    ID                DISPLAY_NAME              CREATE_TIME
    APPLICATION_NAME  APPLICATION_DISPLAY_NAME  2023-10-31T18:33:48
    
  3. 作成したアプリケーションの詳細を取得します。

    gcloud apphub applications describe APPLICATION_NAME \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    このコマンドは、次のような YAML 形式の情報を返します。

    createTime: '2023-10-31T18:33:48.199394108Z'
    displayName: APPLICATION_DISPLAY_NAME
    name: projects/HOST_PROJECT_ID/locations/REGION/applications/APPLICATION_NAME
    scope:
      type: SCOPE_TYPE
    state: ACTIVE
    uid: [APPLICATION_UID]
    updateTime: '2023-10-31T18:33:48.343303819Z'
    
    

既存の App Hub アプリケーションを更新する

アプリケーションの作成後にアプリケーションの属性を更新することもできます。

Console

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

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

  2. アプリケーションの一覧で、更新するアプリケーションの [編集] をクリックします。

  3. 必要に応じてフィールドを編集し、[保存] をクリックします。

  4. 省略可: アプリケーションの重要性を示す [重要度] リストで、次のいずれかを選択します。

    • ミッション クリティカル
  5. 省略可: ソフトウェア ライフサイクルのステージを示す [環境] リストで、次のいずれかを選択します。

    • 本番環境
    • ステージング環境
    • 開発環境
    • テスト
  6. 省略可: デベロッパー オーナーオペレーター オーナービジネス オーナーに必要であるため、次の詳細を追加します。表示名を追加する場合は、所有者のメールアドレスを入力する必要があります。

    1. 所有者の表示名を入力します。
    2. 所有者のメールアドレスを入力します。この値は、username@yourdomain の形式(例: 222larabrown@gmail.com)にする必要があります。
  7. デベロッパー、オペレーター、ビジネス オーナーごとに、上記の手順を繰り返します。

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

gcloud

  1. criticality-typeenvironment-type、owner type の各属性でアプリケーションを更新します。

    gcloud apphub applications update APPLICATION_NAME \
      --display-name='APPLICATION_DISPLAY_NAME' \
      --criticality-type='CRITICALITY_LEVEL' \
      --environment-type='ENVIRONMENT' \
      --developer-owners=display-name=DISPLAY-NAME-DEVELOPER,email=EMAIL-DEVELOPER \
      --operator-owners=display-name=DISPLAY-NAME-OPERATOR,email=EMAIL-OPERATOR \
      --business-owners=display-name=DISPLAY-NAME-BUSINESS,email=EMAIL-BUSINESS \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    以下を置き換えます。

    • APPLICATION_DISPLAY_NAME: アプリケーションの表示名。
    • CRITICALITY_LEVEL: ビジネス運営におけるアプリケーション、サービス、ワークロードの重要度を示します。次のいずれかの値を指定します。
      • MISSION_CRITICAL
      • HIGH
      • MEDIUM
      • LOW
    • ENVIRONMENT: ソフトウェア ライフサイクルのステージを示します。次のいずれかの値を指定します。
      • PRODUCTION
      • STAGING
      • DEVELOPMENT
      • TEST
    • DISPLAY-NAME-DEVELOPERDISPLAY-NAME-OPERATORDISPLAY-NAME-BUSINESS: それぞれ、デベロッパー、オペレーター、ビジネス オーナーの表示名。
    • EMAIL-NAME-DEVELOPEREMAIL-NAME-OPERATOREMAIL-NAME-BUSINESS: それぞれ、デベロッパー、オペレーター、ビジネス オーナーのメールアドレス。これらの値は、username@yourdomain の形式にする必要があります(例: 222larabrown@gmail.com)。
  2. 属性 environment-type の値が PRODUCTION のアプリケーションを一覧表示します。

    gcloud apphub applications list \
        --filter='attributes.environment.type=PRODUCTION' \
        --project=HOST_PROJECT_ID \
        --location=REGION
    

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

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

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

インフラストラクチャ サービスとワークロードをアプリケーションに登録すると、サービスとワークロードが App Hub リソースとして登録されます。プレースホルダを使用して gcloud CLI でアプリケーションを作成する場合、3 つのサービス プロジェクトのサービスとワークロードは次のようになります。

  • サービス プロジェクト 1 には、サービス 1 とサービス 2 の 2 つのインフラストラクチャ リソースがあります。
  • サービス プロジェクト 2 には、サービス 3、ワークロード 1、ワークロード 2 の 3 つのインフラストラクチャ リソースがあります。
  • サービス プロジェクト 3 には、サービス 4、ワークロード 3、ワークロード 4 の 3 つのインフラストラクチャ リソースがあります。

Console

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

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

  2. アプリケーションの名前をクリックします。[サービスとワークロード] タブに、サービス プロジェクトに存在する登録済みのサービスとワークロードのリストが表示されます。

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

    1. [サービスとワークロード] タブで、[サービス / ワークロードを登録] をクリックします。
    2. [サービスまたはワークロードの登録] ページの [リソースの選択] ペインで、[参照] をクリックして、サービスまたはワークロードを [リソース] として選択します。
    3. [リソースの選択] ペインで、サービスまたはワークロードを選択し、[選択] をクリックします。
    4. [リソースの選択] ペインで、サービスまたはワークロードの名前を入力し、[続行] をクリックします。
    5. 必要に応じて、[属性を追加] ペインで、次のフィールドにサービスまたはワークロードの詳細を追加します。詳しくは、このドキュメントの既存の App Hub アプリケーションを更新するをご覧ください。[重要度] フィールドと [環境] フィールドの値は、アプリケーションの作成時に設定した値とは異なる値を選択できます。
    6. [続行] をクリックします。
    7. 必要に応じて、[オーナーを追加] セクションで、次のフィールドにサービスまたはワークロードのオーナーの詳細を追加します。詳しくは、このドキュメントの既存の App Hub アプリケーションを更新するをご覧ください。
    8. [Register] をクリックします。

[サービスとワークロード] タブに、登録済みのサービスまたはワークロードが表示されます。登録ステータスの詳細については、App Hub のプロパティと属性をご覧ください。

gcloud

  1. App Hub 編集者の権限を持つユーザーを追加します。

    gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
      --member='user:APP_HUB_EDITOR' \
      --role='roles/apphub.editor'
    

    APP_HUB_EDITOR を、ホスト プロジェクトで App Hub 編集者のロールを持つユーザーに置き換えます。この値の形式は username@yourdomain です(例: robert.smith@example.com)。

  2. ホスト プロジェクトに接続されているサービス プロジェクト 2 から検出されたワークロードを一覧表示します。このコマンドは、アプリケーションに登録可能なワークロードを返します。

    gcloud apphub discovered-workloads list \
      --filter='workload_properties.gcp_project=projects/SERVICE_PROJECT_2' \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    未登録の MIG を含む出力は次のようになります。

    ID                           WORKLOAD_REFERENCE                                                                                                      WORKLOAD_PROPERTIES
    [DISCOVERED_WORKLOAD_ID_1]   {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/regions/REGION/instanceGroups/testing-mig-1'}     {'gcpProject': 'projects/SERVICE_PROJECT_2', 'location': 'REGION'}
    [DISCOVERED_WORKLOAD_ID_2]   {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/regions/REGION/instanceGroups/testing-mig-2'}     {'gcpProject': 'projects/SERVICE_PROJECT_2', 'location': 'REGION'}
    

    出力からワークロード ID をコピーし、次の手順で使用します。

  3. 前の手順で作成したワークロードをアプリケーションに登録します。

    gcloud apphub applications workloads create WORKLOAD_NAME \
      --discovered-workload='projects/HOST_PROJECT_ID/locations/REGION/discoveredWorkloads/DISCOVERED_WORKLOAD_ID_2' \
      --display-name='mywebserver-deployment1' \
      --application=APPLICATION_NAME \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    以下を置き換えます。

    • WORKLOAD_NAME: ワークロードを登録するときの名前。
    • DISCOVERED_WORKLOAD_ID_2: 前の手順の出力のワークロード ID。
  4. 前の 2 つのステップを繰り返して、サービス プロジェクト 3 から必要なワークロードをフィルタして登録します。

  5. 省略可: criticality-typeenvironment-type、オーナー属性を使用してワークロードを更新できます。

    gcloud apphub applications workloads update WORKLOAD_NAME \
      --application=APPLICATION_NAME \
      --criticality-type='CRITICALITY_LEVEL' \
      --environment-type='ENVIRONMENT' \
      --developer-owners=display-name=DISPLAY-NAME-DEVELOPER,email=EMAIL-DEVELOPER \
      --operator-owners=display-name=DISPLAY-NAME-OPERATOR,email=EMAIL-OPERATOR \
      --business-owners=display-name=DISPLAY-NAME-BUSINESS,email=EMAIL-BUSINESS \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    criticality-typeenvironment-type に指定された値のいずれかを指定する必要がありますが、この値はアプリケーションの作成時に設定した値とは異なる場合があります。

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

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

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

    ID                DISPLAY_NAME                 WORKLOAD_REFERENCE                                                                                                    CREATE_TIME
    WORKLOAD_NAME     mywebserver-deployment1      {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/regions/REGION/instanceGroups/testing-mig-2'}   2023-10-31T18:34:23
    

    登録済みであるが、接続解除されたワークロードは、WORKLOAD_REFERENCE フィールドに空の値で示されます。登録ステータスの詳細については、App Hub のプロパティと属性をご覧ください。

  7. ホスト プロジェクトに接続されているサービス プロジェクト 1 の転送ルールを使用して、検出されたサービスを一覧表示します。このコマンドによって、アプリケーションに登録可能なサービスが返されます。

    gcloud apphub discovered-services list \
      --filter='service_properties.gcp_project=projects/SERVICE_PROJECT_1 AND service_reference.uri~"forwardingRules"' \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

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

    ID                           SERVICE_REFERENCE                                                                                                                    SERVICE_PROPERTIES
    [DISCOVERED_SERVICE_ID_1]    {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_1_NUMBER]/regions/REGION/forwardingRules/testing-forwarding-rule-1'}     {'gcpProject': 'projects/SERVICE_PROJECT_1', 'location': 'REGION'}
    [DISCOVERED_SERVICE_ID_2]    {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_1_NUMBER]/regions/REGION/forwardingRules/testing-forwarding-rule-2'}     {'gcpProject': 'projects/SERVICE_PROJECT_1', 'location': 'REGION'}
    

    出力からサービス ID DISCOVERED_SERVICE_ID_2 をコピーして、次の手順で使用します。

  8. 転送ルール testing-forwarding-rule-2 をサービス プロジェクト 1 にサービスとして登録します。

    gcloud apphub applications services create SERVICE_NAME \
      --discovered-service='projects/HOST_PROJECT_ID/locations/REGION/discoveredServices/DISCOVERED_SERVICE_ID_2' \
      --display-name='mywebserver-service1' \
      --application=APPLICATION_NAME \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    以下を置き換えます。

    • SERVICE_NAME: サービスを登録するときの名前。
    • DISCOVERED_SERVICE_ID_2: 前の手順の出力のサービス ID。
  9. 上記の手順を繰り返して、サービスを一覧表示し、これらのサービスをフィルタリングして、サービス プロジェクト 1、2、3 にサービスを登録します。

  10. criticality-type 属性と environment-type 属性でサービスを更新します。

    gcloud apphub applications services update SERVICE_NAME \
      --criticality-type='CRITICALITY_LEVEL' \
      --environment-type='ENVIRONMENT' \
      --application=APPLICATION_NAME \
      --project=HOST_PROJECT_ID  \
      --location=REGION
    
  11. APPLICATION_NAME アプリケーションと HOST_PROJECT_ID ホスト プロジェクトの登録済みサービスを一覧表示します。

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

    各サービスの出力は、次のようになります。

    ID                DISPLAY_NAME                 SERVICE_REFERENCE                                                                                                                  CREATE_TIME
    SERVICE_NAME      mywebserver-service1         {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_1_NUMBER]/regions/REGION/forwardingRules/testing-forwarding-rule-2'}   2023-11-01T21:38:08
    

    登録済みであるが、接続解除されているサービスは、SERVICE_REFERENCE フィールドに空の値で示されます。

  12. APPLICATION_NAME アプリケーションと HOST_PROJECT_ID ホスト プロジェクト内のサービスを、environment-type 属性が PRODUCTION に設定されているものにフィルタリングします。

    gcloud apphub applications services list \
      --filter='attributes.environment.type=PRODUCTION' \
      --application=APPLICATION_NAME \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

App Hub の設定プロセスが完了しました。

サービス プロジェクトを追加または削除する

サービス プロジェクトの接続を変更して、さまざまなインフラストラクチャ リソースをアプリケーションにグループ化して使用できます。

ホスト プロジェクト内のアプリケーションのシステム指標を表示するには、サービス プロジェクトをホスト プロジェクトに追加した後、サービス プロジェクトをリソース コンテナとしてホスト プロジェクトの指標スコープに追加します。詳細については、このドキュメントのホスト プロジェクトの指標スコープにサービス プロジェクトを追加するをご覧ください。ホスト プロジェクトからサービス プロジェクトを削除する場合は、ホスト プロジェクトの指標スコープからサービス プロジェクトをリソース コンテナとして削除することを検討してください(ホスト プロジェクトでアプリケーションのシステム指標の表示を選択した場合)。詳細については、このドキュメントのホスト プロジェクトの指標スコープからサービス プロジェクトを削除する手順をご覧ください。

Console

サービス プロジェクトをホスト プロジェクトに追加するには:

  1. Google Cloud コンソールで、App Hub の [設定] ページに移動します。

    [設定] に移動

  2. [設定] ページで、[プロジェクトを接続] をクリックします。

  3. 開かれたペインで、表示されたリストからプロジェクトを検索し、サービス プロジェクトとして追加するプロジェクトのチェックボックスをオンにします。

  4. [選択] をクリックします。 [接続されたサービス プロジェクト] テーブルに、選択したプロジェクトがホスト プロジェクトのサービス プロジェクトとして表示されます。

  5. [閉じる] をクリックします。

ホスト プロジェクトからサービス プロジェクトを削除するには:

  1. Google Cloud コンソールで、App Hub の [設定] ページに移動します。

    [設定] に移動

  2. [設定] ページで、サービス プロジェクトとして削除するプロジェクトのチェックボックスをオンにします。

  3. [プロジェクトを接続解除] をクリックします。[接続されたサービス プロジェクト] テーブルが更新され、ホスト プロジェクトに接続されたプロジェクトのみが表示されます。

gcloud

サービス プロジェクトをホスト プロジェクトに追加するには:

gcloud apphub service-projects add SERVICE_PROJECT_ID \
   --project=HOST_PROJECT_ID
SERVICE_PROJECT_ID は、ホスト プロジェクトに追加するサービス プロジェクトの名前に置き換えます。
ホスト プロジェクトからサービス プロジェクトを削除するには:
gcloud apphub service-projects remove SERVICE_PROJECT_ID \
   --project=HOST_PROJECT_ID

既存のアプリケーション、サービス、ワークロードを表示する

プロジェクト内のアプリケーションを表示したり、アプリケーション内のサービスとワークロードを一覧表示したりできます。

Console

  • プロジェクト内のアプリケーションを表示するには、Google Cloud コンソールで App Hub の [アプリケーション] ページに移動します。

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

  • サービスとワークロードを一覧表示するには:

    アプリケーション

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

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

    2. アプリケーションの名前をクリックします。アプリケーションに登録されているサービスとワークロードのリストが記載されたページが表示されます。

    3. 省略可: サービスまたはワークロードをフィルタするには:

      1. [フィルタ] フィールドで、[重要度] などのフィルタを選択します。
      2. 値として [] を選択します。
        アプリケーションに登録されている重要度の高いサービスとワークロードのリストが表示されます。

    サービスとワークロード

    1. Google Cloud コンソールで、App Hub の [Services とワークロード] ページに移動します。

      [サービスとワークロード] に移動

    2. [リージョン] リストで、サービスとワークロードを表示するリージョンを選択します。たとえば、us-east1 を選択します。
      [サービスとワークロード] ページには、us-east1 に関連付けられた、接続済みのサービス プロジェクトのすべてのサービスとワークロードが表示されます。

    3. 省略可: サービスまたはワークロードをフィルタするには:

      1. [フィルタ] フィールドで [環境] などのフィルタを選択します。
      2. 値として [本番環境] を選択します。
        アプリケーションに登録されている本番環境のサービスとワークロードのリストが表示されます。

gcloud

プロジェクト内のアプリケーションを表示するには:

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

アプリケーション内の登録済みサービスを一覧表示するには:

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

アプリケーション内の登録済みワークロードを一覧表示するには:

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

省略可: アプリケーション指標を表示する

App Hub ホスト プロジェクトで作成されたアプリケーションのシステム指標を表示できます。これらの指標は、アプリケーションのパフォーマンスと健全性のモニタリングに役立つゴールデン シグナル(トラフィック、エラー、レイテンシ、飽和度)に対応しています。

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

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

  2. アプリケーションの名前をクリックします。

    [サービスとワークロード] タブに、アプリケーションに登録されているサービスとワークロードのメタデータが表示されます。

  3. 省略可: 指標の表示期間を変更するには、期間セレクタを使用します。デフォルトの期間は 1 時間です。

  4. 登録されたサービスとワークロードのシステム指標を表示するには、bar_chart [指標] をクリックします。

    次のゴールデン シグナルを含む表が表示されます。

    • トラフィック: 選択した期間のリソースへの受信リクエスト率。
    • サーバー エラー率: 選択した期間に 5xx シリーズの HTTP エラーコードを生成する受信リクエストの平均割合。
    • P95 レイテンシ: 選択した期間に集約されたサービス リクエストのレイテンシの 95 パーセンタイル(ミリ秒単位)。
    • CPU 使用率: 指定した期間に集計されたワークロードの CPU 使用率の平均(%)。値は通常、0.0~100.0 の数値ですが、100.0 を超える場合もあります。
    • メモリ使用率: 指定した期間で集計されたワークロードのメモリ使用率の平均(%)。

省略可: グラフを使用して指標を調べる

App Hub プロジェクトの指標をグラフに表示するには、Metrics Explorer を使用します。ラベルに基づくフィルタを適用することで、グラフに表示するデータを制限できます。詳細については、Metrics Explorer でグラフを作成をご覧ください。

次の App Hub システム メタデータ ラベルをフィルタできます(プレビュー)。

  • apphub_application_host_project_id
  • apphub_application_id
  • apphub_application_location
  • apphub_workload_criticality_type
  • apphub_workload_environment_type
  • apphub_workload_id

App Hub メタデータラベルをグラフで可視化する手順は次のとおりです。他のシステム メタデータラベルと App Hub 指標についても、同じ手順を使用できます。

  1. Google Cloud コンソールで、[Metrics Explorer] ページに移動します。

    Metrics Explorer に移動

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

  2. [指標] 要素の [指標を選択] メニューを開いてフィルタバーに「VM Instance」と入力し、サブメニューを使用して特定のリソースタイプと指標を選択します。
    1. [Active resources] メニューで、[VM Instance] を選択します。
    2. [有効な指標カテゴリ] メニューで、[一般的な指標] を選択します。
    3. [Active metrics] メニューで [CPU utilization] を選択します。
    4. [適用] をクリックします。
    この指標の完全修飾名は compute.googleapis.com/instance/cpu/utilization です。
  3. データの表示方法を構成します。特定のラベルの指標のみを表示するには、次の操作を行います。
    1. [フィルタ] 要素で [フィルタを追加] をクリックし、[apphub_application_id] を選択します。値として、特定の App Hub 名を入力します。
    2. [集計] エントリで、最初のメニューを [未集計] に設定します。

    グラフの構成の詳細については、Metrics Explorer 使用時の指標の選択をご覧ください。

クリーンアップ

既存のアプリケーションをクリーンアップし、ホスト プロジェクトからサービス プロジェクトの接続を削除して、プロジェクトに関連するリソースを削除します。これにより、サービス プロジェクトのリソースの自動検出が停止します。

これを行うには、まず、アプリケーションに登録されているワークロードとサービスを削除する必要があります。

Console

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

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

  2. アプリケーションの名前をクリックします。アプリケーションに登録されているサービスとワークロードのリストが表示されます。

  3. サービスまたはワークロードの登録を解除します。

    1. [サービスとワークロード] タブの [登録済みのサービスとワークロード] セクションで、登録を解除するサービスまたはワークロードの名前をクリックします。
    2. [詳細] タブで [登録を解除] をクリックして、サービスまたはワークロードを [検出済み] リソースとして更新します。
      [サービスとワークロード] タブに、ワークロードの登録が解除されたことを示すアラートが表示されます。
    3. サービスとワークロードごとに、この手順を繰り返します。
  4. App Hub の [アプリケーション] ページに移動します。

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

  5. アプリケーションの名前をクリックします。

  6. アプリケーションの詳細が表示されているページで、[削除] をクリックします。

  7. ホスト プロジェクトからサービス プロジェクトを削除するには、このドキュメントのサービス プロジェクトの追加と削除をご覧ください。

  8. ホスト プロジェクトの指標スコープからサービス プロジェクトを削除するには:

    1. Google Cloud コンソールで、[設定] ページに移動します。

      [設定] に移動

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

    2. [指標のスコープ] を選択します。
    3. [Google Cloud プロジェクト] ペインで [プロジェクトを削除] をクリックし、確認ダイアログを完了します。

gcloud

  1. アプリケーションの登録済みワークロードを一覧表示します。

    gcloud apphub applications workloads list \
      --application=APPLICATION_NAME --project=HOST_PROJECT_ID \
      --location=REGION
    
  2. アプリケーションからワークロードの登録を解除します。

    gcloud apphub applications workloads delete WORKLOAD_NAME \
      --application=APPLICATION_NAME \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    これで、ワークロードは、アプリケーションに登録可能な検出されたワークロードになります。

  3. 先ほどのコマンドを繰り返して、残りの登録済みワークロードをアプリケーションから削除します。

  4. アプリケーションの登録済みサービスを一覧表示します。

    gcloud apphub applications services list \
      --application=APPLICATION_NAME \
      --project=HOST_PROJECT_ID \
      --location=REGION
    
  5. アプリケーションからサービスの登録を解除します。

    gcloud apphub applications services delete SERVICE_NAME \
      --application=APPLICATION_NAME \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    これで、サービスが検出されたサービスになり、アプリケーションに登録できるようになりました。

  6. 上記のコマンドを繰り返して、残りの登録済みサービスをアプリケーションから登録解除します。

  7. アプリケーションを削除します。

    gcloud apphub applications delete APPLICATION_NAME \
      --project=HOST_PROJECT_ID \
      --location=REGION
    
  8. ホスト プロジェクトからサービス プロジェクトを削除します。

    gcloud apphub service-projects remove SERVICE_PROJECT_ID \
      --project=HOST_PROJECT_ID
    
  9. 前のコマンドを繰り返して、ホスト プロジェクトからすべてのサービス プロジェクトを削除します。

  10. ホスト プロジェクトの指標スコープからサービス プロジェクトを削除します(プレビュー)。

    gcloud beta monitoring metrics-scopes delete projects/SERVICE_PROJECT_ID \
      --project=HOST_PROJECT_ID
    
  11. 前のコマンドを繰り返して、指標スコープのホスト プロジェクトからすべてのサービス プロジェクトを削除します。

次のステップ