フォルダ内のアプリケーションの管理

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

概要

Google Cloud は、リソースのデプロイと管理にアプリケーション中心のアプローチを提供します。個々のインフラストラクチャ コンポーネントに焦点を当てるのではなく、アプリケーション全体を管理できます。このアプリケーション中心のモデルとそのリソース構成の詳細については、アプリケーション中心の Google Cloud をご覧ください。

アプリケーション中心のエクスペリエンスの中核となるのは、App Hub アプリケーションです。アプリケーションは、特定のビジネス機能を提供するために連携して動作するリソースの論理グループです。これらのリソースには、次のものが含まれます。

  • サービス: ロードバランサの転送ルールなど、クライアントに機能を公開するネットワークまたは API インターフェース。
  • ワークロード: 個別のビジネス機能を実行するバイナリ デプロイを実行するコンピューティング リソース(マネージド インスタンス グループ(MIG)や Google Kubernetes Engine(GKE)デプロイなど)。

アプリ対応フォルダとは

アプリ対応フォルダとは、 Google Cloud リソース階層内のフォルダで、アプリケーション管理用に特別に構成されたものです。このフォルダは、アプリケーションのアプリケーション管理境界として機能し、アプリケーションのメタデータと構成を保存する管理プロジェクトが含まれています。フォルダ内の 1 つ以上のプロジェクトで App Hub アプリケーションを設計、構成、テスト、検証、デプロイできます。

アプリ対応フォルダを使用すると、次のようにアプリケーション管理を効率化できます。

  • コンポーネントを整理する: App Hub 内で定義された関連するサービスとワークロードを 1 つのアプリケーションにグループ化します。
  • 一元化されたモニタリングと管理を提供する: さまざまなプロジェクトやプロダクトにわたって個々のコンポーネントを追跡するのではなく、フォルダ レベルでアプリケーションの全体的な健全性とパフォーマンスをモニタリングして管理できます。
  • 管理の簡素化: フォルダをアプリ対応として指定すると、組織内のアプリケーションの作成と管理を簡素化するフォルダレベルの境界が作成されます。
  • アプリケーション中心のビューを提供する: 個々のリソースからアプリケーション自体に焦点を移し、パフォーマンスの全体像を把握できるようにします。

フォルダレベルの境界と、アプリケーション管理境界のプロジェクトとフォルダの比較については、アプリケーション設定モデルを選択するをご覧ください。

管理プロジェクトの概要

管理プロジェクトは、アプリ対応フォルダ内のGoogle Cloud プロジェクトで、すべてのアプリケーション中心のメタデータの中央リポジトリとして機能します。各フォルダには 1 つの管理プロジェクトのみが含まれます。管理プロジェクトは、アプリケーション ライブラリと API のインフラストラクチャを提供します。これには、課金、割り当て、アクセス制御が含まれます。これらの API の詳細については、管理プロジェクトで API を有効にするをご覧ください。

管理プロジェクトには、次のものを含む完全なアプリケーション モデルが保持されます。

  • App Hub データ: アプリケーションの論理モデル。サービスやワークロードとの関係、オーナーや重要度などのメタデータが含まれます。
  • Application Design Center データ: 新しいアプリケーションの設計とデプロイに使用されるテンプレート、カタログ、スペースなどのリソース。

管理プロジェクトは、アプリ対応フォルダのリソース階層内でリソースを見つけるのにも役立ちます。管理プロジェクトが削除されると、このアプリケーション モデルデータはすべて完全に失われます。基盤となるインフラストラクチャ(GKE クラスタやロードバランサなど)はそのまま残りますが、App Hub 内の論理グループは完全に削除されます。

アプリケーション管理用にフォルダを構成する

アプリケーション管理は、新しいフォルダと既存のフォルダの両方で有効にできます。新しく作成した専用フォルダ内でアプリケーション管理をテストすることをおすすめします。これにより、既存の重要なフォルダに適用する前に安全にテストできます。

アプリ対応フォルダ内では、承認されたユーザーが、そのフォルダ内の任意のプロジェクトのワークロードとサービスをアプリケーションに直接集約できます。

次の構造のリソース階層について考えてみましょう。

フォルダ F1 には次の 3 つのアイテムが含まれています。

  • プロジェクト P10 と P11
  • フォルダ F2

フォルダ F2 には次の 2 つのアイテムが含まれています。

  • プロジェクト P20 と P21

フォルダ F1 でアプリケーション管理を有効にして、複数のフォルダレベルのリソースを含むアプリケーションを作成します。たとえば、アプリケーションにプロジェクト P10 と P20 のリソースを含めることができます。

フォルダレベルにまたがるプロジェクト P10 と P20 を含むアプリケーション

フォルダ F2 でのみアプリケーション管理を有効にした場合、プロジェクト P10 はアプリケーションの作成に使用できません。プロジェクト P10 にアプリケーションを作成するには、プロジェクト P10 をフォルダ F2 に移動します。

プロジェクト P10 と P20 を含むアプリケーション。ただし、P10 はフォルダ F2 に移動しています

アプリケーション管理戦略を計画する際には、組織構造、チームの責任、リソースを考慮してください。チームとリソースの構成方法は、アプリ対応フォルダの使用方法に直接影響します。

必要なロール

アプリケーションのライフサイクルで特定された責任に基づいて、アプリケーション管理プロセスのさまざまな側面を構成するには、ユーザーとユーザーにさまざまなロールが必要になります。

アプリ対応フォルダの構成に必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。

  • アプリケーション管理を有効にする: フォルダの親リソースに対するフォルダ管理者 roles/resourcemanager.folderAdmin
  • 請求先アカウントを管理プロジェクトにリンクします。
  • 推奨される API を有効にする: 管理プロジェクトに対する Service Usage 管理者 roles/serviceusage.serviceUsageAdmin)。追加のサービスを有効にする場合にのみ必要です。
  • ユーザーにアプリケーション中心のロールを付与する: 管理プロジェクトに対するプロジェクト IAM 管理者 ロール(roles/resourcemanager.projectIamAdmin
  • オブザーバビリティ スコープを構成します。
  • Cloud Hub でアプリケーション レベルとプロジェクト レベルのデータを表示する: アプリ対応フォルダに対する Cloud Hub オペレーター roles/cloudhub.operator

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

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

アプリケーション管理を有効にする

アプリケーション管理を使用すると、個々のインフラストラクチャ コンポーネントではなく、アプリケーション全体に焦点を当てることができます。

フォルダでアプリケーション管理を有効にすると、そのフォルダはアプリ対応フォルダと呼ばれ、次のようになります。

  • プロジェクトは、フォルダ内の管理プロジェクトとして定義されます。
  • システムは、管理プロジェクトで必要な API を有効にします。
  • 管理プロジェクトには、有効な API、課金、割り当て、アクセス制御などのアプリケーション データが保存されます。

フォルダでアプリ管理を有効にするには、次の操作を行います。

コンソール

  1. アプリ対応フォルダとして設定する Google Cloud フォルダを選択または作成します。新しいフォルダを作成するには、フォルダの作成をご覧ください。

  2. Google Cloud コンソールで、[リソースの管理] ページを開きます。

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

  3. プロジェクトとフォルダのリストから、構成するフォルダを見つけます。

    フォルダに アプリ対応フォルダ アイコンが表示されている場合、アプリケーション管理はすでに有効になっています。

  4. フォルダの行で、アクション)メニューを開き、[設定] をクリックします。

    フォルダでアプリケーション管理が有効になっていない場合、[アプリケーション管理] 設定には [有効になっていません] と表示されます。

  5. [アプリケーション管理を有効にする] で、[プロジェクトを作成] をクリックします。

    [管理プロジェクトを作成して必要な API を有効にする] パネルが開きます。

  6. 必要な API のリストを確認します。これらの API は、アプリケーションのライフサイクルを管理します。関連費用が発生する API については、API 名をクリックして料金の詳細を確認してください。

  7. アプリケーション管理を有効にするには、[プロジェクトを作成して API を有効にする] をクリックします。

    フォルダに管理プロジェクトが作成されます。

  8. 管理プロジェクトのプロジェクト名と ID をメモします。これらの値を使用してアクセス権を付与します。

    または、次の Google Cloud CLI コマンドを使用して、管理プロジェクト ID を取得することもできます。

    gcloud resource-manager folders describe FOLDER_ID
        --format="value(managementProject.split('/').slice(-1))"
    

    FOLDER_ID は、アプリ対応フォルダの ID に置き換えます。

    詳細については、プロジェクト名、番号、ID を確認するをご覧ください。

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 の最新バージョンがインストールされていることを確認します。

    gcloud components update
    
  3. 特定のフォルダでアプリケーション管理を有効にするには、--enable フラグを指定して gcloud resource-manager capabilities update コマンドを使用します。

    gcloud resource-manager capabilities update folders/FOLDER_ID/capabilities/app-management \
       --enable
    

    FOLDER_ID は、フォルダの ID に置き換えます。

    このコマンドは、指定されたフォルダでアプリケーション管理機能を有効にし、そのフォルダ内に新しい Google Cloud プロジェクトを自動的にプロビジョニングして、管理プロジェクトとして機能させます。

  4. 必要に応じて、管理プロジェクトで推奨 API を有効にするには、プロジェクトで Google Cloud サービスを有効にするの手順に沿って操作します。

  5. Terraform

    Terraform を使用してフォルダでアプリケーション管理を有効にするには、google_resource_manager_capability リソースを使用します。次に例を示します。

    resource "google_folder" "folder" {
      display_name     = "my-folder"
      parent           = "organizations/123456789"
      deletion_protection = false
    }
    resource "time_sleep" "wait_60s" {
      depends_on = [google_folder.folder]
      create_duration = "60s"
    }
    resource "google_resource_manager_capability" "capability" {
      value            = true
      parent           = "${google_folder.folder.name}"
      capability_name  = "app-management"
      depends_on = [time_sleep.wait_60s]
    }
    

    このコマンドは、指定されたフォルダでアプリケーション管理機能を有効にし、そのフォルダ内に管理プロジェクトとして機能する新しい Google Cloud プロジェクトを自動的にプロビジョニングします。管理プロジェクトで推奨 API のリストを有効にするには、 Google Cloud プロジェクトで API サービスを有効にするの手順に沿って操作します。

管理プロジェクトを作成して必要な API を有効にしたら、App Hub を使用して、既存のサービスとワークロードをアプリケーションにグループ化できます。ただし、他のアプリケーション中心の Google Cloud プロダクトの高度な機能を利用するには、請求先アカウントを管理プロジェクトにリンクし、ユーザーにアプリケーション中心のロールを付与することを強くおすすめします。これらのアクションを使用すると、ユーザーはアプリケーションのデプロイ プロセスとオペレーションのさまざまな側面を管理できます。これにはさまざまなロールが必要になる場合があります。

省略可: 請求先アカウントを管理プロジェクトにリンクする

アプリケーション中心の高度な Google Cloud 機能を使用するには、有効な請求先アカウントを管理プロジェクトにリンクする必要があります。たとえば、リンクされた請求先アカウントを使用すると、次のことができます。

  • App Hub のリソース割り当てを超えるワークロードを管理します。
  • App Design Center を使用して、テンプレートを作成し、アプリケーションをデプロイします。

アプリケーション管理と有効な API に関連する費用の概要については、費用についてをご覧ください。

有効な請求先アカウントを管理プロジェクトにリンクする手順は次のとおりです。

コンソール

  1. アプリケーションの管理に使用する請求先アカウントが存在することを確認します。請求先アカウントを作成するには、新しいセルフサービスの Cloud 請求先アカウントを作成するをご覧ください。

  2. Google Cloud コンソールで、[お支払い] ページを開きます。

    [お支払い] に移動

  3. [マイ プロジェクト] タブで、管理プロジェクトを見つけます。

  4. プロジェクトの行で、 [アクション] メニューを開き、[お支払い情報を変更] を選択して、Cloud 請求先アカウントを選択します。

プロジェクトの課金を有効にする方法については、プロジェクトの課金を有効にするをご覧ください。

gcloud

gcloud billing projects link PROJECT_ID \
    --billing-account ACCOUNT_ID

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

  • PROJECT_ID: 管理プロジェクトの ID。
  • ACCOUNT_ID: 請求先アカウントの ID。請求先アカウント ID の形式は 0X0X0X-0X0X0X-0X0X0X です。

管理プロジェクトで自動的に有効になる API に加えて、アプリケーションの作成をサポートするために推奨 API を有効にできます。推奨 API を確認して、メリットと関連費用を把握します。

ユーザーにアプリケーション中心のロールを付与する

アプリケーションのライフサイクルにおける責任に応じて、ユーザーにアクセス権を付与できます。さまざまなレベルのアプリケーション アクセス権限を付与する方法については、アプリケーションに権限を付与するをご覧ください。

次の表に、プロジェクト レベルまたはフォルダレベルでさまざまなアプリケーション中心のユーザー責任を付与するための一般的なガイドラインと推奨される IAM ロールを示します。この表には、App Hub と App Design Center でアプリケーションを管理し、Cloud Hub でデータを表示するためのロールが含まれています。

これらのロールやその他のサービス固有のロールの詳細については、それぞれのドキュメントをご覧ください。

ユーザーの責任 IAM ロール ロールを付与する場所
プラットフォーム管理者

管理プロジェクトの管理者タスクを実行します。

プロジェクト IAM 管理者(roles/resourcemanager.projectIamAdmin 管理プロジェクト
プラットフォーム エンジニア

App Hub と App Design Center の管理者タスクを実行します。

  • App Hub 管理者(roles/apphub.admin
  • App Design Center 管理者(roles/designcenter.admin
管理プロジェクト
アプリケーション デベロッパー

アプリケーションを開発する。

  • App Hub 編集者(roles/apphub.editor
  • App Design Center ユーザー(roles/designcenter.user
管理プロジェクト
SRE、オペレーター、Cloud Hub ユーザー

Cloud Hub でアプリケーション レベルとプロジェクト レベルのデータを表示します。

Cloud Hub オペレーター(roles/cloudhub.operator アプリ対応フォルダ

オブザーバビリティ スコープを構成する

オブザーバビリティ スコープは、 Google Cloud コンソールがテレメトリー データを検索して表示する場所を決定します。各 Google Cloud プロジェクトには、デフォルトのログスコープとトレース スコープを識別する単一のオブザーバビリティ スコープがあります。指標データの場合、プロジェクトの指標スコープによって、Google Cloud コンソールがデータを検索する場所が決まります。

アプリケーションのすべてのテレメトリー データを表示または分析するには、管理プロジェクトのオブザーバビリティ スコープと指標スコープを構成します。これらのスコープを構成すると、データが複数のプロジェクトに保存されている場合でも、Cloud Hub などのサービスでアプリケーションのログ、指標、トレース データを見つけて表示できます。

このセクションでは、必要な構成の概要を説明します。詳しい手順については、アプリケーションのモニタリングを設定するをご覧ください。次の表に、必要な構成スコープを示します。

Scope コンポーネント 構成シナリオ 主なアクションと考慮事項
ログスコープ 集約シンクを使用して、組織内のすべてのログを一元的なログバケットに転送します。
  1. バケットに保存されているアプリケーション ログのみを含むログビューを作成します。
  2. ログビューを含めるように、管理プロジェクトのデフォルトのログスコープを構成します。
組織レベルの集約シンクがなく、アプリ対応フォルダにネストされたフォルダがない。
  1. アプリケーション ログを管理プロジェクトの _Default ログバケットに転送するように集約シンクを構成します。
  2. _Default という名前のログスコープがデフォルトのログスコープであることを確認します。
集約シンクを使用しない。 管理プロジェクトでデフォルトのログスコープを構成して、アプリケーションのログデータの保存場所を一覧表示します。
指標スコープ 表示する指標データを保存するすべてのプロジェクトを含むアプリ対応フォルダを構成した。 Google Cloud Observability は、アプリ対応フォルダ内のプロジェクトのリストを指標のスコープ内のプロジェクトのリストと同期しようとします。

アプリ対応フォルダ内のプロジェクト数が指標スコープの割り当てを超えない限り、Google Cloud Observability は、アプリ対応フォルダ内のプロジェクトを追加または削除したときに、指標スコープのプロジェクトのリストを更新できます。
トレースのスコープ 複数のプロジェクトにわたってアプリケーション トレースデータをモニタリングする必要がある。
  1. アプリケーションのトレースデータを保存するプロジェクトを一覧表示するカスタム トレース スコープを管理プロジェクトに作成します。
  2. カスタム トレース スコープをデフォルトのトレース スコープとして設定します。

アプリケーション管理を無効化

Google Cloud フォルダをアプリ管理用フォルダとして使用しない場合は、次の手順でアプリ管理を無効にします。

  1. リーエンによってアプリ管理用フォルダの管理プロジェクトがプロジェクトの削除から保護されている場合は、リーエンを削除する必要があります。詳細については、リーエンによるプロジェクトの保護をご覧ください。

  2. アプリケーション管理を無効にする Google Cloud フォルダを選択します。

  3. Google Cloud コンソールで、[リソースの管理] ページを開きます。

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

  4. プロジェクトとフォルダのリストで、アプリ管理用フォルダを見つけます。

  5. フォルダの行で、アクション)メニューを開き、[設定] をクリックします。

    アプリ対応フォルダ アイコンが付いているフォルダは、アプリケーション管理用に構成されています。

  6. [無効にする] をクリックして、フォルダのアプリケーション管理を無効にします。

  7. 確認ダイアログの [無効にする] フィールドに Disable と入力します。

  8. アプリケーション管理を無効にする準備ができたら、[無効にする] をクリックします。

フォルダ内の管理プロジェクトが削除されます。API やアクセス制御など、アプリケーション モデル全体も削除されます。

次のステップ