Azure のマルチテナント ソリューションでは、一般的に Azure SQL Database が使用されます。 この記事では、マルチテナント システム設計をサポートする SQL Database の主な機能について説明します。 また、マルチテナント ソリューションで Azure SQL を実装する方法のガイダンスと例も示します。
ガイダンス
SQL Database チームは、SQL Database を使用してマルチテナント アーキテクチャを実装する方法に関する広範なガイダンスを公開しています。 詳細については、「 サービスとしてのマルチテナント ソフトウェア (SaaS) データベース テナント パターン 」および 「SQL Database のパーティション分割」を参照してください。
マルチテナントをサポートする SQL Database の機能
SQL Database には、マルチテナントをサポートする多くの機能が含まれています。
エラスティック プール
エラスティック プールは、同じサーバー上の複数のデータベース間でのコンピューティング リソース共有をサポートします。 エラスティック プールを使用すると、データベースごとにパフォーマンスの弾力性を実現できます。 また、プロビジョニングされたリソースを複数のデータベースで共有することで、コスト効率を最大化することもできます。 エラスティック プールは、 ノイズの多い近隣の問題に対する組み込みの保護を提供します。
ハイパースケール エラスティック プールは、エラスティック プール モデルを Hyperscale サービス レベルに拡張します。 1 つの Hyperscale プールで多数のテナント データベースをホストし、テナントごとのデータ サイズとは別に共有コンピューティング リソースをスケーリングできます。 また、ハイパースケール プールでは、他のエラスティック プール層よりも各データベースの記憶域の上限が高くなります。 個々のテナント データベースが Hyperscale 以外のプールの記憶域の制限を超えている場合は、Hyperscale プールを使用します。 読み取りスケール レプリカ プールを追加して、テナント間の読み取りワークロードを分散できます。
詳細については、次のリソースを参照してください。
- SQL Database エラスティック プール
- 高密度エラスティック プールでのリソース管理
- SQL Database エラスティック プールを使用するアプリケーションのディザスター リカバリー (DR) 戦略
- Hyperscale Elastic Pool の概要
- コマンド ライン ツールを使用して Hyperscale エラスティック プールを操作する
Elastic Database ツール
シャーディング パターンを使用して、複数のデータベース間でワークロードをスケーリングできます。 SQL Database には、シャーディングをサポートするツールが用意されています。 これらのツールには、 シャード マップの管理が含まれます。これは、各シャードに割り当てられたテナントを追跡するデータベースとして機能します。 これらのツールには、 エラスティック ジョブを使用して、複数のシャードに対するクエリと管理操作を開始および追跡する機能も含まれています。
詳細については、次のリソースを参照してください。
行レベルのセキュリティ
行レベルのセキュリティは、 共有テーブルでテナント レベルの分離を適用するのに役立ちます。 詳細については、「Azure SQL での
キー管理
Always Encrypted 機能は、データベースにエンドツーエンドの暗号化を提供します。 テナントで独自の暗号化キーを指定する必要がある場合は、テナントごとに個別のデータベースをデプロイし、それらのデータベースで Always Encrypted を有効にすることを検討してください。
貢献者達
Microsoft では、この記事を保持しています。 次の共同作成者がこの記事を書きました。
主要な著者:
- Paul Burpo | FastTrack for Azure のプリンシパル カスタマー エンジニア
- ジョン・ダウンズ |プリンシパル ソフトウェア エンジニア、Azure パターン & プラクティス
その他の共同作成者:
- Silvano Coriani | Azure SQL のプリンシパル プログラム マネージャー
- Dimitri Furman | Azure SQL のプリンシパル プログラム マネージャー
- Sanjay Mishra | Azure SQL のプリンシパル グループ プログラム マネージャー
- Arsen Vladimirskiy | FastTrack for Azure のプリンシパル カスタマー エンジニア
公開されていない LinkedIn プロフィールを見るには、LinkedIn にサインインしてください。
次のステップ
- 大規模な SaaS プロバイダーのAzure SQLで 100 万個のデータベースを実行する: Dynamics 365と Microsoft Power Platform
- SQL Database 上の SaaS アプリケーションの設計パターン
- SQL Database のアーキテクチャのベスト プラクティス