単一のプロジェクトを使用して App Hub アプリケーションを作成する


このチュートリアルでは、単一のプロジェクトで App Hub アプリケーションを設定する方法について説明します。App Hub ホスト プロジェクトとして機能するサービス プロジェクトで、ロードバランスされたマネージド インスタンス グループ(MIG)をデプロイします。次に、App Hub ホスト プロジェクトのアプリケーションでインフラストラクチャ リソースをサービスとワークロードとして表示します。

このチュートリアルは、App Hub を設定して管理するユーザーを対象としています。ロードバランサについて一定の知識があることが前提となります。

目標

このチュートリアルでは、次のタスクを行う方法を説明します。
  1. Google Cloud プロジェクトを作成する。このプロジェクトは App Hub ホスト プロジェクトです。
  2. Google Cloud で、Terraform を使用してロードバランスされた MIG をデプロイする。
  3. ホスト プロジェクトに適切なロールと権限を付与する。
  4. App Hub ホスト プロジェクトをサービス プロジェクトとして接続する。
  5. App Hub ホスト プロジェクトでアプリケーションを作成する。
  6. インフラストラクチャ リソースを App Hub サービスとワークロードとして検出する。
  7. アプリケーションにサービス プロジェクトのサービスとワークロードを登録し、属性を割り当てる。
  8. App Hub で登録されているサービスとワークロードの詳細を表示する。

費用

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

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

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

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

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

始める前に

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

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

このチュートリアルを完了するために必要な権限を取得するには、プロジェクトに対して次の IAM ロールを付与するよう管理者に依頼してください。

ロールの付与の詳細については、アクセス権の管理に関する記事をご覧ください。

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

コンソール

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

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

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

  3. 必要な API を有効にします。

    API を有効にする

gcloud

  1. Google Cloud コンソールで、「Cloud Shell をアクティブにする」をクリックします。

    Cloud Shell をアクティブにする

    Google Cloud コンソールの下部で Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています。セッションが初期化されるまで数秒かかることがあります。

  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. API を有効にします。

    gcloud services enable apphub.googleapis.com \
       cloudresourcemanager.googleapis.com \
       compute.googleapis.com \
       config.googleapis.com \
       serviceusage.googleapis.com
    

環境の準備

このソリューションを最小限の労力でデプロイできるように、Terraform 構成が GitHub で提供されています。Terraform 構成では、ソリューションに必要なすべての Google Cloud のリソースを定義しています。 GitHub から Terraform 構成をダウンロードし、必要に応じてコードをカスタマイズしてから、Terraform CLI を使用してソリューションをデプロイします。ソリューションをデプロイした後も、引き続き Terraform を使用してソリューションを管理できます。

ロードバランサとマネージド インスタンス グループを使用した App Hub のワークロードとサービス。
図 1. ロードバランサとマネージド インスタンス グループを使用した App Hub のワークロードとサービス。

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

  1. ユーザーが、Compute Engine にデプロイされたアプリケーションにリクエストを行います。まず、Cloud Load Balancing にリクエストが送信されます。

  2. Cloud Load Balancing は、転送ルール、URL マップ、バックエンド サービスの情報を使用して、Compute Engine のマネージド インスタンス グループにトラフィックをルーティングします。

Terraform クライアントを設定する

Terraform は、Cloud Shell またはローカルホストで実行できます。このガイドでは、Terraform がプリインストールされ、Google Cloud での認証が構成されている Cloud Shell で Terraform を実行する方法について説明します。

このソリューションの Terraform コードは、GitHub リポジトリで入手できます。

  1. Cloud Shell で、GitHub リポジトリのクローンを作成します。

    git clone https://github.com/terraform-google-modules/terraform-docs-samples
    
  2. Cloud Shell で、現在の作業ディレクトリが terraform-docs-samples/lb/regional_external_http_load_balancer かどうかを確認します。このディレクトリには、ソリューションの Terraform 構成ファイルが含まれています。このディレクトリに移動する必要がある場合は、次のコマンドを実行します。

    cd terraform-docs-samples/lb/regional_external_http_load_balancer 
    
  3. 次のコマンドを実行して Terraform を初期化します。

    terraform init
    

    次のメッセージが表示されるまで待ちます。

    Terraform has been successfully initialized!
    

Terraform 構成を検証して確認する

  1. 現在の作業ディレクトリが terraform-docs-samples/lb/regional_external_http_load_balancer であることを確認します。そうでない場合は、そのディレクトリに移動します。

  2. Terraform 構成にエラーがないことを確認します。

    terraform validate
    

    コマンドからエラーが返された場合は、構成で必要な修正を行ってから、terraform validate コマンドを再度実行します。コマンドで次のメッセージが返されるまで、この手順を繰り返します。

    Success! The configuration is valid.
    
  3. 構成で定義されているリソースを確認します。

    terraform plan
    

    terraform plan コマンドの出力に、構成の適用時に Terraform がプロビジョニングするリソースのリストが表示されます。

    変更を行う場合は、構成を編集してから、terraform validate コマンドと terraform plan コマンドを再度実行します。

リソースをプロビジョニングする

構成にこれ以上の変更が必要ない場合は、リソースをデプロイします。

  1. 現在の作業ディレクトリが terraform-docs-samples/lb/regional_external_http_load_balancer であることを確認します。そうでない場合は、そのディレクトリに移動します。

  2. Terraform 構成を適用します。

    terraform apply
    

    作成されるリソースのリストが表示されます。

  3. アクションの実行を求められたら、「yes」と入力します。

    Terraform でデプロイの進行状況を示すメッセージが表示されます。

    デプロイを完了できない場合、失敗の原因となったエラーが表示されます。エラー メッセージを確認し、構成を更新してエラーを修正します。次に、terraform apply コマンドを再実行します。

    すべてのリソースが作成されると、Terraform から次のメッセージが表示されます。

    Apply complete!
    

Terraform に「Apply complete!」というメッセージが表示されるまで待ちます。

Cloud Load Balancing は、転送ルール、URL マップ、バックエンド サービス、Compute Engine MIG にトラフィックを分散します。バックエンド サービス、URL マップ、転送ルールが、App Hub ホスト プロジェクトで検出されたサービスになります。Compute Engine MIG は、App Hub ホスト プロジェクトで検出されたワークロードになります。

このソリューションが不要になった場合は、デプロイメントを削除して、Google Cloud リソースに対する課金が継続しないようにします。詳細については、デプロイメントを削除するをご覧ください。

IAM 権限を付与

必要に応じて、App Hub ホスト プロジェクトに適切な IAM ロールと権限を付与します。

コンソール

  1. このチュートリアルを完了するために必要な権限を取得するには、プロジェクトに対して必要な IAM ロールを付与するよう管理者に依頼してください。

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

      [IAM] に移動

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

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

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

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

gcloud

  1. App Hub を管理するユーザーにロールを付与するには、必要に応じて IAM ロールを置き換えて、次のコマンドを繰り返します。

    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 人以上必要です。この例では、ホスト プロジェクトがサービス プロジェクトとして機能します。

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

    SERVICE_PROJECT_ID は、HOST_PROJECT_ID の名前に置き換えます。

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

リソースをデプロイしたホスト プロジェクトをサービス プロジェクトとして接続します。

コンソール

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

    [設定] に移動

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

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

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

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

gcloud

ホスト プロジェクトをサービス プロジェクトとして App Hub ホスト プロジェクトに追加します。

gcloud apphub service-projects add HOST_PROJECT_ID \
  --project=HOST_PROJECT_ID

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

サービスとワークロードのコンテナになるアプリケーションを作成します。

コンソール

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

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

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

  4. [ロケーション] リストで [us-west1] を選択します。

  5. [アプリケーション名] フィールドに、「tutorial-application」と入力します。

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

  7. [属性を追加] セクションで、[表示名] に「sample-application」と入力します。

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

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

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

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

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

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

新しいアプリケーションが作成され、[アプリケーション] ページに表示されます。

gcloud

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

    gcloud config set project HOST_PROJECT_ID
  2. リージョン us-west1tutorial-application という新しいアプリケーションを作成し、表示名 Tutorial を設定します。

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

    gcloud apphub applications list \
        --project=HOST_PROJECT_ID \
        --location=us-west1
    

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

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

    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=us-west1
    

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

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

    注:

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

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

    このコマンドは、次のような 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/us-west1/applications/tutorial-application
    scope:
      type: REGIONAL
    state: ACTIVE
    uid: 9d991a9d-5d8a-4c0d-b5fd-85e39fb58c73
    updateTime: '2023-10-31T18:33:48.343303819Z'
    

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

サービスとワークロードを登録すると、アプリケーションに追加されます。

コンソール

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

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

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

  3. サービスを登録します。

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

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

  4. 上記の手順を繰り返して、他のサービスをそれぞれ sample-service-forwarding-rulesample-service-forwarding-rule として登録します。

  5. ワークロードを登録するには、上記の手順を繰り返してサービスを登録します。ただし、次の例外があります。

    1. [サービスまたはワークロードの登録] ペインの [サービスまたはワークロードの選択] セクションで、ワークロードの [名前]「l7-xlb-backend-example」を選択して [続行] をクリックします。
    2. [属性を追加] セクションで、属性の名前sample-workload」を入力します。
    3. [表示名] に「workload-instance-group」と入力します。

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

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

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

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

    ID: 71dd6fa4-5644-43ee-918f-c5fda03ffe24
    SERVICE_REFERENCE: {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_NUMBER]/regions/us-west1/backendServices/l7-xlb-backend-service'}
    SERVICE_PROPERTIES: {'gcpProject': 'projects/SERVICE_PROJECT_ID', 'location': 'us-west1'}
    
    ID: fe831ba4-ec16-4eb8-9ea4-b394fd30f561
    SERVICE_REFERENCE: {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_NUMBER]/regions/us-west1/forwardingRules/l7-xlb-forwarding-rule'}
    SERVICE_PROPERTIES: {'gcpProject': 'projects/SERVICE_PROJECT_ID', 'location': 'us-west1'}
    
    ID: 637a3216-c6cc-410e-8bf9-83b7ef66a62f
    SERVICE_REFERENCE: {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_NUMBER]/regions/us-west1/urlMaps/regional-l7-xlb-map'}
    SERVICE_PROPERTIES: {'gcpProject': 'projects/SERVICE_PROJECT_ID', 'location': 'us-west1'}
    

    出力からサービス ID71dd6fa4-5644-43ee-918f-c5fda03ffe24 など)をコピーして、次の手順で使用します。

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

    gcloud apphub applications services create sample-service-backend \
        --discovered-service='projects/HOST_PROJECT_ID/locations/us-west1/discoveredServices/BACKEND_SERVICE_ID' \
        --display-name='service-backend' \
        --criticality-type='HIGH' \
        --environment-type='PRODUCTION' \
        --application=tutorial-application \
        --project=HOST_PROJECT_ID \
        --location=us-west1
    
    gcloud apphub applications services create sample-service-forwarding-rule \
        --discovered-service='projects/HOST_PROJECT_ID/locations/us-west1/discoveredServices/FORWARDING_RULE_SERVICE_ID' \
        --display-name='service-forwarding-rule' \
        --criticality-type='HIGH' \
        --environment-type='PRODUCTION' \
        --application=tutorial-application \
        --project=HOST_PROJECT_ID \
        --location=us-west1
    
    gcloud apphub applications services create sample-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=us-west1
    

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

    • BACKEND_SERVICE_ID: 登録するバックエンド サービスのサービス ID
    • FORWARDING_RULE_SERVICE_ID: 登録する転送ルールのサービス ID
    • URL_MAP_SERVICE_ID: 登録する URL マップのサービス ID
  4. アプリケーションに登録されたすべてのサービスを一覧表示します。

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

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

    ID: sample-service-backend
    DISPLAY_NAME: service-backend
    SERVICE_REFERENCE:  {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_NUMBER]/regions/us-west1/backendServices/l7-xlb-backend-service'}
    CREATE_TIME: 2024-02-13T00:31:45
    
    ID: sample-service-forwarding-rule
    DISPLAY_NAME: service-forwarding-rule
    SERVICE_REFERENCE:  {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_NUMBER]/regions/us-west1/forwardingRules/l7-xlb-forwarding-rule'}
    CREATE_TIME: 2024-02-13T00:31:45
    
    ID: sample-service-url-map
    DISPLAY_NAME: url-map
    SERVICE_REFERENCE:  {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_NUMBER]/regions/us-west1/urlMaps/regional-l7-xlb-map'}
    CREATE_TIME: 2024-02-13T00:31:45
    

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

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

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

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

    ID: c9c08669-0fd2-4f7c-b2b1-2cf3c57662c2
    WORKLOAD_REFERENCE: {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_NUMBER]/zones/us-west1-a/instanceGroups/l7-xlb-backend-example'}
    WORKLOAD_PROPERTIES: {'gcpProject': 'projects/SERVICE_PROJECT_ID', 'location': 'us-west1', 'zone': 'us-west1-a'}
    

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

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

    gcloud apphub applications workloads create sample-workload \
        --discovered-workload='projects/HOST_PROJECT_ID/locations/us-west1/discoveredWorkloads/WORKLOAD_ID' \
        --display-name='workload-instance-group' \
        --application=tutorial-application \
        --project=HOST_PROJECT_ID \
        --location=us-west1
    

    WORKLOAD_ID は、登録するワークロードの ID に置き換えます。

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

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

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

    ID: sample-workload
    DISPLAY_NAME: workload-instance-group
    WORKLOAD_REFERENCE: {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_NUMBER]/zones/us-west1-a/instanceGroups/l7-xlb-backend-example'}
    CREATE_TIME: 2024-02-13T00:31:45
    

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

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

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

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

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

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

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

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

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

クリーンアップ

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

App Hub リソースを削除する

コンソール

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

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

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

  3. [サービスとワークロード] タブの [登録済みのサービスとワークロード] セクションから、サービス名「service-forwarding-rule」をクリックします。

  4. [サービスとワークロード] ページで、[登録解除] をクリックします。アラートで、サービスが登録されていないことが通知されます。

  5. [サービスとワークロード] タブの [登録済みのサービスとワークロード] セクションから、ワークロードの名「workload-instance-group」をクリックします。

  6. [サービスとワークロード] ページで、[登録解除] をクリックします。ワークロードが登録されていないことがアラートで通知されます。

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

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

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

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

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

    [設定] に移動

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

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

gcloud

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

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

    gcloud apphub applications services delete sample-service-backend \
      --application=tutorial-application --project=HOST_PROJECT_ID \
      --location=us-west1
    
    gcloud apphub applications services delete sample-service-forwarding-rule \
      --application=tutorial-application --project=HOST_PROJECT_ID \
      --location=us-west1
    
    gcloud apphub applications services delete sample-service-url-map \
      --application=tutorial-application --project=HOST_PROJECT_ID \
      --location=us-west1
    

    これで、アプリケーションに登録可能な検出されたサービスになります。

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

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

    gcloud apphub applications workloads delete sample-workload \
      --application=tutorial-application --project=HOST_PROJECT_ID \
      --location=us-west1
    

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

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

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

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

デプロイを削除する

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

Terraform CLI を使用してソリューションをデプロイした場合は、次の手順に沿って操作します。

  1. Cloud Shell で、現在の作業ディレクトリが terraform-docs-samples/lb/regional_external_http_load_balancer であることを確認します。そうでない場合は、そのディレクトリに移動します。

  2. Terraform によってプロビジョニングされたリソースを削除します。

    terraform destroy
    

    破棄されるリソースのリストが表示されます。

  3. アクションの実行を求められたら、「yes」と入力します。

    進行状況を示すメッセージが表示されます。すべてのリソースが削除されると、次のメッセージが表示されます。

    Destroy complete!
    

ソリューションに使用した Google Cloud プロジェクトが不要になった場合は、プロジェクトを削除できます。

プロジェクトの削除

    Delete a Google Cloud project:

    gcloud projects delete PROJECT_ID

PROJECT_IDHOST_PROJECT_ID に置き換えます。

次のステップ