App Hub グローバル アプリケーションを使用してインフラストラクチャ リソースをモニタリングする


App Hub を使用すると、App Hub アプリケーションを介して、 Google Cloud プロジェクトのインフラストラクチャ リソースを管理および表示できます。これらの App Hub アプリケーションを作成するには、 Google Cloud リソースを含むサービス プロジェクトを接続できる App Hub ホスト プロジェクトが必要です。

このチュートリアルでは、複数のプロジェクトにグローバル App Hub アプリケーションを設定し、アプリケーションのリソースを表示する方法について説明します。複数のサービス プロジェクトを使用して、共有 VPC 環境に内部アプリケーション ロードバランサを設定します。次に、App Hub ホスト プロジェクトのグローバル アプリケーションで、サービス プロジェクトのすべてのインフラストラクチャ リソースを App Hub サービスとワークロードとして登録してモニタリングします。

このチュートリアルは、App Hub をセットアップして管理するユーザーを対象としています。Cloud Load Balancing の使用経験が必要です。

目標

  • 複数のプロジェクトにまたがるリソースを含む Global App Hub アプリケーションを設定します。
  • アプリケーションのシステム指標を使用してリソースをモニタリングする。

料金

ロードバランスされたマネージド VM ソリューションで使用される Google Cloud リソースの費用の見積もりについては、Google Cloud 料金計算ツールで事前に計算された見積もりをご覧ください。

見積もりを出発点として使用して、デプロイの費用を計算します。見積もりを変更して、ソリューションで使用するリソースに対して行う予定の構成の変更を反映できます。

事前に計算された見積もりは、次のような特定の要因に関する前提条件に基づいています。

  • リソースがデプロイされている Google Cloud のロケーション。
  • リソースが使用される時間。

App Hub の費用について詳しくは、料金ページをご覧ください。

始める前に

このチュートリアルをセットアップする前に、プロジェクトのロールと権限を決定し、4 つの Google Cloud プロジェクトを作成します。これらのプロジェクトの 1 つが App Hub ホスト プロジェクトで、他の 3 つが App Hub サービス プロジェクトです。

必要なロールと権限

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

プロジェクト作成者でない場合は、プロジェクトで適切なプリンシパルに必要な権限を付与する必要があります。プリンシパルは、Google アカウント(エンドユーザーの場合)やサービス アカウント(アプリケーションとワークロードの場合)になることもあります。

プロジェクト、フォルダまたは組織へのアクセスを管理するために必要な権限を取得するには、アクセスを管理するリソース(プロジェクト、フォルダ、または組織)に対し、次の IAM ロールを付与するよう管理者に依頼してください。

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

App Hub ホスト プロジェクトとサービス プロジェクトを作成する

Console

  1. Google Cloud コンソールで、プロジェクト セレクタ ページに移動します。

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

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

  3. Enable the App Hub, Compute Engine, Service Management, and Service Usage APIs.

    Enable the APIs

  4. App Hub ホスト プロジェクトと同じフォルダに、3 つの新しい Google Cloud プロジェクトを作成します。これらは、App Hub ホスト プロジェクトの App Hub サービス プロジェクトです。

  5. すべての Google Cloud プロジェクトで課金が有効になっていることを確認します

  6. Enable the App Hub, Compute Engine, Service Management, and Service Usage APIs.

    Enable the APIs

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. すべての Google Cloud プロジェクトで課金が有効になっていることを確認します

  5. App Hub、Compute Engine、Service Management、Service Usage API を有効にします。

    gcloud services enable apphub.googleapis.com \
       compute.googleapis.com \
       servicemanagement.googleapis.com \
       serviceusage.googleapis.com
  6. App Hub ホスト プロジェクトの App Hub サービス プロジェクトとして、3 つの新しい Google Cloud プロジェクトを作成します。

    1. サービス プロジェクトを作成します。

      gcloud projects create SERVICE_PROJECT_1_ID

      SERVICE_PROJECT_1_ID は、サービス プロジェクト 1 の ID に置き換えます。

    2. 作成したサービス プロジェクトを選択します。

      gcloud config set project SERVICE_PROJECT_1_ID
    3. Compute Engine、Service Management、Service Usage API を有効にします。

      gcloud services enable compute.googleapis.com \
        servicemanagement.googleapis.com \
        serviceusage.googleapis.com
    4. このチュートリアルで使用する構成変数を設定します。

      export SERVICE_PROJECT_1_NUMBER= $(gcloud projects describe $(gcloud config get-value project) --format='value(projectNumber)')
    5. 上記の手順を繰り返して、SERVICE_PROJECT_2_IDSERVICE_PROJECT_3_ID を作成し、API を有効にして、構成変数を設定します。

環境を準備する

複数のプロジェクトで共有 VPC 環境の内部アプリケーション ロードバランサがすでに設定されている場合は、このドキュメントのIAM 権限を付与するセクションに進みます。

そうでない場合は、共有 VPC 環境に内部アプリケーション ロードバランサを設定するには、次の操作を行います。

ロードバランサとマネージド インスタンス グループを使用した App Hub のワークロードとサービス。
図 1. 共有 VPC 内のロードバランサとマネージド インスタンス グループを使用した App Hub のワークロードとサービス。
  1. サービス プロジェクト 1 で、共有 VPC ネットワークと 2 つのサブネットを構成します。
  2. Service Project 2 で、2 つのマネージド インスタンス グループをバックエンドとして使用して、ロードバランサのバックエンド サービスを作成します。
  3. Service Project 3 で、2 つのマネージド インスタンス グループをバックエンドとして使用して、別のロードバランサのバックエンド サービスを作成します。
  4. Service Project 1 で、ロードバランサのフロントエンド コンポーネントと URL マップを作成します。

ロードバランスされたマネージド VM ソリューションでデプロイされるトポロジのリクエスト処理フローは次のとおりです。

  1. クライアント VM は、共有 VPC ネットワークから、サービス プロジェクト 1 の内部アプリケーション ロードバランサに HTTP リクエストを送信します。

  2. ロードバランサは、URL マップとバックエンド サービス内の情報を使用して、リクエストをマネージド インスタンス グループのバックエンドに転送します。

共有 VPC ホスト プロジェクトでネットワークとサブネットを構成する

2 つのサブネット(ロードバランサのフロントエンドとバックエンド用サブネット、およびロードバランサのプロキシ用サブネット)を持つ共有 VPC ネットワークが必要です。

この例では、次のネットワーク、リージョン、サブネットを使用します。

  • ネットワーク。ネットワークの名前は lb-network です。

  • ロードバランサのフロントエンドとバックエンド用のサブネット。us-west1 リージョンの lb-frontend-and-backend-subnet という名前のサブネットは、プライマリ IP 範囲として 10.1.2.0/24 を使用します。

  • プロキシのサブネット。us-west1 リージョンの proxy-only-subnet という名前のサブネット。プライマリ IP 範囲として 10.129.0.0/23 を使用します。

このチュートリアルでは、サービス プロジェクト 1 を共有 VPC ホスト プロジェクトとして指定します。このセクションの手順はすべて、サービス プロジェクト 1 で行う必要があります。

ロードバランサのフロントエンドとバックエンドのサブネットを構成する

この手順は、新しいロードバランサを作成するたびに行う必要はありません。サービス プロジェクトが、プロキシ専用サブネットだけでなく、共有 VPC ネットワーク内のサブネットにもアクセスできることだけを確認する必要があります。

コンソール

  1. Google Cloud コンソールの [VPC ネットワーク] ページに移動します。

    [VPC ネットワーク] に移動

  2. [VPC ネットワークを作成] をクリックします。
  3. [名前] フィールドに「lb-network」と入力します。
  4. [サブネット作成モード] を [カスタム] に設定します。
  5. [新しいサブネット] セクションに、次の情報を入力します。

    • 名前: lb-frontend-and-backend-subnet

    • リージョン: us-west1

    • IP アドレス範囲: 10.1.2.0/24

  6. [完了] をクリックします。

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

gcloud

  1. プロジェクトをサービス プロジェクト 1 として設定します。

      gcloud config set project SERVICE_PROJECT_1_ID

  2. gcloud compute networks create コマンドを使用して、VPC ネットワークを作成します。

    gcloud compute networks create lb-network --subnet-mode=custom
    
  3. サブネットを us-west1 リージョン内の lb-network ネットワークに作成します。

    gcloud compute networks subnets create lb-frontend-and-backend-subnet \
        --network=lb-network \
        --range=10.1.2.0/24 \
        --region=us-west1
    

プロキシ専用サブネットを構成する

プロキシ専用サブネットは、lb-network VPC ネットワークの us-west1 リージョン内にあるすべての リージョン Envoy ベースのロードバランサで使用されます。リージョンごと、ネットワークごとにアクティブなプロキシ専用サブネットは 1 つだけです。

このネットワークの us-west1 リージョンに予約されているプロキシ専用サブネットがすでに存在する場合は、この手順を実施しないでください。

コンソール

  1. Google Cloud コンソールの [VPC ネットワーク] ページに移動します。

    [VPC ネットワーク] に移動

  2. 共有 VPC ネットワークの名前 lb-network をクリックします。
  3. [サブネット] タブをクリックし、[サブネットを追加] をクリックします。
  4. [サブネットを追加] ペインの [名前] フィールドに「proxy-only-subnet」と入力します。
  5. [リージョン] リストで [us-west1] を選択します。
  6. [目的] を [リージョン マネージド プロキシ] に設定します。
  7. [IP アドレス範囲] フィールドに「10.129.0.0/23」と入力します。
  8. [追加] をクリックします。

gcloud

gcloud compute networks subnets create コマンドを使用して、プロキシ専用サブネットを作成します。

gcloud compute networks subnets create proxy-only-subnet \
    --purpose=REGIONAL_MANAGED_PROXY \
    --role=ACTIVE \
    --region=us-west1 \
    --network=lb-network \
    --range=10.129.0.0/23

サービス プロジェクト管理者にバックエンド サブネットへのアクセス権を付与する

サービス プロジェクト管理者は lb-frontend-and-backend-subnet サブネットにアクセスして、ロードバランサのバックエンドをプロビジョニングする必要があります。

共有 VPC 管理者は、サービス プロジェクト管理者(またはサブネットを使用するリソースとバックエンドをデプロイするデベロッパー)にアクセス権を付与する必要があります。手順については、一部のサブネットのサービス プロジェクト管理者をご覧ください。

Service Project 1 でファイアウォール ルールを構成する

この例では、次のファイアウォール ルールを使用します。

  • fw-allow-health-checkロードバランスされているインスタンスに適用される上り(内向き)ルール。 Google Cloudヘルスチェック システム(130.211.0.0/2235.191.0.0/16)からのすべての TCP トラフィックを許可します。この例では、ターゲットタグ load-balanced-backend を使用して、適用するインスタンスを識別します。

  • fw-allow-proxiesロードバランスされたインスタンスに適用される上り(内向き)ルール。ロードバランサが管理するプロキシからポート 804438080 への TCP トラフィックを許可します。この例では、ターゲットタグ load-balanced-backend を使用して、適用するインスタンスを識別します。

  • fw-allow-sshロードバランスされたインスタンスに適用される上り(内向き)ルール。任意のアドレスから TCP ポート 22 への SSH 接続を許可します。このルールには、送信元の IP 範囲をより限定的に指定できます。たとえば、SSH セッションを開始するシステムの IP 範囲のみを指定できます。この例では、ターゲットタグ allow-ssh を使用して、ファイアウォール ルールが適用される仮想マシン(VM)を識別します。

これらのファイアウォール ルールがない場合は、デフォルトの上り(内向き)拒否ルールによってバックエンド インスタンスへの受信トラフィックがブロックされます。

コンソール

  1. Google Cloud コンソールで、[ファイアウォール ポリシー] ページに移動します。

    [ファイアウォール ポリシー] に移動

  2. [ファイアウォール ルールを作成] をクリックして、 Google Cloud ヘルスチェックを許可するルールを作成します。
    • 名前: fw-allow-health-check
    • ネットワーク: lb-network
    • トラフィックの方向: 上り(内向き)
    • 一致したときのアクション: 許可
    • ターゲット: 指定されたターゲットタグ
    • ターゲットタグ: load-balanced-backend
    • ソースフィルタ: IPv4 の範囲
    • 送信元 IPv4 範囲: 130.211.0.0/2235.191.0.0/16
    • プロトコルとポート:
      • 指定されたプロトコルとポートを選択します。
      • [TCP] チェックボックスをオンにして、ポート番号に「80」と入力します。
      • このルールは、ヘルスチェックに使用されているプロトコルとポートのみに制限することをおすすめします。プロトコルとポートに tcp:80 を使用すると、 Google Cloud は、ポート 80 で HTTP を使用して VM に接続できますが、ポート 443 で HTTPS を使用して VM に接続することはできません。

  3. [作成] をクリックします。
  4. [ファイアウォール ルールを作成] をクリックして、 Google Cloud ヘルスチェックを許可するルールを作成します。
    • 名前: fw-allow-proxies
    • ネットワーク: lb-network
    • トラフィックの方向: 上り(内向き)
    • 一致したときのアクション: 許可
    • ターゲット: 指定されたターゲットタグ
    • ターゲットタグ: load-balanced-backend
    • ソースフィルタ: IPv4 の範囲
    • 送信元 IPv4 範囲: 10.129.0.0/23
    • プロトコルとポート:
      • 指定されたプロトコルとポートを選択します。
      • [TCP] チェックボックスをオンにして、ポート番号に「80, 443, 8080」と入力します。
  5. [作成] をクリックします。
  6. [ファイアウォール ルールを作成] をクリックして、 Google Cloud ヘルスチェックを許可するルールを作成します。
    • 名前: fw-allow-ssh
    • ネットワーク: lb-network
    • トラフィックの方向: 上り(内向き)
    • 一致したときのアクション: 許可
    • ターゲット: 指定されたターゲットタグ
    • ターゲットタグ: allow-ssh
    • ソースフィルタ: IPv4 の範囲
    • 送信元 IPv4 範囲: 0.0.0.0/0
    • プロトコルとポート:
      • 指定されたプロトコルとポートを選択します。
      • [TCP] チェックボックスをオンにして、ポート番号に「22」と入力します。
  7. [作成] をクリックします。

gcloud

  1. Google Cloud ヘルスチェックを許可する fw-allow-health-check ファイアウォール ルールを作成します。この例では、ヘルスチェック プローバーからのすべての TCP トラフィックを許可します。ただし、必要に応じてポートの範囲を狭く構成することもできます。

    gcloud compute firewall-rules create fw-allow-health-check \
       --network=lb-network \
       --action=allow \
       --direction=ingress \
       --source-ranges=130.211.0.0/22,35.191.0.0/16 \
       --target-tags=load-balanced-backend \
       --rules=tcp
    
  2. Envoy プロキシ専用サブネットからのトラフィックがバックエンドに到達できるように fw-allow-proxies ファイアウォール ルールを作成します。

    gcloud compute firewall-rules create fw-allow-proxies \
       --network=lb-network \
       --action=allow \
       --direction=ingress \
       --source-ranges=10.129.0.0/23 \
       --target-tags=load-balanced-backend \
       --rules=tcp:80,tcp:443,tcp:8080
    
  3. ネットワーク タグ allow-ssh を使用して、VM との SSH 接続を許可する fw-allow-ssh ファイアウォール ルールを作成します。

    gcloud compute firewall-rules create fw-allow-ssh \
       --network=lb-network \
       --action=allow \
       --direction=ingress \
       --target-tags=allow-ssh \
       --rules=tcp:22
    

静的内部 IPv4 アドレスを予約する

サービス プロジェクト管理者は、共有 VPC ネットワークのサブネットに内部 IPv4 または IPv6 アドレスを予約できます。IP アドレス構成オブジェクトはサービス プロジェクト内で作成されますが、その値は選択した共有サブネットで使用可能な IPv4 アドレス範囲から取得されます。

サービス プロジェクトでスタンドアロンの内部 IP アドレスを予約するには、次の手順を完了します。

コンソール

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

    共有 VPC に移動

  3. 共有 VPC 管理者としてログインします。

  4. プロジェクト選択ツールからサービス プロジェクトを選択します。

  5. [VPC ネットワーク] > [IP アドレス] に移動します。

  6. [IP アドレス] ページで、[内部静的 IP アドレスの予約] をクリックします。

  7. [名前] フィールドに、IP アドレス名として l7-ilb-ip-address を入力します。

  8. [IP バージョン] リストで、[IPv4] を選択します。

  9. [ネットワーク] で、lb-network を選択します。

  10. [サブネットワーク] リストで、[lb-frontend-and-backend-subnet] を選択します。

  11. [予約] をクリックします。

gcloud

  1. 共有 VPC サービス プロジェクト管理者として Google Cloud CLI の認証を行っていない場合は、認証を行います。

    gcloud auth login SERVICE_PROJECT_ADMIN
    

    SERVICE_PROJECT_ADMIN は、共有 VPC サービス プロジェクト管理者の名前に置き換えます。これらの値は、username@yourdomain の形式(例: 222larabrown@gmail.com)にする必要があります。

  2. compute addresses create コマンドを使用して IP アドレスを予約します。

    
    gcloud compute addresses create l7-ilb-ip-address \
        --project SERVICE_PROJECT_1_ID \
        --subnet=lb-frontend-and-backend-subnet \
        --region=us-west1 \
        --ip-version=IPV4
    

IP アドレスの作成の詳細は、SDK のドキュメントに記載されています。

サービス プロジェクト 1 で共有 VPC を設定する

Service Project 1 に共有 VPC を設定するには、Service Project 1 を共有 VPC ホスト プロジェクトとして指定し、Service Project 2 と Service Project 3 を共有 VPC サービス プロジェクトとして指定します。このチュートリアルの後半で、サービス プロジェクト 2 と 3 で MIG バックエンドを作成するときに、サービス プロジェクト 1 で作成した同じ VPC ネットワークとサブネットを使用できます。

  1. ホスト プロジェクトを有効化します
  2. サービス プロジェクトを接続します
  3. サービス プロジェクト 2 と 3 に Compute ネットワーク ユーザーのロールroles/compute.networkUser)を付与します。

    Console

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

      [IAM] に移動

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

    3. [新しいプリンシパル] フィールドに「SERVICE_PROJECT_2_NUMBER@cloudservices.gserviceaccount.com」と入力します。

      サービスのプロジェクト番号は、プロジェクトのダッシュボードで確認できます。

      ダッシュボードに移動

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

    5. [Compute ネットワーク ユーザー] ロールを選択し、[保存] をクリックします。

    6. 上記の手順を繰り返して、サービス プロジェクト 3(SERVICE_PROJECT_3_NUMBER@cloudservices.gserviceaccount.com)に Compute Network User ロールを付与します。

    gcloud

    1. サービス プロジェクト 1 で、サービス プロジェクト 2 に Compute ネットワーク ユーザーのロールを付与します。

      gcloud projects add-iam-policy-binding SERVICE_PROJECT_1_ID \
       --member='serviceAccount:SERVICE_PROJECT_2_NUMBER@cloudservices.gserviceaccount.com' \
       --role='roles/compute.networkUser'
      

      SERVICE_PROJECT_2_NUMBER は、サービス プロジェクト 2 のプロジェクト番号に置き換えます。

    2. Service Project 1 で、Service Project 3 に Compute ネットワーク ユーザーのロールを付与します。

      gcloud projects add-iam-policy-binding SERVICE_PROJECT_1_ID \
       --member='serviceAccount::SERVICE_PROJECT_3_NUMBER@cloudservices.gserviceaccount.com' \
       --role='roles/compute.networkUser'
      

      SERVICE_PROJECT_3_NUMBER は、サービス プロジェクト 3 のプロジェクト番号に置き換えます。

サービス プロジェクト 2 にバックエンド サービスと MIG を作成する

このセクションの手順はすべて、サービス プロジェクト 2 で行う必要があります。

コンソール

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

    [インスタンス テンプレート] に移動

    1. [インスタンス テンプレートを作成] をクリックします。
    2. インスタンス テンプレート tutorial-ig-template-sp2 の [名前] を入力します。
    3. [ロケーション] セクションで、[リージョン] として [リージョン(推奨)] を選択し、[リージョン] として [us-west1(Oregon)] を選択します。
    4. [マシンの構成] セクションで、シリーズとして [N2] を選択します。
    5. [ブートディスク] が Debian GNU/Linux 12 (bookworm) などの Debian イメージに設定されていることを確認します。以降の手順では、apt-get などの Debian でのみ使用できるコマンドを使用します。[ブートディスク] を変更する必要がある場合は、[変更] をクリックします。
      1. [オペレーティング システム] で [Debian] を選択します。
      2. [バージョン] で、利用可能な Debian イメージ(Debian GNU/Linux 12 (bookworm) など)を選択します。
      3. [選択] をクリックします。
    6. [詳細オプション] をクリックして、[ネットワーキング] をクリックします。
    7. 次のネットワーク タグを入力する: allow-ssh,load-balanced-backend
    8. [ネットワーク インターフェース] セクションで、[共有ネットワーク(共有元のホスト プロジェクト: SERVICE_PROJECT_1_ID] を選択します。
    9. lb-network ネットワークから lb-frontend-and-backend-subnet サブネットを選択します。
    10. [管理] をクリックします。[管理] で、[起動スクリプト] フィールドに次のスクリプトを挿入します。
      #! /bin/bash
      apt-get update
      apt-get install apache2 -y
      a2ensite default-ssl
      a2enmod ssl
      vm_hostname="$(curl -H "Metadata-Flavor:Google" http://metadata.google.internal/computeMetadata/v1/instance/name)"
      echo "Page served from: $vm_hostname" | tee /var/www/html/index.html
      systemctl restart apache2
      
    11. [作成] をクリックします。
  2. マネージド インスタンス グループを作成します。 Google Cloud コンソールで、[インスタンス グループ] ページに移動します。

    [インスタンス グループ] に移動

    1. [インスタンス グループを作成] をクリックします。
    2. [新しいマネージド インスタンス グループ(ステートレス)] を選択します。詳細については、ステートレス MIG とステートフル MIG をご覧ください。
    3. [名前] にインスタンス グループの名前「tutorial-sp2-mig-a」を入力します。
    4. [インスタンス テンプレート] で [tutorial-ig-template-sp2] を選択します。
    5. [ロケーション] で [シングルゾーン] を選択します。
    6. [リージョン] で、us-west1 を選択します。
    7. グループ内に作成するインスタンスの数を指定します。

      この例では、[自動スケーリング] で次のオプションを指定します。

      • [自動スケーリング モード] で [Off:do not autoscale] を選択します。
      • [インスタンスの最大数] に「2」と入力します。
    8. [作成] をクリックします。

  3. リージョン バックエンド サービスを作成します。この手順の一環として、ヘルスチェックを作成して、バックエンド サービスへのバックエンドの追加も行います。 Google Cloud コンソールで、[バックエンド] ページに移動します。

    [バックエンド] に移動

    1. [バックエンド サービスを作成] をクリックします。
    2. [バックエンド サービスの作成] ダイアログで、[リージョン バックエンド サービス] の横にある [作成] をクリックします。
    3. バックエンド サービスの [名前] に「tutorial-backend-service-sp2」と入力します。
    4. [リージョン] で [us-west1] を選択します。
    5. [ロードバランサのタイプ] で、[リージョンの内部アプリケーション ロードバランサ(INTERNAL_MANAGED)] を選択します。
    6. [バックエンド タイプ] をインスタンス グループに設定します。
    7. [バックエンド] セクションで、次のフィールドを設定します。
      1. [インスタンス グループ] を tutorial-sp2-mig-a に設定します。
      2. [ポート番号] に「80」と入力します。
      3. [分散モード] を [使用率] に設定します。
      4. [完了] をクリックします。
    8. [ヘルスチェック] セクションで [ヘルスチェックを作成] をクリックし、次のフィールドを設定します。
      1. 名前: tutorial-regional-health-check
      2. プロトコル: HTTP
      3. ポート: 80
      4. [保存] をクリックします。
    9. [続行] をクリックします。
    10. [作成] をクリックします。
  4. 前の手順を繰り返してマネージド インスタンス グループ tutorial-sp2-mig-b を作成し、バックエンド サービス tutorial-backend-service-sp2 に追加します。

gcloud

  1. 作成したサービス プロジェクトを選択します。
    gcloud config set project SERVICE_PROJECT_2_ID
  2. HTTP サーバーを使用して VM インスタンス テンプレート tutorial-ig-template-sp2 を作成します。

    gcloud compute instance-templates create tutorial-ig-template-sp2 \
        --region=us-west1 \
        --network=projects/SERVICE_PROJECT_1_ID/global/networks/lb-network \
        --subnet=projects/SERVICE_PROJECT_1_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \
        --tags=allow-ssh,load-balanced-backend \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --metadata=startup-script='#! /bin/bash
        apt-get update
        apt-get install apache2 -y
        a2ensite default-ssl
        a2enmod ssl
        vm_hostname="$(curl -H "Metadata-Flavor:Google" \
        http://metadata.google.internal/computeMetadata/v1/instance/name)"
        echo "Page served from: $vm_hostname" | \
        tee /var/www/html/index.html
        systemctl restart apache2' \
        --project=SERVICE_PROJECT_2_ID
    

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

    • SERVICE_PROJECT_1_ID: 共有 VPC ホスト プロジェクトのプロジェクト ID。
    • SERVICE_PROJECT_2_ID: ロードバランサのバックエンドとバックエンド サービスが作成されるサービス プロジェクトのプロジェクト ID。
  3. リージョンにマネージド インスタンス グループ tutorial-sp2-mig-a を作成します。

    gcloud compute instance-groups managed create tutorial-sp2-mig-a \
        --region=us-west1 \
        --size=2 \
        --template=tutorial-ig-template-sp2 \
        --project=SERVICE_PROJECT_2_ID
    
  4. HTTP ヘルスチェック tutorial-regional-health-check を定義します。

    gcloud compute health-checks create http tutorial-regional-health-check \
      --region=us-west1 \
      --use-serving-port \
      --project=SERVICE_PROJECT_2_ID
    
  5. バックエンド サービス tutorial-backend-service-sp2 を定義します。

    gcloud compute backend-services create tutorial-backend-service-sp2 \
      --load-balancing-scheme=INTERNAL_MANAGED \
      --protocol=HTTP \
      --health-checks=tutorial-regional-health-check \
      --health-checks-region=us-west1 \
      --region=us-west1 \
      --project=SERVICE_PROJECT_2_ID
    
  6. gcloud compute backend-services add-backend コマンドを使用して、バックエンド サービスにバックエンドを追加します。

    gcloud compute backend-services add-backend tutorial-backend-service-sp2 \
      --balancing-mode=UTILIZATION \
      --instance-group=tutorial-sp2-mig-a \
      --instance-group-region=us-west1 \
      --region=us-west1 \
      --project=SERVICE_PROJECT_2_ID
    
  7. リージョンに別のマネージド インスタンス グループ tutorial-sp2-mig-b を作成します。

    gcloud compute instance-groups managed create tutorial-sp2-mig-b \
        --region=us-west1 \
        --size=2 \
        --template=tutorial-ig-template-sp2 \
        --project=SERVICE_PROJECT_2_ID
    
  8. バックエンド サービスにバックエンドを追加します。

    gcloud compute backend-services add-backend tutorial-backend-service-sp2 \
      --balancing-mode=UTILIZATION \
      --instance-group=tutorial-sp2-mig-b \
      --instance-group-region=us-west1 \
      --region=us-west1 \
      --project=SERVICE_PROJECT_2_ID
    

サービス プロジェクト 3 にバックエンド サービスと MIG を作成する

このセクションの手順はすべて、サービス プロジェクト 3 で行う必要があります。

コンソール

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

    [インスタンス テンプレート] に移動

    1. [インスタンス テンプレートを作成] をクリックします。
    2. インスタンス テンプレート tutorial-ig-template-sp3 の [名前] を入力します。
    3. [ロケーション] セクションで、[リージョン] として [リージョン(推奨)] を選択し、[リージョン] として [us-west1(オレゴン)] を選択します。
    4. [マシンの構成] セクションで、シリーズとして [N2] を選択します。
    5. [ブートディスク] が Debian GNU/Linux 12 (bookworm) などの Debian イメージに設定されていることを確認します。以降の手順では、apt-get などの Debian でのみ使用できるコマンドを使用します。[ブートディスク] を変更する必要がある場合は、[変更] をクリックします。
      1. [オペレーティング システム] で [Debian] を選択します。
      2. [バージョン] で、利用可能な Debian イメージ(Debian GNU/Linux 12 (bookworm) など)を選択します。
      3. [選択] をクリックします。
    6. [詳細オプション] をクリックして、[ネットワーキング] をクリックします。
    7. 次のネットワーク タグを入力する: allow-ssh,load-balanced-backend
    8. [ネットワーク インターフェース] セクションで、[共有ネットワーク(共有元のホスト プロジェクト: SERVICE_PROJECT_1_ID] を選択します。
    9. lb-network ネットワークから lb-frontend-and-backend-subnet サブネットを選択します。
    10. [管理] をクリックします。[管理] で、[起動スクリプト] フィールドに次のスクリプトを挿入します。
      #! /bin/bash
      apt-get update
      apt-get install apache2 -y
      a2ensite default-ssl
      a2enmod ssl
      vm_hostname="$(curl -H "Metadata-Flavor:Google" http://metadata.google.internal/computeMetadata/v1/instance/name)"
      echo "Page served from: $vm_hostname" | tee /var/www/html/index.html
      systemctl restart apache2
      
    11. [作成] をクリックします。
  2. マネージド インスタンス グループを作成します。 Google Cloud コンソールで、[インスタンス グループ] ページに移動します。

    [インスタンス グループ] に移動

    1. [インスタンス グループを作成] をクリックします。
    2. [新しいマネージド インスタンス グループ(ステートレス)] を選択します。詳細については、ステートレス MIG とステートフル MIG をご覧ください。
    3. [名前] にインスタンス グループの名前「tutorial-sp3-mig-a」を入力します。
    4. [インスタンス テンプレート] で [tutorial-ig-template-sp3] を選択します。
    5. [ロケーション] で [シングルゾーン] を選択します。
    6. [リージョン] で、us-west1 を選択します。
    7. グループ内に作成するインスタンスの数を指定します。

      この例では、[自動スケーリング] で次のオプションを指定します。

      • [自動スケーリング モード] で [Off:do not autoscale] を選択します。
      • [インスタンスの最大数] に「2」と入力します。
    8. [作成] をクリックします。

  3. リージョン バックエンド サービスを作成します。この手順の一環として、ヘルスチェックを作成して、バックエンド サービスへのバックエンドの追加も行います。 Google Cloud コンソールで、[バックエンド] ページに移動します。

    [バックエンド] に移動

    1. [バックエンド サービスを作成] をクリックします。
    2. [バックエンド サービスの作成] ダイアログで、[リージョン バックエンド サービス] の横にある [作成] をクリックします。
    3. バックエンド サービスの [名前] に「tutorial-backend-service-sp3」と入力します。
    4. [リージョン] で [us-west1] を選択します。
    5. [ロードバランサのタイプ] で、[リージョンの内部アプリケーション ロードバランサ(INTERNAL_MANAGED)] を選択します。
    6. [バックエンド タイプ] をインスタンス グループに設定します。
    7. [バックエンド] セクションで、次のフィールドを設定します。
      1. [インスタンス グループ] を tutorial-sp3-mig-a に設定します。
      2. [ポート番号] に「80」と入力します。
      3. [分散モード] を [使用率] に設定します。
      4. [完了] をクリックします。
    8. [ヘルスチェック] セクションで [ヘルスチェックを作成] をクリックし、次のフィールドを設定します。
      1. 名前: tutorial-regional-health-check
      2. プロトコル: HTTP
      3. ポート: 80
      4. [保存] をクリックします。
    9. [続行] をクリックします。
    10. [作成] をクリックします。
  4. 前の手順を繰り返してマネージド インスタンス グループ tutorial-sp3-mig-b を作成し、バックエンド サービス tutorial-backend-service-sp3 に追加します。

gcloud

  1. 作成したサービス プロジェクトを選択します。
    gcloud config set project SERVICE_PROJECT_3_ID
  2. HTTP サーバーを使用して VM インスタンス テンプレート tutorial-ig-template-sp3 を作成します。

    gcloud compute instance-templates create tutorial-ig-template-sp3 \
        --region=us-west1 \
        --network=projects/SERVICE_PROJECT_1_ID/global/networks/lb-network \
        --subnet=projects/SERVICE_PROJECT_1_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \
        --tags=allow-ssh,load-balanced-backend \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --metadata=startup-script='#! /bin/bash
        apt-get update
        apt-get install apache2 -y
        a2ensite default-ssl
        a2enmod ssl
        vm_hostname="$(curl -H "Metadata-Flavor:Google" \
        http://metadata.google.internal/computeMetadata/v1/instance/name)"
        echo "Page served from: $vm_hostname" | \
        tee /var/www/html/index.html
        systemctl restart apache2' \
        --project=SERVICE_PROJECT_3_ID
    

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

    • SERVICE_PROJECT_1_ID: 共有 VPC ホスト プロジェクトのプロジェクト ID。
    • SERVICE_PROJECT_3_ID: ロードバランサのバックエンドとバックエンド サービスが作成されるサービス プロジェクトのプロジェクト ID。
  3. リージョンにマネージド インスタンス グループ tutorial-sp3-mig-a を作成します。

    gcloud compute instance-groups managed create tutorial-sp3-mig-a \
        --region=us-west1 \
        --size=2 \
        --template=tutorial-ig-template-sp3 \
        --project=SERVICE_PROJECT_3_ID
    
  4. HTTP ヘルスチェック tutorial-regional-health-check を定義します。

    gcloud compute health-checks create http tutorial-regional-health-check \
      --region=us-west1 \
      --use-serving-port \
      --project=SERVICE_PROJECT_3_ID
    
  5. バックエンド サービス tutorial-backend-service-sp3 を定義します。

    gcloud compute backend-services create tutorial-backend-service-sp3 \
      --load-balancing-scheme=INTERNAL_MANAGED \
      --protocol=HTTP \
      --health-checks=tutorial-regional-health-check \
      --health-checks-region=us-west1 \
      --region=us-west1 \
      --project=SERVICE_PROJECT_3_ID
    
  6. gcloud compute backend-services add-backend コマンドを使用して、バックエンド サービスにバックエンドを追加します。

    gcloud compute backend-services add-backend tutorial-backend-service-sp3 \
      --balancing-mode=UTILIZATION \
      --instance-group=tutorial-sp3-mig-a \
      --instance-group-region=us-west1 \
      --region=us-west1 \
      --project=SERVICE_PROJECT_3_ID
    
  7. リージョンに別のマネージド インスタンス グループ tutorial-sp3-mig-b を作成します。

    gcloud compute instance-groups managed create tutorial-sp3-mig-b \
        --region=us-west1 \
        --size=2 \
        --template=tutorial-ig-template-sp3 \
        --project=SERVICE_PROJECT_3_ID
    
  8. バックエンド サービスにバックエンドを追加します。

    gcloud compute backend-services add-backend tutorial-backend-service-sp3 \
      --balancing-mode=UTILIZATION \
      --instance-group=tutorial-sp3-mig-b \
      --instance-group-region=us-west1 \
      --region=us-west1 \
      --project=SERVICE_PROJECT_3_ID
    

サービス プロジェクト 1 に URL マップと転送ルールを作成する

このセクションの手順はすべて、サービス プロジェクト 1 で行う必要があります。

コンソール

構成を開始する

  1. Google Cloud コンソールで、[ロード バランシング] ページに移動します。

    [ロード バランシング] に移動

  2. [ロードバランサを作成] をクリックします。
  3. [ロードバランサの種類] で [アプリケーション ロードバランサ(HTTP / HTTPS)] を選択し、[次へ] をクリックします。
  4. [インターネット接続または内部] で [内部] を選択し、[次へ] をクリックします。
  5. [クロスリージョンまたはシングル リージョンのデプロイ] で [リージョン ワークロードに最適] を選択し、[次へ] をクリックします。
  6. [構成] をクリックします。

基本的な構成

  1. ロードバランサの名前 tutorial-url-maps を入力します。
  2. [リージョン] リストで [us-west1] を選択します。
  3. [ネットワーク] リストで、[lb-network] を選択します([プロジェクト: SERVICE_PROJECT_1_ID] から)。

    [共有 VPC ネットワークに必要なプロキシ専用サブネット] という警告が表示されたら、ホスト プロジェクト管理者が lb-network 共有 VPC ネットワークの us-west1 リージョンに proxy-only-subnet を作成していることを確認します。このページで、プロキシ専用サブネットを表示する権限がなくても、ロードバランサの作成は成功します。

  4. ウィンドウを開いたままにして続行します。

バックエンドを構成する

  1. [バックエンドの構成] をクリックします。
  2. [プロジェクト間のバックエンド サービス] をクリックします。
  3. [プロジェクト ID] フィールドに、サービス プロジェクト 2 のプロジェクト ID を入力します。
  4. [バックエンド サービス名] フィールドに、使用するサービス プロジェクト 2 のバックエンド サービスの名前を入力します。この例では tutorial-backend-service-sp2 です。
  5. [バックエンド サービスを追加] をクリックします。
  6. [プロジェクト ID] フィールドに、サービス プロジェクト 3 のプロジェクト ID を入力します。
  7. [バックエンド サービス名] フィールドに、使用するサービス プロジェクト 3 のバックエンド サービスの名前を入力します。この例では tutorial-backend-service-sp3 です。
  8. [バックエンド サービスを追加] をクリックします。

ルーティング ルールを構成する

  1. [ルーティング ルール] をクリックします。
  2. [ホストとパスのルール] セクションの [ホスト 2] フィールドに * と入力します。
  3. [パス 2] フィールドに「/*」と入力します。
  4. [バックエンド 2] プルダウン リストから tutorial-backend-service-sp2 を選択します。
  5. [ホストとパスのルールを追加] をクリックします。
  6. [ホスト 3] フィールドに「tutorial-host」と入力します。
  7. [パス 3] フィールドに「/*」と入力します。
  8. [バックエンド 3] プルダウン リストから tutorial-backend-service-sp3 を選択します。

  9. [ホストとパスのルール] の左側の青色のチェックマークを確認して、[更新] ボタンをクリックします。

    トラフィック管理の詳細については、トラフィック管理の設定をご覧ください。

フロントエンドを構成する

プロジェクト間のサービスが機能するようにするには、フロントエンドは、バックエンド サービスの作成に使用した共有 VPC ホスト プロジェクトと同じネットワーク(lb-network)を使用する必要があります。

  1. [フロントエンドの構成] をクリックします。
  2. 転送ルールの [名前] に「l7-ilb-forwarding-rule」と入力します。
  3. [プロトコル] を HTTP に設定します。
  4. [サブネットワーク] を [lb-frontend-and-backend-subnet] に設定します。 リストで選択できる場合でも、フロントエンドにプロキシ専用サブネットは選択しないでください。
  5. [ポート] を 80 に設定します。
  6. [IP アドレス] フィールドで、デフォルトのオプション [エフェメラル(自動)] をそのまま使用します。
  7. [完了] をクリックします。

構成を確認して完了する

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

gcloud

  1. 作成したサービス プロジェクトを選択します。

    gcloud config set project SERVICE_PROJECT_1_ID

  2. URL マップ tutorial-url-maps を作成し、デフォルト サービスを Service Project 1 に作成されたバックエンド サービスに設定します。

    gcloud compute url-maps create tutorial-url-maps \
        --default-service=projects/SERVICE_PROJECT_2_ID/regions/us-west1/backendServices/tutorial-backend-service-sp2 \
        --region=us-west1 \
        --project=SERVICE_PROJECT_1_ID
    

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

    • SERVICE_PROJECT_2_ID: ロードバランサのバックエンドとバックエンド サービスが作成されるサービス プロジェクト 2 のプロジェクト ID。
    • SERVICE_PROJECT_1_ID: ロードバランサのフロントエンドが作成されるサービス プロジェクト 1 のプロジェクト ID。
  3. ターゲット プロキシ tutorial-http-proxy を作成します。

    gcloud compute target-http-proxies create tutorial-http-proxy \
      --url-map=tutorial-url-maps \
      --url-map-region=us-west1 \
      --region=us-west1 \
      --project=SERVICE_PROJECT_1_ID
    
  4. HTTP トラフィックを処理する転送ルール l7-ilb-forwarding-rule を作成します。プロジェクト間のサービスが機能するようにするには、転送ルールは、バックエンド サービスの作成に使用した共有 VPC ホスト プロジェクトと同じネットワーク(lb-network)を使用する必要があります。

    gcloud compute forwarding-rules create l7-ilb-forwarding-rule \
      --load-balancing-scheme=INTERNAL_MANAGED \
      --network=projects/SERVICE_PROJECT_1_ID/global/networks/lb-network \
      --subnet=projects/SERVICE_PROJECT_1_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \
      --address=l7-ilb-ip-address \
      --ports=80 \
      --region=us-west1 \
      --target-http-proxy=tutorial-http-proxy \
      --target-http-proxy-region=us-west1 \
      --project=SERVICE_PROJECT_1_ID
    
  5. バックエンド サービスにトラフィックを送信するには、URL マップをバックエンド サービスにリンクします。詳細については、URL マップの使用をご覧ください。

    1. Service Project 2 のバックエンド サービス tutorial-backend-service-sp2 を、URL マップ tutorial-url-maps とパスマッチャー名 tutorial-path-matcher-sp2 にリンクします。

      gcloud compute url-maps add-path-matcher tutorial-url-maps \
         --path-matcher-name=tutorial-path-matcher-sp2 \
         --default-service=projects/SERVICE_PROJECT_2_ID/regions/us-west1/backendServices/tutorial-backend-service-sp2 \
         --region=us-west1
      
    2. Service プロジェクト 3 のバックエンド サービス tutorial-backend-service-sp3 を、URL マップ tutorial-url-maps とパスマッチャー名 tutorial-path-matcher-sp3 にリンクします。パスマッチャーが新しいホストルールに関連付けられるように、指定されたホストを含む新しいホストルール tutorial-host を追加します。

      gcloud compute url-maps add-path-matcher tutorial-url-maps \
        --path-matcher-name=tutorial-path-matcher-sp3 \
        --default-service=projects/SERVICE_PROJECT_3_ID/regions/us-west1/backendServices/tutorial-backend-service-sp3 \
        --region=us-west1 \
        --new-hosts=tutorial-host
      

ロードバランサをテストする

ロードバランサをテストするには、まず、サンプル クライアント VM を作成します。次に、VM との SSH セッションを確立し、この VM からロードバランサにトラフィックを送信します。

テスト用の VM インスタンスを作成する

クライアントは、共有 VPC ホスト プロジェクトまたは接続されたサービス プロジェクトのいずれかに配置できます。この例では、共有 VPC ホスト プロジェクトとして指定されているサービス プロジェクト 1 にクライアント VM をデプロイして、ロードバランサが動作していることをテストします。クライアントは、同じ共有 VPC ネットワークを使用し、ロードバランサと同じリージョンに存在する必要があります。

このセクションの手順はすべて、サービス プロジェクト 2 で行う必要があります。

コンソール

  1. Google Cloud コンソールで、[VM インスタンス] ページに移動します。

    [VM インスタンス] に移動

  2. [インスタンスを作成] をクリックします。

  3. [名前] フィールドに「client-vm」と入力します。

  4. [ゾーン] を us-west1-b に設定します。

  5. [詳細オプション] をクリックして、[ネットワーキング] をクリックします。

  6. ネットワーク タグ allow-ssh,load-balanced-backend を入力します。

  7. [ネットワーク インターフェース] セクションで、[共有ネットワーク(共有元のホスト プロジェクト: SERVICE_PROJECT_1_ID] を選択します。

  8. lb-network ネットワークから lb-frontend-and-backend-subnet サブネットを選択します。

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

gcloud

テスト用の VM インスタンスを作成する

gcloud compute instances create client-vm \
    --image-family=debian-12 \
    --image-project=debian-cloud \
    --subnet=projects/SERVICE_PROJECT_1_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \
    --zone=us-west1-b \
    --tags=allow-ssh \
    --project=SERVICE_PROJECT_2_ID

ロードバランサにトラフィックを送信する

SSH を使用して、作成したインスタンスに接続し、内部アプリケーション ロードバランサの転送ルールの IP アドレスを介してバックエンドの HTTP(S) サービスに到達可能であることと、バックエンド インスタンス間でトラフィックのロード バランシングが行われていることをテストします。

  1. ロードバランサの IP アドレスの値を取得します。

    gcloud compute addresses list --filter="name=( 'l7-ilb-ip-address')"
    

    次のような出力が表示されます。

    NAME: l7-ilb-ip-address
    ADDRESS/RANGE: 10.1.2.2
    TYPE: INTERNAL
    PURPOSE: GCE_ENDPOINT
    NETWORK:
    REGION: us-west1
    SUBNET: lb-frontend-and-backend-subnet
    STATUS: IN_USE
    

    次の手順で使用するサービス ADDRESS/RANGE10.1.2.2 など)を出力からコピーします。

  2. SSH を使用してクライアント インスタンスに接続します。

    gcloud compute ssh client-vm \
       --zone=us-west1-b \
       --project=SERVICE_PROJECT_2_ID
    
  3. ロードバランサの IP アドレスがホスト名を提供していることを確認します。

    1. サービス プロジェクト 2 で IP アドレスがホスト名を提供していることを確認します。

      curl 10.1.2.2
      

      次のような出力が表示されます。

      Page served from: tutorial-sp2-mig-a-10xk
      

    2. サービス プロジェクト 3 で IP アドレスがホスト名を提供していることを確認します。

      curl -H "Host: tutorial-host" 10.1.2.2
      

      次のような出力が表示されます。

      Page served from: tutorial-sp3-mig-a-3d5h
      

IAM 権限を付与

App Hub ホスト プロジェクトとサービス プロジェクトに適切な IAM ロールと権限を付与します。

Console

  1. Google Cloud コンソールで、プロジェクト セレクタ ページに移動します。

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

  2. App Hub ホスト プロジェクトを選択します

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

    [IAM] に移動

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

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

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

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

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

gcloud

  1. App Hub を使用するユーザーにロールを付与するには、必要に応じて IAM ロールを置き換えて、次のコマンドを繰り返します。詳細については、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 ホスト プロジェクトで App Hub 管理者のロールを持つユーザーに置き換えます。この値の形式は username@yourdomain です(例: 222larabrown@gmail.com)。

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

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

    SERVICE_PROJECT_ID は、サービス プロジェクトの ID に置き換えます。

サービス プロジェクトを接続する

サービス プロジェクトは、App Hub アプリケーションに登録できるインフラストラクチャ リソースを含む Google Cloud プロジェクトです。詳細については、サービス プロジェクトをご覧ください。リソースをデプロイしたサービス プロジェクトを App Hub ホスト プロジェクトに接続します。

Console

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

    [設定] に移動

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

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

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

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

gcloud

  1. サービス プロジェクト 1、2、3 を App Hub ホスト プロジェクトに接続します。

    gcloud apphub service-projects add SERVICE_PROJECT_1_ID \
      --project=HOST_PROJECT_ID
    
    gcloud apphub service-projects add SERVICE_PROJECT_2_ID \
      --project=HOST_PROJECT_ID
    
    gcloud apphub service-projects add SERVICE_PROJECT_3_ID \
      --project=HOST_PROJECT_ID
    
  2. App Hub サービス プロジェクトが App Hub ホスト プロジェクトに接続されていることを確認します。

    gcloud apphub service-projects list --project=HOST_PROJECT_ID
    

サービス プロジェクトを App Hub ホスト プロジェクトに接続すると、接続されたサービス プロジェクトのすべての Google Cloud リソースを、検出された App Hub サービスとワークロードとして表示できます。検出されたサービスとワークロードを表示する方法については、既存のアプリケーション、サービス、ワークロードを表示するをご覧ください。

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

サービスとワークロードのコンテナとなるアプリケーションを作成します。アプリケーションを作成するときに、リソースを登録するスコープのタイプやロケーションなどの不変のプロパティと、重要度や環境などの変数属性を割り当てることができます。変数属性を使用して、アプリケーションをフィルタできます。詳細については、プロパティと属性をご覧ください。

このチュートリアルでは、グローバル アプリケーションとリージョン アプリケーションを作成して、単一のアプリケーションでグローバル リソースとリージョン リソースを管理します。特定のリージョンのリソースをグループ化するには、リージョン アプリケーションを作成して、これらのリソースを登録します。リージョン アプリケーションの作成方法については、App Hub を設定するをご覧ください。

Console

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

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

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

  4. [アプリケーションを作成] ページの [アプリケーションのリージョンと名前を選択] ペインで、[グローバル] を選択します。

  5. [アプリケーション名] フィールドに「tutorial-application」と入力します。この名前は一意の識別子であり、アプリケーションの作成後に変更することはできません。

  6. 表示名 Tutorial を入力し、[続行] をクリックします。これは、更新可能なユーザー フレンドリーな名前です。詳細については、既存のアプリケーションを更新するをご覧ください。

  7. [属性を追加] ペインの [重要度] リストで、[] を選択します。重要度は、アプリケーション、サービス、またはワークロードが、ビジネス運営にとってどの程度重要であるかを示します。

  8. [環境] フィールドで、ソフトウェア ライフサイクルのステージを示すために [本番環境] を選択します。

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

  10. [オーナーを追加] ペインで、デベロッパー オーナーオペレーター オーナービジネス オーナーの次の詳細を追加します。表示名を追加する場合は、所有者のメールアドレスを入力する必要があります。

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

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

新しいアプリケーションが作成され、[アプリケーション] ページに表示されます。App Hub アプリケーションで検出されたリソースとして使用できるのは、転送ルール、URL マップ、バックエンド サービス、マネージド インスタンス グループ(MIG)のみです。詳細については、コンセプトとデータモデルをご覧ください。

gcloud

  1. 作成した App Hub ホスト プロジェクトを選択します。

    gcloud config set project HOST_PROJECT_ID
  2. リージョン globaltutorial-application という名前の新しいアプリケーションを作成し、表示名 Tutorial を設定します。このアプリケーション名 tutorial-application は固有の識別子であり、アプリケーションの作成後に変更することはできません。表示名は、更新可能なわかりやすい名前です。Tutorial詳細については、既存のアプリケーションを更新するをご覧ください。

    gcloud apphub applications create tutorial-application \
        --display-name='Tutorial' \
        --scope-type=GLOBAL \
        --project=HOST_PROJECT_ID \
        --location=global
    
  3. App Hub ホスト プロジェクト内のアプリケーションを一覧表示します。

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

    次のような出力が表示されます。

    ID                    DISPLAY_NAME  CREATE_TIME
    tutorial-application  Tutorial      2023-10-31T18:33:48
    
  4. criticality-typeenvironment-type、owner の各属性でアプリケーションを更新します。

    gcloud apphub applications update tutorial-application \
      --criticality-type='HIGH' \
      --environment-type='PRODUCTION' \
      --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=global
    

    以下を置き換えます。

    • DISPLAY-NAME-DEVELOPERDISPLAY-NAME-OPERATORDISPLAY-NAME-BUSINESS: それぞれ、デベロッパー、オペレーター、ビジネス オーナーの表示名。
    • EMAIL-NAME-DEVELOPEREMAIL-NAME-OPERATOREMAIL-NAME-BUSINESS: それぞれ、デベロッパー、オペレーター、ビジネス オーナーのメールアドレス。これらの値は、username@yourdomain の形式(例: 222larabrown@gmail.com)にする必要があります。

    注:

    • criticality-type: ビジネス運営におけるアプリケーション、サービス、ワークロードの重要度を示します。
    • environment-type: ソフトウェア ライフサイクルのステージを示します。
  5. 作成したアプリケーションの詳細を取得します。

    gcloud apphub applications describe tutorial-application \
      --project=HOST_PROJECT_ID \
      --location=global
    

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

    attributes:
    businessOwners:
    – displayName: [DISPLAY-NAME-BUSINESS]
      email: [EMAIL-BUSINESS]
    criticality:
      type: HIGH
    developerOwners:
    – displayName: [DISPLAY-NAME-DEVELOPER]
      email: [EMAIL-DEVELOPER]
    environment:
      type: PRODUCTION
    operatorOwners:
    – displayName: [DISPLAY-NAME-OPERATOR]
      email: [EMAIL-OPERATOR]
    createTime: '2023-10-31T18:33:48.199394108Z'
    displayName: Tutorial
    name: projects/HOST_PROJECT_ID/locations/global/applications/tutorial-application
    scope:
      type: REGIONAL
    state: ACTIVE
    uid: 9d991a9d-5d8a-4c0d-b5fd-85e39fb58c73
    updateTime: '2023-10-31T18:33:48.343303819Z'
    

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

サービスとワークロードを登録すると、追加されたリソースをモニタリングできるアプリケーションに追加されます。

Console

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

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

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

  3. サービスの登録:

    1. [サービスとワークロード] タブで、[サービス/ワークロードを登録] をクリックします。
    2. [サービスまたはワークロードの登録] ページの [リソースの選択] ペインで、[参照] をクリックして、サービスまたはワークロードを [リソース] として選択します。
    3. [リソースの選択] ペインで、サービスの名前tutorial-backend-service-sp2」を選択し、[選択] をクリックします。
    4. [リソースの選択] ペインで、リソースの名前 tutorial-service-backend-sp2 を入力します。
    5. 表示名 Backend service (SP2) を入力し、[続行] をクリックします。
    6. [属性を追加] ペインの [重要度] リストで、アプリケーションの重要性を示すために [] を選択します。
    7. [環境] フィールドで、ソフトウェア ライフサイクルのステージを示すために [本番環境] を選択します。
    8. [続行] をクリックします。
    9. [オーナーを追加] ペインで、デベロッパー オーナーオペレーター オーナービジネス オーナーに必要であるため、次の詳細を追加します。表示名を追加する場合は、所有者のメールアドレスを入力する必要があります。
      1. 所有者の表示名を入力します。
      2. オーナーのメールアドレスを入力します。この値は、username@yourdomain の形式(例: 222larabrown@gmail.com)にする必要があります。
    10. デベロッパー、オペレーター、ビジネス オーナーごとにこの手順を繰り返します。
    11. [Register] をクリックします。

    [サービスとワークロード] タブの [登録されているサービスとワークロード] セクションで、追加された新しいサービスを確認できます。

  4. 前の手順を繰り返して、他のサービスを tutorial-service-backend-sp3tutorial-service-forwarding-ruletutorial-service-url-map として登録します。
  5. 次の例外を除き、前述のサービスの登録手順を繰り返して、ワークロードを登録します。
    1. [サービスまたはワークロードの登録] ペインの [サービスまたはワークロードの選択] セクションで、ワークロードの [名前]「tutorial-sp2-mig-a」を選択し、[続行] をクリックします。
    2. [リソースの選択] ペインで、リソースの名前 tutorial-workload-sp2-mig-a を入力します。
    3. 表示名 Instance group - A (SP2) を入力し、[続行] をクリックします。
  6. 前の手順を繰り返して、他のワークロードを tutorial-workload-sp2-mig-atutorial-workload-sp2-mig-btutorial-workload-sp3-mig-atutorial-workload-sp3-mig-b として登録します。

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 ホスト プロジェクトで App Hub 編集者のロールを持つユーザーに置き換えます。この値の形式は username@yourdomain です(例: 222larabrown@gmail.com)。

  2. App Hub ホスト プロジェクトで検出されたすべてのサービスを一覧表示します。このコマンドによって、アプリケーションに登録可能なサービスが返されます。

    gcloud apphub discovered-services list \
        --project=HOST_PROJECT_ID \
        --location=us-west1
    

    次のような出力が表示されます。

    ID                             SERVICE_REFERENCE                                                                                                                      SERVICE_PROPERTIES
    BACKEND_SERVICE_SP2_ID      {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/regions/us-west1/backendServices/tutorial-backend-service-sp2'}  {'gcpProject': 'projects/SERVICE_PROJECT_2_ID', 'location': 'us-west1'}
    BACKEND_SERVICE_SP3_ID      {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_3_NUMBER]/regions/us-west1/backendServices/tutorial-backend-service-sp3'}  {'gcpProject': 'projects/SERVICE_PROJECT_3_ID', 'location': 'us-west1'}
    FORWARDING_RULE_SERVICE_ID  {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_1_NUMBER]/regions/us-west1/forwardingRules/l7-ilb-forwarding-rule'}        {'gcpProject': 'projects/SERVICE_PROJECT_1_ID', 'location': 'us-west1'}
    URL_MAP_SERVICE_ID          {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_1_NUMBER]/regions/us-west1/urlMaps/tutorial-url-maps'}                     {'gcpProject': 'projects/SERVICE_PROJECT_1_ID', 'location': 'us-west1'}
    

    次のステップで使用するサービス IDBACKEND_SERVICE_SP2_ID など)を出力からコピーします。

  3. 前の手順で取得したサービスをアプリケーションに登録します。前の手順の出力フィールドからサービス ID をコピーします。

    gcloud apphub applications services create tutorial-service-backend-sp2 \
        --discovered-service='projects/HOST_PROJECT_ID/locations/us-west1/discoveredServices/BACKEND_SERVICE_SP2_ID' \
        --display-name='Backend service (SP2)' \
        --criticality-type='HIGH' \
        --environment-type='PRODUCTION' \
        --application=tutorial-application \
        --project=HOST_PROJECT_ID \
        --location=global
    
    gcloud apphub applications services create tutorial-service-backend-sp3 \
        --discovered-service='projects/HOST_PROJECT_ID/locations/us-west1/discoveredServices/BACKEND_SERVICE_SP3_ID' \
        --display-name='Backend service (SP3)' \
        --criticality-type='HIGH' \
        --environment-type='PRODUCTION' \
        --application=tutorial-application \
        --project=HOST_PROJECT_ID \
        --location=global
    
    gcloud apphub applications services create tutorial-service-forwarding-rule \
        --discovered-service='projects/HOST_PROJECT_ID/locations/us-west1/discoveredServices/FORWARDING_RULE_SERVICE_ID' \
        --display-name='Forwarding rule' \
        --criticality-type='HIGH' \
        --environment-type='PRODUCTION' \
        --application=tutorial-application \
        --project=HOST_PROJECT_ID \
        --location=global
    
    gcloud apphub applications services create tutorial-service-url-map \
        --discovered-service='projects/HOST_PROJECT_ID/locations/us-west1/discoveredServices/URL_MAP_SERVICE_ID' \
        --display-name='URL map' \
        --criticality-type='HIGH' \
        --environment-type='PRODUCTION' \
        --application=tutorial-application \
        --project=HOST_PROJECT_ID \
        --location=global
    

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

    • BACKEND_SERVICE_SP2_ID: 登録する Service Project 2 のバックエンド サービスのサービス ID
    • BACKEND_SERVICE_SP3_ID: 登録する Service Project 3 のバックエンド サービスのサービス ID
    • FORWARDING_RULE_SERVICE_ID: 登録する Service Project 1 の転送ルールのサービス ID
    • URL_MAP_SERVICE_ID: 登録する Service Project 1 の URL マップのサービス ID
  4. アプリケーション内の登録済みサービスをすべて一覧表示します。

    gcloud apphub applications services list \
        --application=tutorial-application \
        --project=HOST_PROJECT_ID \
        --location=global
    

    次のような出力が表示されます。

    ID                               DISPLAY_NAME      SERVICE_REFERENCE                                                                                                                       CREATE_TIME
    tutorial-service-backend-sp2     Backend service   {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/regions/us-west1/backendServices/tutorial-backend-service-sp2'}   2024-02-13T00:31:45
    tutorial-service-backend-sp3     Backend service   {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_3_NUMBER]/regions/us-west1/backendServices/tutorial-backend-service-sp3'}   2024-02-13T00:31:45
    tutorial-service-forwarding-rule Forwarding rule   {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_1_NUMBER]/regions/us-west1/forwardingRules/l7-ilb-forwarding-rule'}         2024-02-13T00:31:45
    tutorial-service-url-map         URL map           {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_1_NUMBER]/regions/us-west1/urlMaps/tutorial-url-maps'}                      2024-02-13T00:31:45
    
    登録されているが切断されたサービスは、SERVICE_REFERENCE フィールドの空の値で表されます。登録ステータスの詳細については、App Hub のプロパティと属性をご覧ください。

  5. App Hub ホスト プロジェクトで検出されたすべてのワークロードを一覧表示します。このコマンドによって、アプリケーションに登録可能なワークロードが返されます。

    gcloud apphub discovered-workloads list \
        --project=HOST_PROJECT_ID \
        --location=global
    

    次のような出力が表示されます。

    ID                            WORKLOAD_REFERENCE                                                                                                          WORKLOAD_PROPERTIES
    INSTANCE_GROUP_SP3_A_ID    {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_3_NUMBER]/zones/us-west1-a/instanceGroups/tutorial-sp3-mig-a'}  {'gcpProject': 'projects/SERVICE_PROJECT_3_ID', 'location': 'us-west1'}
    INSTANCE_GROUP_SP3_B_ID    {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_3_NUMBER]/zones/us-west1-a/instanceGroups/tutorial-sp3-mig-b'}  {'gcpProject': 'projects/SERVICE_PROJECT_3_ID', 'location': 'us-west1'}
    INSTANCE_GROUP_SP2_A_ID    {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/zones/us-west1-a/instanceGroups/tutorial-sp2-mig-a'}  {'gcpProject': 'projects/SERVICE_PROJECT_2_ID', 'location': 'us-west1'}
    INSTANCE_GROUP_SP2_B_ID    {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/zones/us-west1-a/instanceGroups/tutorial-sp2-mig-b'}  {'gcpProject': 'projects/SERVICE_PROJECT_2_ID', 'location': 'us-west1'}
    
    次の手順で使用するワークロード ID を出力からコピーします。

  6. 前の手順で作成したワークロードをアプリケーションに登録します。前の手順の出力フィールドからワークロード ID をコピーします。

    gcloud apphub applications workloads create tutorial-workload-sp3-mig-a \
        --discovered-workload='projects/HOST_PROJECT_ID/locations/us-west1/discoveredWorkloads/INSTANCE_GROUP_SP3_A_ID' \
        --display-name='Workload instance group (SP3-A)' \
        --application=tutorial-application \
        --project=HOST_PROJECT_ID \
        --location=global
    
    gcloud apphub applications workloads create tutorial-workload-sp3-mig-b \
        --discovered-workload='projects/HOST_PROJECT_ID/locations/us-west1/discoveredWorkloads/INSTANCE_GROUP_SP3_B_ID' \
        --display-name='Workload instance group (SP3-B)' \
        --application=tutorial-application \
        --project=HOST_PROJECT_ID \
        --location=global
    
    gcloud apphub applications workloads create tutorial-workload-sp2-mig-a \
        --discovered-workload='projects/HOST_PROJECT_ID/locations/us-west1/discoveredWorkloads/INSTANCE_GROUP_SP2_A_ID' \
        --display-name='Workload instance group (SP2-A)' \
        --application=tutorial-application \
        --project=HOST_PROJECT_ID \
        --location=global
    
    gcloud apphub applications workloads create tutorial-workload-sp2-mig-b \
        --discovered-workload='projects/HOST_PROJECT_ID/locations/us-west1/discoveredWorkloads/INSTANCE_GROUP_SP2_B_ID' \
        --display-name='Workload instance group (SP2-B)' \
        --application=tutorial-application \
        --project=HOST_PROJECT_ID \
        --location=global
    

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

    • INSTANCE_GROUP_SP3_A_IDINSTANCE_GROUP_SP3_B_ID: 登録する Service Project 3 のマネージド インスタンス グループのワークロード ID
    • INSTANCE_GROUP_SP2_A_IDINSTANCE_GROUP_SP2_B_ID: 登録する Service Project 2 のマネージド インスタンス グループのワークロード ID
  7. アプリケーションに登録されているすべてのワークロードを一覧表示します。

    gcloud apphub applications workloads list \
        --application=tutorial-application \
        --project=HOST_PROJECT_ID \
        --location=global
    

    次のような出力が表示されます。

    ID                              DISPLAY_NAME                      SERVICE_REFERENCE                                                                                                            CREATE_TIME
    tutorial-workload-sp3-mig-a     Workload instance group (SP3-A)   {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_3_NUMBER]/zones/us-west1-a/instanceGroups/tutorial-sp3-mig-a'}   2024-02-13T00:31:45
    tutorial-workload-sp3-mig-b     Workload instance group (SP3-B)   {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_3_NUMBER]/zones/us-west1-a/instanceGroups/tutorial-sp3-mig-b'}   2024-02-13T00:31:45
    tutorial-workload-sp2-mig-a     Workload instance group (SP2-A)   {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/zones/us-west1-a/instanceGroups/tutorial-sp2-mig-a'}   2024-02-13T00:31:45
    tutorial-workload-sp2-mig-b     Workload instance group (SP2-B)   {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/zones/us-west1-a/instanceGroups/tutorial-sp2-mig-b'}   2024-02-13T00:31:45
    
    登録されているが切断されたワークロードは、WORKLOAD_REFERENCE フィールドの空の値で表されます。登録ステータスの詳細については、App Hub のプロパティと属性をご覧ください。

すべてのサービスとワークロードを表示する

App Hub ホスト プロジェクトに接続されているサービス プロジェクトから、サービスとワークロードの詳細を表示できます。

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

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

    接続された App Hub サービス プロジェクトのすべてのサービスとワークロードが表示されます。

  2. [リージョン] リストで [global] を選択します。Workload instance group ワークロードに、[App Hub タイプ]、[重要度]、[登録先] などの詳細が表示されます。

  3. 状態に基づいてサービスまたはワークロードをフィルタするには:

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

アプリケーション指標を表示する

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

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

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

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

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

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

クリーンアップ

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

App Hub リソースを削除する

Console

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

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

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

  3. [サービスとワークロード] タブの [登録済みのサービスとワークロード] セクションで、サービスの名前をクリックします。

  4. [サービスとワークロード] ページで、[登録を解除する] をクリックします。

    サービスの登録が解除されたことを示すアラートが表示されます。

  5. [サービスとワークロード] タブの [登録済みのサービスとワークロード] セクションで、ワークロードの名前をクリックします。

  6. [詳細] タブで、[登録を解除する] をクリックします。

    ワークロードの登録が解除されたことを示すアラートが表示されます。

  7. App Hub の [アプリケーション] ページに移動します。

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

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

  9. [tutorial-application] ページで、[削除] をクリックします。

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

    [設定] に移動

  11. [設定] ページで、App Hub ホスト プロジェクトから削除するサービス プロジェクトのチェックボックスをオンにします。

  12. [プロジェクトを接続解除] をクリックします。

gcloud

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

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

    gcloud apphub applications services delete SERVICE_NAME \
      --application=tutorial-application --project=HOST_PROJECT_ID \
      --location=global
    

    SERVICE_NAME は、実際のサービス名に置き換えます。これで、アプリケーションに登録可能な検出されたサービスになります。

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

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

    gcloud apphub applications workloads delete WORKLOAD_NAME \
      --application=tutorial-application --project=HOST_PROJECT_ID \
      --location=global
    

    WORKLOAD_NAME は、使用するワークロードの名前に置き換えます。これで、ワークロードは、アプリケーションに登録可能な検出されたワークロードになります。

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

    gcloud apphub applications delete tutorial-application \
      --project=HOST_PROJECT_ID \
      --location=global
    
  6. App Hub ホスト プロジェクトからサービス プロジェクトを削除します。

    gcloud apphub service-projects remove SERVICE_PROJECT_ID \
      --project=HOST_PROJECT_ID
    

    SERVICE_PROJECT_ID は、サービス プロジェクト 1、2、3 のプロジェクト ID に置き換えます。

Deployment を削除する

このソリューションが不要になった場合は、このソリューションで作成したリソースに対する課金が継続しないように、すべてのリソースを削除します。

詳細については、ロードバランサの設定をクリーンアップするをご覧ください。

プロジェクトの削除

Console

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

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

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

gcloud

Google Cloud プロジェクトを削除します。

gcloud projects delete PROJECT_ID

PROJECT_ID は、ホスト プロジェクト ID またはサービス プロジェクト ID に置き換えます。

次のステップ