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

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

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

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

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

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

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

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

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

アクチュエーション サービス アカウントとその権限の詳細については、アクチュエーション サービス アカウントをご覧ください。

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

SaaS Runtime(Infrastructure Manager とアクチュエーション サービス アカウント経由)がテナント プロジェクトでリソース(VM など)を作成しようとすると、必要な API がそのテナント プロジェクトで有効になっている必要があります。そうでないと、プロビジョニングが失敗します。

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

仮ユニットの種類を使用してテナントの設定を自動化する

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

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

仮のユニットの種類は次のようになります。

  • 作成する tenant_project_idtenant_project_numberactuation_sa メール用に Terraform output 変数を定義します。
  • tenant_idinput 変数として受け取ります。

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

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

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

次のステップ