Azure Cosmos DB 専用ゲートウェイ - 概要
適用対象: NoSQL
専用ゲートウェイは、自分の Azure Cosmos DB アカウントのフロントエンドであるサーバーサイド コンピューティングです。 専用ゲートウェイに接続すると、要求のルーティングとデータのキャッシュの両方が行われます。 プロビジョニングされたスループットと同様に、専用ゲートウェイは 1 時間単位で請求されます。
概要
専用ゲートウェイをプロビジョニングして、大規模なパフォーマンスを向上させることができます。 専用ゲートウェイをプロビジョニングする最も一般的な理由は、キャッシュです。 専用ゲートウェイをプロビジョニングすると、統合 キャッシュが専用ゲートウェイ内に自動的に構成されます。 統合キャッシュにヒットしたポイントの読み取りとクエリでは、どの RU も使用されません。 統合キャッシュを使用して専用ゲートウェイをプロビジョニングすると、Azure Cosmos DB 上で読み取り負荷の高いワークロードを使用して、ワークロードのコストを削減できます。
専用ゲートウェイは、Azure Cosmos DB に構築されます。 専用ゲートウェイをプロビジョニングする場合は、バックエンド パーティションに要求をルーティングするフルマネージド ノードがあります。 専用ゲートウェイを使用して Azure Cosmos DB に接続すると、標準ゲートウェイを使用して Azure Cosmos DB に接続するよりも待機時間が短くなり予測しやすくなります。 専用ゲートウェイと標準ゲートウェイを比較すると、キャッシュ ミスでも待機時間が改善されます。
アプリケーションで専用ゲートウェイを使用するために必要なコード変更は最小限です。 新しい Azure Cosmos DB アカウントと既存の Azure Cosmos DB アカウントの両方で、読み取りパフォーマンスを向上させる専用ゲートウェイをプロビジョニングできます。
Note
専用ゲートウェイについてフィードバックがありますか? ご意見をお待ちしています。 ぜひ、Azure Cosmos DB エンジニアリング チーム (cosmoscachefeedback@microsoft.com) まで直接ご意見をお寄せください。
接続モード
Azure Cosmos DB には、直接モードとゲートウェイ モードの 2 つの 接続モードがあります。 ゲートウェイ モードでは、構成するエンドポイントに応じて、標準ゲートウェイまたは専用ゲートウェイに接続できます。
ダイレクト モードを使用して Azure Cosmos DB に接続する
ダイレクト モードを使用して Azure Cosmos DB に接続すると、アプリケーションは Azure Cosmos DB バックエンドに直接接続します。 多くの物理パーティションがある場合でも、要求ルーティングは完全にクライアント側で処理されます。 ダイレクト モードでは、アプリケーションが Azure Cosmos DB バックエンドと直接通信でき、中間ネットワーク ホップは必要ないため、待機時間が短くなります。 ダイレクト モードで接続することを選択した場合、要求では専用ゲートウェイおよび統合キャッシュが使用されません。
ゲートウェイ モードを使用して Azure Cosmos DB に接続する
ゲートウェイ モードを使用して Azure Cosmos DB に接続すると、アプリケーションはまずフロントエンドノードに接続します。これにより、適切なバックエンドノードへの要求のルーティングが処理されます。 ゲートウェイモードには追加のネットワーク ホップが関係しているため、ダイレクト モードと比べて待機時間が若干長くなる場合があります。
ゲートウェイ モードで Azure Cosmos DB に接続する場合は、次のいずれかのオプションを使用して接続できます。
- 標準ゲートウェイ - プロビジョニング済みのスループットとストレージを含むバックエンドには、コンテナーごとに専用の容量がありますが、標準ゲートウェイは多くの Azure Cosmos DB アカウント間で共有されます。 個々のお客様によって消費されるコンピューティング リソースは少量であるため、多くのお客様が標準ゲートウェイを共有するのは実用的です。
- 専用ゲートウェイ - このゲートウェイには、バックエンドとゲートウェイの両方に専用の容量があります。 統合キャッシュには、Azure Cosmos DB アカウントに固有の CPU とメモリが大量に必要なため、専用のゲートウェイが必要です。
統合キャッシュを使用するには、専用ゲートウェイを使用して Azure Cosmos DB に接続する必要があります。 専用ゲートウェイには、Azure Cosmos DB アカウントに付属の標準のものとは異なるエンドポイントがありますが、要求は同じ方法でルーティングされます。 専用ゲートウェイエンドポイントに接続すると、アプリケーションから専用ゲートウェイに要求が送信され、その要求が別のバックエンド ノードにルーティングされます。 可能であれば、統合キャッシュによって結果が提供されます。
専用ゲートウェイでのゲートウェイ モード接続の図:
専用ゲートウェイのプロビジョニング
専用ゲートウェイ クラスターは、NoSQL 用 API アカウントでプロビジョニングできます。 専用ゲートウェイ クラスターには既定で最大 5 つのノードを含めることができ、いつでもノードを追加または削除できます。 アカウント内のすべての専用ゲートウェイ ノードは、 同じ接続文字列 を共有します。
専用ゲートウェイ ノードは、互いに独立しています。 複数の専用ゲートウェイ ノードをプロビジョニングする場合、任意の 1 つのノードで任意の要求をルーティングできます。 さらに、各ノードには、他のノードとは別の統合キャッシュがあります。 各ノード内のキャッシュされたデータは、その特定のノードから最近書き込まれたか読み取られた データによって異なります。 項目またはクエリが 1 つのノードにキャッシュされている場合、必ずしも他のノードにキャッシュされているとは限りません。
開発では、1 つのノードから開始することをお勧めしますが、実稼働環境では、高可用性を確保するために 3 つ以上のノードをプロビジョニングする必要があります。 統合キャッシュ を使用して専用ゲートウェイ クラスターをプロビジョニングする方法について説明します。 複数の専用ゲートウェイ ノードをプロビジョニングすると、専用ゲートウェイ クラスターは、専用ゲートウェイ ノードの 1 つが使用できない場合でも、引き続き要求をルーティングし、キャッシュされたデータを提供できます。
専用ゲートウェイは、次のサイズで利用できます。 統合キャッシュは約 50% のメモリを使用し、残りはメタデータおよびバックエンド パーティションへのルーティング要求用に予約されています。
Sku 名 | vCPU | [メモリ] |
---|---|---|
D4s | 4 | 16 GB |
D8s | 8 | 32 GB |
D16s | 16 | 64 GB |
ヒント
作成後は、専用ゲートウェイ ノードを追加または削除できますが、ノードのサイズを変更することはできません。 専用ゲートウェイ ノードのサイズを変更するには、クラスターのプロビジョニングを解除し、別のサイズで再度プロビジョニングします。 これにより、再プロビジョニング中に標準ゲートウェイを使用するようにアプリケーションの接続文字列を変更しない限り、短時間のダウンタイムが発生します。
専用ゲートウェイをプロビジョニングするには、さまざまな方法があります:
- Azure portal を使用して専用ゲートウェイをプロビジョニングする
- Azure Cosmos DB の REAT API を使用する
- Azure CLI
- ARM テンプレート
- 注: ARM テンプレートを使用して専用ゲートウェイをプロビジョニング解除できません
注意
要求に応じて、利用可能なゾーンがある Azure Cosmos DB アカウントに専用ゲートウェイをプロビジョニングすることができます。 詳細については、cosmoscachefeedback@microsoft.com にお問い合わせください。
複数リージョンのアカウントの専用ゲートウェイ
複数リージョンのアカウントで専用のゲートウェイクラスターをプロビジョニングすると、各リージョンに同一の専用ゲートウェイ クラスターがプロビジョニングされます。 たとえば、米国東部と北ヨーロッパの Azure Cosmos DB アカウントについて考えてみます。 このアカウントにおいて、2 つの D8 ノードが含まれる専用のゲートウェイ クラスターをプロビジョニングすると、米国東部に 2 つ、北ヨーロッパに 2 つの合計 4 つの D8 ノードがあることになります。 各リージョンで専用のゲートウェイを明示的に構成する必要はありません。接続文字列は変わりません。 フェールオーバーを実行するためのベストプラクティスも変更されていません。
クラスター内のノードと同様に、リージョン間の専用のゲートウェイノードは独立しています。 各リージョンのキャッシュ データは、そのリージョンの最近の読み書き内容によって異なる場合があります。
制限事項
専用ゲートウェイには、次の制限があります。
- 専用ゲートウェイは、NoSQL 用 API アカウントでのみサポートされています
- 専用ゲートウェイ経由でルーティングされるデータ プレーン要求は、ロールベースのアクセス制御 (RBAC) を使用して認証することはできません
次の手順
専用ゲートウェイの使用の詳細については、次の記事を参照してください。
- 統合キャッシュ
- 統合キャッシュの構成
- 統合キャッシュのよくあるご質問
- Azure Cosmos DB への移行のための容量計画を実行しようとしていますか? 容量計画のために、既存のデータベース クラスターに関する情報を使用できます。
- 既存のデータベース クラスター内の仮想コアとサーバーの数のみがわかっている場合は、仮想コアまたは vCPU を使用した要求ユニットの見積もりに関するページを参照してください
- 現在のデータベース ワークロードに対する通常の要求レートがわかっている場合は、Azure Cosmos DB Capacity Planner を使用した要求ユニットの見積もりに関するページを参照してください