このガイドでは、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_id、tenant_project_number、actuation_saのメールアドレスの Terraformoutput変数を定義します。 tenant_project_idとtenant_project_numberをinput変数として受け取ります。
プロビジョニング ユニットの種類に依存するようにアプリケーション ユニットの種類を構成し、出力変数をアプリケーション ユニットの対応する入力変数にマッピングします。
ユニットの種類に関する依存関係を構成すると、App Lifecycle Manager は、アプリケーションを含むユニットがプロビジョニングされる前に、基盤となるテナント インフラストラクチャ ユニットがプロビジョニングされていること(テナント プロジェクトの作成と権限の設定)を確認します。
このパターンの実装の詳細については、ユニット間の依存関係を管理して 変数を使用するをご覧ください。
次のステップ
- テナント プロジェクトとリソースを作成する方法を確認する。
- ユニットをテナントに関連付ける方法を確認する