マルチテナント機能と Azure SQL Database
Azure のマルチテナント ソリューションでは、一般的に Azure SQL Database が使用されます。 このページでは、マルチテナント システムを設計する際に役立つ Azure SQL データベースの機能のいくつかについて説明します。 また、マルチテナント ソリューションで Azure SQL を使用する方法のガイダンスと例にもリンクしています。
ガイダンス
Azure SQL データベース チームは、Azure SQL データベースを使用したマルチテナント アーキテクチャの実装に関する広範なガイダンスを公開しています。 Azure SQL Database の マルチテナント SaaS パターンを参照してください。 また、「Azure SQL データベースをパーティション分割」するためのガイダンスについても検討してください。
マルチテナント機能をサポートする Azure SQL Database の機能
Azure SQL データベースには、マルチテナント機能をサポートする多くの機能が含まれています。
エラスティック プール
エラスティック プールを使用すると、同じサーバー上の多くのデータベース間でコンピューティング リソースを共有できます。 エラスティック プールを使用すると、各データベースのパフォーマンスを柔軟に実現できます。また、プロビジョニングされたリソースをデータベース間で共有することによってコスト効率を高めることもできます。 エラスティック プールは、 雑音が多い近隣の問題に対する組み込みの保護を提供します。
詳細情報:
Elastic Database ツール
シャーディング パターン を使用すると、複数のデータベースにわたってワークロードをスケーリングできます。 Azure SQL Database には、シャーディングをサポートするツールが用意されています。 これらのツールには、 シャード マップ (各シャードに割り当てられたテナントを追跡するデータベース) の管理機能が含まれています。 また、 エラスティック ジョブを使用して、複数のシャードに対してクエリと管理操作を開始および追跡する機能も含まれています。
詳細情報:
- エラスティック データベース ツールと行レベルのセキュリティを使用したマルチテナント アプリケーション
- Azure SQL Database によるスケールアウト
- エラスティック データベース ジョブ
- エラスティック ジョブのチュートリアル では、エラスティック ジョブを作成、構成、および管理するプロセスについて説明します。
行レベルのセキュリティ
行レベルのセキュリティは、共有テーブルを使用するときに、テナントレベルの分離を適用する場合に便利です。
詳細情報:
キー管理
Always Encrypted 機能は、データベースのエンドツーエンドの暗号化を提供します。 テナントが独自の暗号化キーを提供する必要がある場合は、テナントごとに個別のデータベースを配置することを検討し、Always Encrypted 機能を有効にすることを検討してください。
詳細情報:
共同作成者
この記事は、Microsoft によって保守されています。 当初の寄稿者は以下のとおりです。
プリンシパル作成者:
- Paul Burpo | FastTrack for Azure のプリンシパル カスタマー エンジニア
- John Downs | プリンシパル ソフトウェア エンジニア
その他の共同作成者:
- Silvano Coriani | Azure SQL のプリンシパル プログラム マネージャー
- Dimitri Furman | Azure SQL のプリンシパル プログラム マネージャー
- Sanjay Mishra | Azure SQL のプリンシパル グループ プログラム マネージャー
- Arsen Vladimirskiy | FastTrack for Azure のプリンシパル カスタマー エンジニア
パブリックでない LinkedIn プロファイルを表示するには、LinkedIn にサインインします。
次のステップ
マルチテナントのストレージとデータ アプローチを確認します。
関連リソース
- Azure SQL Database 用のデータ パーティション分割戦略
- ケース スタディ: 大規模な SaaS プロバイダーのために Azure SQL で 1M のデータベースを実行する: Microsoft Dynamics 365 および Power Platform
- サンプル: Wingtip チケット SaaS アプリケーション には、同じアプリの 3 つのマルチテナントの例が用意されており、各例で Azure SQL データベースの異なるデータベース テナント パターンを探索します。 1 つ目では、独自のデータベースを持つテナントごとのスタンドアロン アプリケーションを使用します。 2 つ目では、テナントごとにデータベースを備えたマルチテナント アプリを使用します。 3 つ目のサンプルでは、シャードされたマルチテナント データベースを備えたマルチテナント アプリを使用します。
- ビデオ: Azure SQL Database での SaaS アプリケーション用のマルチテナント設計パターン