ApsaraDB for MongoDB の読み取り専用ノードは、独立した接続文字列 URI を持ち、別システムが直接接続して、プライマリノードとセカンダリノードからの読み取りトラフィックをオフロードできます。
読み取り負荷が高いシナリオでは、プライマリノードとセカンダリノードが読み取りリクエストにより過負荷になり、ご利用のサービスに影響を及ぼす可能性があります。読み取り専用ノードを 1 つ以上作成することで、大量の読み取りリクエストを処理し、アプリケーションのスループットを向上させることができます。
読み取り専用ノードのアーキテクチャ

読み取り専用ノードには以下の特徴があります。
-
読み取り専用ノードは、oplog を使用して、プライマリノードまたはセカンダリノードからレイテンシが最も低いノードとデータを同期します。これにより、読み取り負荷が高いシナリオにおいて、プライマリノードおよびセカンダリノードの読み取り負荷を軽減できます。
-
読み取り専用ノードは独立した接続文字列 URI を持ち、分析サーバーなどの分析アプリケーションが直接接続するのに適しています。読み取り専用ノードへの接続は、プライマリノードおよびセカンダリノードへの既存の接続に影響を与えません。
-
読み取り専用ノードが 2 つ以上ある場合、ReadOnly ConnectionStringURI を使用して、読み取りリクエストの負荷分散を実現できます。
読み取り専用ノードとセカンダリノードの違い
|
ノード |
共通点 |
相違点 |
ユースケース |
|
読み取り専用ノード |
|
|
読み取り専用ノードが 2 つ以上ある場合、ReadOnly ConnectionStringURI を使用して読み取りリクエストの負荷分散を実現できます。これは、ビジネスインテリジェンス (BI) やビッグデータ分析など、大量のデータ読み取りが必要なシナリオに適しています。 |
|
セカンダリノード |
|
プライマリノードおよびセカンダリノードの接続文字列 URI を使用して、読み書き分離を実現できます。これは、書き込みよりも読み取りが多い同時実行シナリオに適しており、ノード障害からサービスを保護しながらパフォーマンスをスケーリングできます。 |
メリット
-
読み取り専用ノードの数をいつでも変更できるため、コストを効率的に管理できます。
-
読み取り専用ノードは独立した接続文字列 URI を持ち、別システムやアプリケーションが直接接続するのに適しています。プライマリノードおよびセカンダリノードへの既存の接続に影響を与えません。
-
読み取り専用ノードは、プライマリノードおよびセカンダリノードと同じ仕様を持ち、プライマリノードまたはセカンダリノードからレイテンシが最も低いノードと自動的にデータを同期するため、メンテナンスのオーバーヘッドがありません。
-
読み取り専用ノードは読み取りリクエストのみを処理し、プライマリノードのリソースを消費しません。読み取り専用ノードの追加または削除は、プライマリノードおよびセカンダリノードのワークロードや接続に影響を与えません。
-
ApsaraDB for MongoDB は、レプリカセットインスタンス向けに、すべての読み取り専用ノードに接続するための統一アドレス (ReadOnly ConnectionStringURI) を提供します。読み取り専用ノードの数を増やすことで読み取りキャパシティをスケールアウトでき、アプリケーション側の変更は不要です。
説明ReadOnly ConnectionStringURI の詳細については、「レプリカセットインスタンスの接続説明」をご参照ください。
制限事項
-
読み取り専用ノードは、ApsaraDB for MongoDB のレプリカセットインスタンスおよびシャードクラスターインスタンスでのみサポートされます。
-
読み取り専用ノードは読み取りリクエストのみを処理でき、プライマリノードの選出には参加しません。
-
レプリカセットインスタンスには、最大 5 つの読み取り専用ノードを追加できます。
-
シャードクラスターインスタンスの各シャードには、最大 5 つの読み取り専用ノードを追加できます。
-
データは、プライマリノードまたはセカンダリノードから読み取り専用ノードへ非同期でレプリケーションされます。通常、レプリケーション遅延はミリ秒単位ですが、プライマリノードの書き込み負荷が高くなると、遅延が数秒に達する可能性があります。
課金
読み取り専用ノードの料金は、親インスタンス(レプリカセットインスタンスまたはシャードクラスターインスタンス内のシャード)のシングルノードと同額です。
関連ドキュメント
-
インスタンス作成時に読み取り専用ノードの数を設定する場合:
-
レプリカセットインスタンスの作成: 読み取り専用ノード パラメーターを設定します。
-
シャードクラスターインスタンスの作成: 読み取り専用ノード パラメーターを設定します。
-
-
既存のインスタンスについて読み取り専用ノードの数を変更する場合:
-
-
従量課金インスタンスの場合、設定の変更 を選択します。
-
サブスクリプションインスタンスの場合、アップグレード設定 または Downgrade を選択します。
-
-
-
従量課金インスタンスの場合、設定の変更 を選択します。
-
サブスクリプションインスタンスの場合、単一のシャードを変更するには アップグレード設定 または Downgrade を選択します。複数のシャードを変更するには、一括アップグレード または 一括ダウングレード を選択します。
-
-