次の方法で共有


マルチテナントと Azure Database for PostgreSQL

Azure の多くのマルチテナント ソリューションで、オープンソースのリレーショナル データベース管理システムである Azure Database for PostgreSQL を使用しています。 この記事では、マルチテナント システムを使用する場合に役立つ Azure Database for PostgreSQL の機能について確認します。 また、マルチテナント ソリューションで Azure Database for PostgreSQL を使用する方法についてのガイダンスと例へのリンクも提供します。

デプロイ モード

Azure Database for PostgreSQL に対しては、次の 2 つのマルチテナント アプリケーションでの使用に適したデプロイ モードがあります。

  • フレキシブル サーバー - これは、Azure Cosmos DB for PostgreSQL によって提供される高いスケーラビリティを必要としない、ほとんどのマルチテナント デプロイに対して適切な選択肢です。
  • Azure Cosmos DB for PostgreSQL - 高レベルのスケーリングを必要とするソリューション用に設計された Azure のマネージド データベース サービスで、多くの場合、マルチテナント アプリケーションを含みます。 このサービスは、Azure Cosmos DB 製品ファミリの一部です。

注意

Azure Database for PostgreSQL - 単一サーバーは廃止に向かっており、2025 年 3 月 28 日までに廃止される予定です。 これは新しいマルチテナント ワークロードに対しては推奨されません。

マルチテナントをサポートする Azure Database for PostgreSQL の機能

Azure Database for PostgreSQL を使用してマルチテナント アプリケーションを構築する場合に、さまざまな機能を使用してソリューションを強化できます。

Note

一部の機能は、特定のデプロイ モードでのみ使用できます。 これらの機能は、以下のガイダンスに記載されています。

行レベルのセキュリティ

行レベルのセキュリティは、共有テーブルを使用するときに、テナントレベルの分離を適用する場合に便利です。 PostgreSQL では、行レベルのセキュリティは、行セキュリティ ポリシーをテーブルに適用し、テナント別の行へのアクセスを制限することによって実装されます。

テーブルに行レベルのセキュリティを実装すると、パフォーマンスに若干の影響が生じる可能性があります。 そのため、パフォーマンスが影響を受けないように、行レベルのセキュリティが有効になっているテーブルに追加のインデックスを作成する必要がある場合があります。 行レベルのセキュリティが有効になっている場合は、パフォーマンス テスト手法を使用して、ワークロードがベースライン パフォーマンス要件を満たしていることを検証することをお勧めします。

詳細情報:

シャーディングを使用した水平スケーリング

シャーディング パターンを使用すると、複数のデータベースまたはデータベース サーバーにわたってワークロードをスケーリングできます。

非常に高いレベルのスケールを必要とするソリューションでは、Azure Cosmos DB for PostgreSQL を使用できます。 このデプロイ モードでは、複数のサーバー (ノード) 間でテナントを水平方向にシャーディングできます。 マルチテナント データベースで分散テーブルを使用すると、テナントのすべてのデータが同じノードに格納され、クエリのパフォーマンスが向上します。

注意

2022 年 10 月から、Azure Database for PostgreSQL Hyperscale (Citus) が Azure Cosmos DB for PostgreSQL としてブランド変更され、Cosmos DB 製品ファミリに移行されました。

詳細情報:

接続のプール

Postgres では、接続にプロセスベースのモデルが使用されます。 このモデルは、多数のアイドル状態の接続を維持するため、非効率的です。 一部のマルチテナント アーキテクチャでアクティブな接続が多数必要となり、Postgres サーバーのパフォーマンスに悪影響を及ぼします。

Azure Database for PostgreSQL フレキシブル サーバーには、PgBouncer 経由の接続プールが既定でインストールされています。

詳細情報:

共同作成者

この記事は、Microsoft によって保守されています。 当初の寄稿者は以下のとおりです。

プリンシパル作成者:

その他の共同作成者:

  • John Downs | FastTrack for Azure のプリンシパル カスタマー エンジニア
  • Arsen Vladimirskiy | FastTrack for Azure のプリンシパル カスタマー エンジニア
  • Paul Burpo | プリンシパル カスタマー エンジニア、FastTrack for Azure ISVs
  • Assaf Fraenkel | シニア エンジニア/データ アーキテクト、Azure FastTrack for ISVs and Start-ups

パブリックでない LinkedIn プロファイルを表示するには、LinkedIn にサインインします。

次の手順

マルチテナントのストレージとデータ アプローチを確認します。