ApsaraDB for MongoDB は、プライマリノードとセカンダリノードから読み取りワークロードをオフロードするために、インスタンスに独立した接続文字列 Uniform Resource Identifier(URI)を持つ読み取り専用ノードを提供します。 読み取り専用ノードは、プライマリノードとセカンダリノードが大量の読み取りリクエストを処理する場合に、独立したシステムへの直接接続に適しています。
大量の読み取りリクエストを受信するシナリオでは、プライマリノードとセカンダリノードでは読み取りワークロードを処理するには不十分であり、ビジネスに影響を与える可能性があります。 この場合、ビジネス要件に基づいて 1 つ以上の読み取り専用ノードを作成し、大量のデータベース読み取りリクエストを処理できます。 これにより、アプリケーションのスループットが向上します。
アーキテクチャ

読み取り専用ノードには、次の特徴があります。
読み取り専用ノードは、oplog を使用して、待機時間が最も短いプライマリノードまたはセカンダリノードからデータを同期します。 読み取り専用ノードは、大量の読み取りリクエストを受信するビジネスシナリオにおいて、プライマリノードとセカンダリノードの読み取りワークロードを軽減するために使用できます。
読み取り専用ノードは、インスタンスに独立した接続文字列 URI を持っています。 読み取り専用ノードは、分析サーバーなどの分析プログラムへの直接接続に適しています。 読み取り専用ノードは、既存のプライマリノードとセカンダリノードへの接続を中断しません。
インスタンスに 2 つ以上の読み取り専用ノードがある場合、読み取り専用接続文字列 URI を使用して、読み取り専用ノードが受信する読み取りリクエストのバランスをとることができます。
読み取り専用ノードとセカンダリノードの違い
ノード | 類似点 | 相違点 | シナリオ |
読み取り専用ノード |
|
| インスタンスに 2 つ以上の読み取り専用ノードがある場合、読み取り専用接続文字列 URI を使用して、読み取り専用ノードが受信する読み取りリクエストのバランスをとることができます。 読み取り専用ノードは、ビジネスインテリジェンス(BI)やビッグデータ分析など、既存のインスタンスから大量のデータが読み取られるビジネスシナリオに適しています。 |
セカンダリノード |
| 読み取り/書き込みリクエストは、異なる接続文字列 URI を使用して、プライマリノードとセカンダリノードで個別に処理できます。 これにより、インスタンスのパフォーマンスが向上し、ノードの障害がビジネスに影響を与えるのを防ぎます。 セカンダリノードは、読み取りリクエストの数が書き込みリクエストの数よりも多いシナリオに適しています。 |
利点
要件に基づいて読み取り専用ノードの数を変更して、コストを削減できます。
読み取り専用ノードは、インスタンスに独立した接続文字列 URI を持っており、独立したシステムへの直接接続に適しています。 読み取り専用ノードは、既存のプライマリノードとセカンダリノードへの接続を中断しません。
読み取り専用ノード、プライマリノード、およびセカンダリノードは同じ仕様です。 これにより、読み取り専用ノードは待機時間が最も短いプライマリノードまたはセカンダリノードからデータを同期でき、メンテナンスの必要性がなくなります。
読み取り専用ノードは、読み取りサービスのみを提供する独立したノードです。 ノードはプライマリノードとリソースを競合しません。 インスタンス内の読み取り専用ノードの数を変更しても、インスタンス内のプライマリノードとセカンダリノードは影響を受けず、プライマリノードとセカンダリノードへの接続は閉じられません。
ApsaraDB for MongoDB は、レプリカセットインスタンスに統一された読み取り専用接続文字列 URI を提供します。 この URI を使用して、レプリカセットインスタンス内のすべての読み取り専用ノードに接続できます。 データベース機能を拡張するために、アプリケーションコードを変更せずに読み取り専用ノードを追加できます。
説明詳細については、「レプリカセットインスタンスに接続する」をご参照ください。
制限
読み取り専用ノードは、レプリカセットインスタンスとシャードクラスターインスタンスでのみ使用できます。
読み取り専用ノードは読み取りリクエストのみを処理し、プライマリノードまたはセカンダリノードの選出プロセスには参加しません。
各レプリカセットインスタンスには、最大 5 つの読み取り専用ノードを追加できます。
シャードクラスターインスタンスの各シャードには、最大 5 つの読み取り専用ノードを追加できます。
データは、プライマリノードまたはセカンダリノードから読み取り専用ノードに非同期的にレプリケートされます。 ほとんどの場合、データレプリケーション中にミリ秒レベルの待機時間が発生する可能性があります。 プライマリノードの書き込みワークロードが高い場合、秒レベルの待機時間が発生する可能性があります。
料金
読み取り専用ノードの価格は、レプリカセットインスタンスのノード、またはシャードクラスターインスタンスのシャードのノードの価格と同等です。
関連情報
インスタンスの作成時に読み取り専用ノードを構成する方法の詳細については、次のトピックを参照してください。
レプリカセットインスタンスを作成する。作成時に、[読み取り専用ノード] パラメーターを構成します。
シャードクラスターインスタンスを作成する。作成時に、[シャード読み取り専用ノード] パラメーターを構成します。
既存のインスタンスの読み取り専用ノードの数を変更する方法の詳細については、次のトピックを参照してください。
インスタンスが従量課金インスタンスの場合は、設定の変更 をクリックします。
インスタンスがサブスクリプションインスタンスの場合は、ビジネス要件に基づいて アップグレード または ダウングレード をクリックします。
従量課金シャードクラスターインスタンスの構成を変更する場合は、シャードの [構成の変更] をクリックするか、複数のシャードの [構成の一括変更] をクリックします。
サブスクリプション シャードクラスターインスタンスの構成を変更する場合は、シャードの [アップグレード] または [ダウングレード] をクリックするか、複数のシャードの [一括アップグレード] または [一括ダウングレード] をクリックします。