メインコンテンツまでスキップ

マルチテナンシーの分離

Ultimate Multisite: Multi-Tenancy 1.2.0では、主権を持つテナントのために、サブサイトごとのデータベースとファイルシステムの分離をサポートします。これにより、テナントのデータは個別に保たれながら、ネットワークレベルでのプロビジョニング、請求、管理が維持されます。

分離戦略

より強力なデータ分離、専用のファイルシステムストレージ、または別のホスト境界が必要な顧客には、主権分離を使用してください。

各主権テナントには以下が必要です。

  • ホストで承認された、専用のテナントデータベースまたはデータベースプレフィックス戦略。
  • 専用のテナントファイルシステムのルート。
  • サイトをそのデータベース、ルートパス、ホスト名、および分離モデルにマッピングするテナントレジストリのエントリ。
  • テナントが稼働開始される前に移行検証の結果。

データベースホストバインディング

バージョン1.2.0では、主権インストールにおけるデフォルトの同一マシンホストバインディングの動作が変更されました。localhostのような同一マシンの値は正規化され、Bedrock、FrankenPHP、およびコンテナ化されたWordPressインストールが、MySQLが実際に認識するホスト文字列に対して権限を付与し検証できるようになります。

主権テナントを設定する際:

  1. データベースホストをテナントのランタイムが必要とする値に設定します。
  2. ホストがローカル接続を期待する場合、ローカルソケットインストールにはlocalhostを使用します。
  3. データベースサーバーがそのホストに特権を付与した場合のみ、127.0.0.1またはサービスホスト名を使用します。
  4. ホストバインディングを変更した後、移行検証を実行します。

検証で権限の付与に失敗したと報告された場合は、テナントDBユーザーの権限付与と設定されたホストバインディングを比較してください。user@localhostに付与されたユーザーは、[email protected]user@%とは異なります。

ファイルシステムのルート

テナントのルートディレクトリは、再起動やデプロイ後も安定している必要があります。一時的なマウントパスは避けてください。Bedrockスタイルのインストールの場合、テナントのルートがプロジェクトルートだけでなく、テナントブートストラップが期待するWordPressのウェブルートを指していることを確認してください。

プロビジョニングの順序

新しいソブリン(主権)テナントを作成する場合、以下の順序を使用してください。

  1. テナントレジストリのエントリーを作成します。
  2. テナントデータベースとデータベースユーザーを作成します。
  3. テナントスキーマをブートストラップします。
  4. テナントユーザーをプロビジョニングします。
  5. テナントのファイルシステムパスを設定します。
  6. マイグレーションの検証を実行します。
  7. 検証が成功した後、ルーティングまたはDNSを切り替えます。

この順序により、データベースライター、ユーザー、ファイルシステムが準備できる前に、部分的に隔離されたテナントにトラフィックが流れるのを防ぎます。

ソブリン顧客管理フロー

Ultimate Multisite v2.13.0では、ソブリンモードが有効になっている場合、顧客管理アクションはメインサイトで行われます。テナントは隔離されたWordPressインストールとして動作し続けることができますが、ネットワーク請求、メンバーシップ、または共有アカウントデータに依存する顧客向けの操作については、テナントのランタイム内でアクションを完了させようとするのではなく、顧客をメインサイトに戻すようにしてください。

メインサイトフローが適用されるのは以下の操作です。

  • チェックアウトとプランの変更。
  • アカウント概要および顧客プロファイルのアクション。
  • 請求先住所の更新と支払い管理画面。
  • 請求書および支払い履歴の表示。
  • サイトの追加や削除などのサイト管理アクション。
  • テンプレートの切り替え。
  • ドメインマッピングおよびプライマリドメインの変更。

顧客がソブリンテナントからこれらのアクションのいずれかを開始すると、Ultimate Multisiteは対応するメインサイトのURLを構築し、安全な場合にソーステナントをリターンターゲットとして保持します。これにより、顧客はネットワークレコードに対して管理されたアクションを完了した後、ソブリンデータベースで請求情報やメンバーシップの状態が重複することなく、テナントコンテキストに戻ることができます。

オペレーターにとっての実用的なルールは次のとおりです。ソブリンネットワーク向けに、請求、アカウント、チェックアウト、請求書、テンプレート、ドメイン管理のページをメインサイトで利用可能にしておきます。テナントダッシュボードからそれらのページへのリンクを設定することはできますが、アクションのソース(真実の情報源)は引き続きメインサイトとなります。