このページでは、サービスとワークロードを App Hub アプリケーションとしてグループ化するようにホスト プロジェクトを設定する方法について説明します。
ホスト プロジェクトは、既存の App Hub ユーザー向けのサポートされている設定モデルです。ただし、新しい実装で App Hub を設定する場合は、アプリ管理用フォルダを使用することをおすすめします。アプリ管理用フォルダを使用すると、Application Design Center や Gemini Cloud Assist など、アプリケーション中心の Google Cloud 機能の完全なセットにアクセスできます。利用可能な App Hub 設定モデルの主な違いについては、App Hub 設定モデルを選択するをご覧ください。
ホスト プロジェクトとサービス プロジェクトの概要
ホスト プロジェクトは、サポートされているリソースを App Hub アプリケーションとしてグループ化するために指定する標準の Google Cloud プロジェクトです。App Hub がこれらのプロジェクト内のサービスとワークロードを検出して登録できるように、他のプロジェクト(サービス プロジェクト)をこのホスト プロジェクトに手動で接続します。
App Hub のホスト プロジェクトとサービス プロジェクトのモデルは、共有 VPC で使用されるモデルとは異なります。App Hub には、共有 VPC ホスト プロジェクトと、それに接続されているサービス プロジェクトを使用できません。App Hub では、ホスト プロジェクトとサービス プロジェクトは、VPC ネットワークを共有するためではなく、アプリケーション リソースを論理的にグループ化するために使用されます。
始める前に
アプリケーションのホスト プロジェクトとサービス プロジェクトとして Google Cloud プロジェクトを構成する前に、次の手順を完了する必要があります。
- ホスト プロジェクトとして使用する Google Cloud プロジェクトを特定します。既存のプロジェクトを使用することも、新しいプロジェクトを作成することもできます。
- サービス プロジェクトとしてホスト プロジェクトに接続する Google Cloud プロジェクトを特定します。App Hub アプリケーションに登録するサービスとワークロードを含むすべてのプロジェクトを特定する必要があります。他のプロジェクトのリソースは App Hub に表示されません。サービス プロジェクトについては、次の点を考慮してください。 - サービス プロジェクトは、ホスト プロジェクトと同じ組織に存在する必要があります。
- サービス プロジェクトは、一度に 1 つのホスト プロジェクトにのみ接続できます。
- ホスト プロジェクトは、独自のリソースを管理するために、独自のサービス プロジェクトとして機能できますが、他のホスト プロジェクトにサービス プロジェクトとして接続することはできません。
 
必要なロール
    
      サービス プロジェクトをホスト プロジェクトに接続するために必要な権限を取得するには、ホスト プロジェクトと、接続する各サービス プロジェクトに対する App Hub 管理者 (roles/apphub.admin)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
ホスト プロジェクトを設定する
プロジェクトをホスト プロジェクトとして構成する手順は次のとおりです。
コンソール
- Google Cloud コンソールの [ようこそ] ページで、プロジェクト選択ツールを使用して、ホスト プロジェクトとして構成するプロジェクトを選択します。 
- 
  
  
    
      Enable the required API. Roles required to enable APIs To enable APIs, you need the Service Usage Admin IAM role ( roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
gcloud
- 
  
   
   
     
   
  
 
   
 
 
 
  
    
    In the Google Cloud console, 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. 
- Google Cloud CLI の最新バージョンがインストールされていることを確認します。 - gcloud components update
- ホスト プロジェクトとして構成する Google Cloud プロジェクトのプロジェクト ID を確認します。 
- ホスト プロジェクトをコマンドのデフォルト プロジェクトとして設定します。 - gcloud config set project HOST_PROJECT_ID- HOST_PROJECT_IDは、ホスト プロジェクトとして構成するプロジェクトの ID に置き換えます。
- ホスト プロジェクトで App Hub API を有効にします。 - gcloud services enable apphub.googleapis.com \ --project=HOST_PROJECT_ID
サービス プロジェクトの接続
グループ化するサービスとワークロードを含むサービス プロジェクトを、App Hub アプリケーションとしてホスト プロジェクトに接続します。
コンソール
- Google Cloud コンソールの [ようこそ] ページで、プロジェクト ピッカーを使用してホスト プロジェクトを選択します。 
- App Hub の [設定] ページに移動します。 
- [プロジェクトを接続] をクリックします。 
- 次のいずれかの方法で、ホスト プロジェクトに接続するサービス プロジェクトを選択します。 - プロジェクトのリストで、サービス プロジェクトとして関連付けるプロジェクトのチェックボックスをオンにします。
- プロジェクト名をフィルタして、チェックボックスをオンにします。
 
- [選択] をクリックします。 - [接続されたサービス プロジェクト] テーブルに、選択したサービス プロジェクトが表示されます。 
- [閉じる] をクリックします。 
gcloud
- サービス プロジェクトとして構成する各 Google Cloud プロジェクトのプロジェクト ID を確認します。
- 各サービス プロジェクトを接続します。 - gcloud apphub service-projects add SERVICE_PROJECT_ID \ --project=HOST_PROJECT_ID- 次のように置き換えます。 - SERVICE_PROJECT_ID: 接続するサービス プロジェクトの ID。
- HOST_PROJECT_ID: ホスト プロジェクトの ID。
 
- ホスト プロジェクトに接続するサービス プロジェクトごとに、上記の手順を繰り返します。 
Terraform
Terraform を使用してサービス プロジェクトをホスト プロジェクトに接続するには、google_apphub_service_project_attachment リソースを使用します。次に例を示します。
resource "google_apphub_service_project_attachment" "example" {
    service_project_attachment_id = google_project.service_project.project_id
    depends_on = [time_sleep.wait_120s]
}
resource "google_project" "service_project" {
    project_id ="project-1"
    name = "Service Project"
    org_id = "123456789"
    deletion_policy = "DELETE"
}
resource "time_sleep" "wait_120s" {
    depends_on = [google_project.service_project]
    create_duration = "120s"
}
サービス プロジェクトを接続解除するには、アタッチメントを削除する必要があります。詳細については、サービス プロジェクトを削除するをご覧ください。
App Hub のロールと権限を割り当てる
ホスト プロジェクトとサービス プロジェクトの App Hub ユーザーに適切な App Hub のロールと権限を付与する手順は次のとおりです。
コンソール
- Google Cloud コンソールの [ようこそ] ページで、プロジェクト ピッカーを使用してホスト プロジェクトを選択します。 
- [IAM] ページに移動します。 
- [ アクセスを許可] をクリックします。アクセス権の付与ペインが開きます。 
- [新しいプリンシパル] フィールドに、App Hub へのアクセス権を付与するプリンシパルのメールアドレスを入力します。 
- [ロールを選択] をクリックし、[フィルタ] フィールドに「App Hub」と入力します。 
- プリンシパルに割り当てる App Hub IAM ロールを選択し、[保存] をクリックします。 
- ホスト プロジェクトに接続した App Hub サービス プロジェクトごとに、前のプロセスを繰り返して、同じユーザーに同じロールを付与します。 
gcloud
- ホスト プロジェクトとサービス プロジェクトとして構成した各 Google Cloud プロジェクトのプロジェクト ID を確認します。 
- ホスト プロジェクトのプリンシパルにアクセス権を付与します。 - gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member='user:EMAIL_ADDRESS' \ --role='ROLE_NAME'- 次のように置き換えます。 - HOST_PROJECT_ID: ホスト プロジェクトの ID。
- EMAIL_ADDRESS: ホスト プロジェクトで App Hub へのアクセス権を取得する必要があるプリンシパルのメールアドレス。この値は、- username@yourdomainの形式(例:- my.user@example.com)にする必要があります。
- ROLE_NAME: プリンシパルに割り当てる App Hub IAM ロール(例:- roles/apphub.admin)。
 
- ホスト プロジェクトにアタッチした App Hub サービス プロジェクトごとに、同じユーザーに同じロールを付与します。 - gcloud projects add-iam-policy-binding SERVICE_PROJECT_ID \ --member='user:EMAIL_ADDRESS' \ --role='ROLE_NAME'- SERVICE_PROJECT_IDは、アクセス権を付与するサービス プロジェクトの ID に置き換えます。
VPC Service Controls の設定
VPC Service Controls の境界でアプリケーションを保護する場合は、アプリケーションを作成する前に、App Hub のホスト プロジェクトとサービス プロジェクトを境界に追加します。詳細については、App Hub での VPC Service Controls の使用をご覧ください。
既存のリソースをアプリケーションに登録できるようになりました。
省略可: 指標スコープを構成する
Cloud Monitoring でホスト プロジェクト内のアプリケーションのシステム指標を表示するには、接続されたサービス プロジェクトをホスト プロジェクトの指標スコープに追加します。ホスト プロジェクトは時系列データのスコープ対象プロジェクトとして機能し、データのグラフ作成とモニタリングを可能にします。詳細と構成手順については、指標スコープを構成すると API を使用して指標スコープを構成するをご覧ください。
サービス プロジェクトを削除する
サービス プロジェクトの接続を変更して、さまざまなサービスとワークロードをアプリケーションにグループ化して使用できます。ホスト プロジェクトにサービス プロジェクトをさらに接続するか、次の手順に沿ってホスト プロジェクトからサービス プロジェクトの接続を削除します。
コンソール
- Google Cloud コンソールの [ようこそ] ページで、プロジェクト ピッカーを使用してホスト プロジェクトを選択します。 
- App Hub の [設定] ページに移動します。 
- ホスト プロジェクトから削除するサービス プロジェクトのチェックボックスをオンにします。 
- [プロジェクトを接続解除] をクリックします。 - [接続されたサービス プロジェクト] テーブルが更新され、ホスト プロジェクトに接続されたプロジェクトのみが表示されます。 
gcloud
- ホスト プロジェクトから削除するサービス プロジェクトごとに、プロジェクト ID を確認します。
- 各サービス プロジェクトを削除します。 - gcloud apphub service-projects remove SERVICE_PROJECT_ID \ --project=HOST_PROJECT_ID- 次のように置き換えます。 - SERVICE_PROJECT_ID: 削除するサービス プロジェクトの ID。
- HOST_PROJECT_ID: ホスト プロジェクトの ID。
 
- ホスト プロジェクトから削除するサービス プロジェクトごとに、上記の手順を繰り返します。 
サービス プロジェクトをホスト プロジェクトから削除する場合は、以前に指標スコープを構成している場合は、ホスト プロジェクトの指標スコープからも削除することを検討してください。詳細については、指標スコープからプロジェクトを削除するをご覧ください。