Azure でマルチテナント ソリューションを構築するときは、考慮する必要がある要素がいくつもあります。 このチェックリストを出発点として使用し、マルチテナント ソリューションの設計と構築に役立ててください。 このチェックリストは、Azure シリーズの記事 のアーキテクト マルチテナント ソリューション のコンパニオン リソースです。 チェックリストは、ビジネス上および技術的な考慮事項と 、Azure Well-Architected Framework の 5 つの柱を中心に構成されています。
ビジネスに関する考慮事項
企業間 (B2B)、企業間 (B2C)、エンタープライズ ソフトウェアなど、作成するソリューションの種類と、 テナントがユーザーとどのように異なるかを理解します。
テナントを定義します。 最初にサポートするテナントの数を理解し、成長計画を定義します。
価格モデルを定義 し、 テナントの Azure リソースの使用量と一致していることを確認します。
テナントを異なるレベルに分ける必要があるかどうかを把握します。 レベルには、価格、機能、パフォーマンスの約束、地理的な場所が異なる場合があります。
顧客の要件に基づいて、ソリューションのさまざまな部分に適した テナント モデル を決定します。
準備ができたら、 Microsoft コマーシャル マーケットプレースを使用して B2B マルチテナント ソリューションを販売します。
信頼性に関する考慮事項
Well-Architected フレームワークの信頼性チェックリストを確認します。これは、すべてのワークロードに適用できます。
うるさい隣人アンチパターンを理解する。 個々のテナントが他のテナントのシステムの可用性に影響を与えないようにします。
予想される成長のレベルに合わせてマルチテナント ソリューションを設計します。 ただし、非現実的な成長に対応する過剰な設計にならないようにします。
ソリューション のサービス レベル目標 (SLA) と必要に応じてサービス レベル アグリーメント (SLA) を定義します。 SLOとSLAは、テナントの要件に基づいている必要があります。
ソリューションのスケールをテストします。 すべてのレベルの負荷で正常に動作し、テナントの数が増えるにつれて正しくスケーリングされることを確認します。
カオスエンジニアリングの原則を適用して、ソリューションの信頼性をテストします。
セキュリティに関する考慮事項
ソリューションのすべてのレイヤーに ゼロ トラスト と最小特権の原則を適用します。
ユーザー要求をテナントに正しくマップできることを確認します。 ID システムの一部として、またはアプリケーション レベルのテナント承認などの別の方法を使用して、テナント コンテキストを含める方法を検討してください。
テナントの分離に対応するように設計します。 継続的にあなたの分離モデルをテストします。
アプリケーションのコードでテナント間のアクセスまたはデータ漏えいが防止されていることを確認します。
継続的な侵入テストとセキュリティ コード レビューを実施します。
データ所在地および満たす必要のあるコンプライアンスや規制の基準など、テナントのコンプライアンス要件を把握します。
ドメイン名を正しく管理し、未解決のドメイン ネーム システムやサブドメインの引き継ぎ攻撃などの脆弱性を回避します。
マルチテナントに関するサービス固有のガイダンスに従ってください。
コストの最適化に関する考慮事項
Well-Architected フレームワークのコスト最適化チェックリストを確認します。これは、すべてのワークロードに適用できます。
テナントごとの使用量を適切に測定し、インフラストラクチャ のコストと関連付けることができることを確認します。
アンチパターンを避ける。 アンチパターンには、コストの追跡の失敗、不要な精度でのコストの追跡、リアルタイム測定の使用、課金に監視ツールの使用が含まれます。
オペレーショナル エクセレンスに関する考慮事項
自動化を使用して、オンボード、デプロイ、プロビジョニング、構成など、テナントのライフ サイクルを管理します。
マルチテナント ソリューションの コントロール プレーン とデータ プレーンの違いを理解します。
サービスの更新プログラムのデプロイに関して適切なバランスを見つけます。 テナントの要件と独自の運用要件の両方を考慮します。
システム全体と各テナントの正常性を監視します。
特定のテナントで問題が発生した場合、または使用制限を超えたときに通知するようにアラートを構成してテストします。
分離とスケーリングのために Azure リソースを整理します。
デプロイと構成のアンチパターンを回避します。 アンチパターンには、テナントごとに個別のバージョンのソリューションを実行する、テナント固有の構成またはロジックをハードコーディングする、手動デプロイに依存するなどがあります。
パフォーマンスの効率に関する考慮事項
Well-Architected Framework のパフォーマンス効率チェックリストを確認します。これは、すべてのワークロードに適用できます。
共有インフラストラクチャを使用する場合は、 ノイズの多い近隣の 懸念を軽減する方法を計画します。 1 つのテナントが他のテナントのシステムのパフォーマンスを低下させることができないようにします。
テナントの需要に合わせてコンピューティング、ストレージ、ネットワーク、その他の Azure リソースをスケーリングする方法を決定します。
各 Azure リソースのスケール制限を検討してください。 リソースを 適切に整理して、 リソース編成のアンチパターンを回避します。 たとえば、非現実的なスケーリング要件で動作するようにソリューションを過剰に設計することがないようにします。
貢献者
Microsoft では、この記事を保持しています。 次の共同作成者がこの記事を書きました。
主要な著者:
- Arsen Vladimirskiy | プリンシパル カスタマー エンジニア
- Bohdan Cherchyk | シニア カスタマー エンジニア
その他の共同作成者:
- ジョン・ダウンズ |プリンシパル ソフトウェア エンジニア、Azure パターン & プラクティス
公開されていない LinkedIn プロフィールを見るには、LinkedIn にサインインしてください。
関連リソース
- マルチテナント ソリューションのアーキテクチャに関する考慮事項
- マルチテナントのアーキテクチャ アプローチ
- マルチテナントのサービス固有のガイダンス
- マルチテナント ソリューション のアーキテクトおよび開発者向けの
リソース