テナントとテナント プロジェクト

このガイドでは、App Lifecycle Manager テナントの概要と、それらを使用して App サービスを整理する方法について説明します。

テナントとテナント プロジェクト

App Lifecycle Manager のテナント リソースは、アプリ サービスの論理的な顧客、クライアント、またはテナントを表します。主に、特定のテナントに属するユニットをグループ化するのに役立つ組織ツールとして機能します。

アプリに複数のテナントがある場合は、各テナントのリソースを個別の Google Cloud プロジェクトにプロビジョニングすることをおすすめします。テナント リソースを専用の Google Cloud プロジェクトに分離するには、少なくとも 2 つのプロジェクトを作成する必要があります。

  • プロデューサー プロジェクト: アプリ オファーが構成されているプロジェクト。SaaS アプリケーションに必要なプロデューサー プロジェクトは 1 つだけです。
  • テナント プロジェクト: 特定のテナントの App Lifecycle Manager リソースを含むプロジェクト。テナントごとに 1 つのプロジェクトを作成することをおすすめします。

テナントごとに個別のプロジェクトを使用すると、テナント プロジェクト内で構成(IAM ポリシーやネットワーク ピアリングなど)を設定し、各テナントの費用を追跡してリソースを管理できます。

テナント プロジェクトの作動用サービス アカウント

アクチュエーション サービス アカウントには、Terraform 構成で定義されているリソースを作成して管理するための権限がテナント プロジェクトに必要です。テナントごとに個別の作動アカウントを設定することをおすすめします。

作動サービス アカウントと、必要になる可能性のある権限の詳細については、作動サービス アカウントをご覧ください。

テナント プロジェクトの API

App Lifecycle Manager が Infrastructure Manager と作動サービス アカウントを使用してテナント プロジェクトにリソース(VM など)を作成する場合、必要な API をそのテナント プロジェクトで有効にする必要があります。そうでないと、プロビジョニングが失敗します。

テナント プロジェクト内で Terraform 構成で使用するすべてのリソースタイプに対して API を有効にする必要があります。

暫定的なユニットタイプを使用してテナントの設定を自動化する

新しいテナントごとにプロジェクトを手動で作成し、API を有効にして、IAM を構成すると、時間がかかり、エラーが発生しやすくなります。App Lifecycle Manager を使用して、テナント設定プロセスを自動化できます。これを行うには、次の Terraform 構成を含むプロビジョニング ユニットの種類を作成します。

  • テナント用に新しい Google Cloud プロジェクトを作成します。
  • その新しいプロジェクト内で必要な API を有効にします。
  • プロビジョニングされたテナント(プロデューサー プロジェクトまたはテナント プロジェクト)専用の作動サービス アカウントを作成します。
  • テナント プロジェクト内のサービス アカウントに必要な IAM 権限を付与します。
  • ネットワーキング、ロギング、その他のベースライン インフラストラクチャを設定します。

仮のユニットの種類は、次の条件を満たす必要があります。

  • 作成する tenant_project_id、tenant_project_number、actuation_sa メール用に Terraform output 変数を定義します。
  • tenant_project_id と tenant_project_number を input 変数として受け取ります。

アプリケーション ユニットの種類がプロビジョニング ユニットの種類に依存するように構成し、出力変数をアプリケーション ユニットの対応する入力変数にマッピングします。

ユニット種類の依存関係を構成すると、App Lifecycle Manager は、アプリケーションを含むユニットがプロビジョニングされる前に、基盤となるテナント インフラストラクチャ ユニットがプロビジョニングされていることを確認します(テナント プロジェクトを作成して権限を設定します)。

このパターンの実装の詳細については、ユニット間の依存関係を管理すると変数を使用するをご覧ください。

次のステップ