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

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

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

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

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

  • プロデューサー プロジェクト: SaaS サービスが構成されているプロジェクト。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_idtenant_project_numberactuation_sa メール用に Terraform output 変数を定義します。
  • tenant_idinput 変数として受け取ります。

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

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

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

次のステップ