マルチテナント ソリューションのアーキテクチャに関する考慮事項

Azure

マルチテナント アーキテクチャを検討する場合は、下すべき決定と考慮すべき要素がいくつかあります。

マルチテナント アーキテクチャでは、リソースの一部またはすべてをテナント間で共有します。 このプロセスは、マルチテナント アーキテクチャを使用するとコストと運用の効率が向上することを表します。 ただし、マルチテナントにより、次のような複雑さがもたらされます。

  • 特定のソリューションに対して "テナント" とは何かをどのように定義するか。 テナントは、顧客、ユーザー、またはユーザーのグループ (チームなど) に対応しているか。
  • マルチテナントをサポートするためにインフラストラクチャをどのようにデプロイし、テナント間でどの程度の分離を行うか。
  • ソリューションでどのような商用価格モデルを提供するか、また、価格モデルはマルチテナント要件にどのように影響するか。
  • テナントに提供する必要があるサービスのレベルは何か。 データ所在地など、パフォーマンス、回復性、セキュリティ、コンプライアンスの要件を検討する。
  • ビジネスまたはソリューションの拡大をどのように計画しているか、およびそれを予想されるテナントの数に合わせてスケーリングする予定か。
  • テナントの中に、例外または特別な要件があるものはあるか。 たとえば、最大の顧客は、他よりも高いパフォーマンスまたは強力な保証を必要としているか。
  • Azure 環境をどのように監視、管理、自動化、スケーリング、統制するか、およびマルチテナントがこれにどのような影響を及ぼすか。
  • ソリューションのどのコンポーネントでテナントのオンボードと管理を処理するか。また、これらのコンポーネントをどのように設計する必要があるか。

必要条件

アーキテクチャが何であれ、顧客またはテナントの要件を明確に理解する必要があります。 顧客への販売契約を行った場合、または契約上の義務やコンプライアンス要件を満たす必要がある場合は、ソリューションを設計するときにそれらの要件を把握している必要があります。 しかし、同じく顧客も、物事がどのように機能 "すべき" か、または販売元がどのように振る舞う "べき" かについて暗黙の期待を持っている可能性があり、それがマルチテナント ソリューションの設計方法に影響を与える可能性があります。

たとえば、金融サービス業界の企業に販売するマルチテナント ソリューションを構築していると想像してください。 顧客には非常に厳しいセキュリティ要件があり、自社のファイアウォールの許可リストに追加できるように、ソリューションで使用されているすべてのドメイン名の包括的な一覧の提供を必要としています。 この要件は、使用する Azure サービスと、テナント間で提供する必要がある分離レベルに影響します。 また、ソリューションに最小レベルの回復性があることも求めています。 ソリューション全体にわたって検討する必要がある同様の期待が、明示的と暗黙的の両方で多数存在する可能性があります。

このセクションでは、マルチテナント アーキテクチャを計画するときに考慮すべき事項、引き出すべき要件、および行う必要があるいくつかのトレードオフについて概説します。

対象ユーザー

このセクションの記事は、最高技術責任者 (CTO) やアーキテクト、製品マネージャーなど、技術的意思決定者に特に関係があります。 対象ユーザーには、独立系ソフトウェアベンダー (ISV) や、SaaS ソリューションを開発するスタートアップ企業も含まれます。 さらに、マルチテナント アーキテクチャを使用する人はすべて、これらの原則とトレードオフにある程度精通している必要があります。

次のステップ

ソリューションに対してさまざまなテナント モデルを検討します。