ほとんどの場合、プライマリノードに障害があるか過負荷がかかっているために、クラスター内の読み取り専用ノードでのデータレプリケーションが失敗した場合、データベースプロキシエンドポイントを使用して接続されているクラスターは、読み取りまたは書き込み要求を処理できなくなります。 ただし、クラスター内の読み取り専用ノードは引き続き読み取り要求を処理できます。 このトピックでは、ノードをデータベースシステムのプロビジョニングされたインスタンスまたはRDSクラスターのノードと呼びます。 データベースプロキシの予約済みノードの最小数を設定できます。 プライマリノードに障害があるか過負荷がかかっている場合、特定の数のノードが読み取り要求を処理するために予約されます。 これにより、クラスターの可用性が向上します。
適用日
2024年11月26日
機能の説明
例外が発生した場合に読み取り要求を処理するための特定の数の読み取り専用ノードを保持するように、予約済みノードの最小数を設定できます。 たとえば、プライマリノードに障害が発生したり、読み取り専用ノードでのデータ複製が中断されたりします。 予約済みノードの最小数を設定すると、特定の数の読み取り専用ノードが読み取り要求を処理するために予約されます。 次の式を使用して、予約済み読み取り専用ノードの最小数を計算できます。min {予約済みノードの最小数, 読み取り重みが0に設定されていない通常の読み取り専用ノードの数}
。
通常の読み取り専用ノードは、[実行中] 状態の読み取り専用ノードを指します。 通常の読み取り専用ノードのレプリケーション状態に制限はありません。
シナリオ
次のシナリオでは、予約済みノードの最小数を設定できます。
プライマリノードに障害があるため、読み取り専用ノードでのデータ複製が中断されます。
この場合、データベースプロキシエンドポイントが読み取り要求を処理できるように、予約済みノードの最小数を設定できます。
大量のデータがプライマリノードに書き込まれた場合、読み取り専用ノードのレプリケーションレイテンシがレイテンシしきい値を超え、負荷分散を実装できません。
大量のデータがプライマリノードに書き込まれたために読み取り専用ノードのレプリケーション遅延が遅延しきい値を超える場合、すべての読み取り要求がプライマリノードに転送されます。 その結果、プライマリノードが過負荷または中断される可能性があります。 予約済みノードの最小数を設定すると、予約済み読み取り専用ノードはプライマリノードからの読み取り要求をオフロードします。 これにより、CPU負荷が重いためにプライマリノードが中断されるのを防ぎます。
ノード保持ポリシー
読み取り要求を転送できる読み取り専用ノードの数が、指定した予約済みノードの最小数より少ない場合、システムは次のポリシーに基づいて読み取り専用ノードを保持します。
読み取り要求が転送された読み取り専用ノードは引き続き保持されます。 また、レプリケーションレイテンシがレイテンシしきい値よりも大きく、データレプリケーションが中断されない読み取り専用ノードは優先的に保持されます。 これらのタイプの読み取り専用ノードの数が、指定した予約済みノードの最小数よりも少ない場合、データレプリケーションが中断される読み取り専用ノードは保持され、予約済みの読み取り専用ノードの数が指定した予約済みノードの最小数と同じになるようにします。
ノードが前述の優先度要件を満たし、同じレプリケーションステータスを持つ場合、読み取り専用ノードは読み取り重みによって保持されます。 高い読み取り重みを有する読み取り専用ノードは優先的に保持される。
予約済みノードの最小数を設定すると、レプリケーション遅延が遅延しきい値を超えるノードに読み取り要求を転送できます。 読み取り要求は、読み取り重みが0に設定されているノードには転送されません。
次の表は、ノード保持ポリシーを理解するのに役立ちます。
レプリケーションステータスが異なる予約済みノードの数
シナリオ
予約済みノードの最小数
最大レイテンシしきい値
RO1 (レプリケーションレイテンシ)
RO2 (レプリケーション遅延)
RO3 (レプリケーション待ち時間)
読み取り可能なデータベースプロキシ
読み取り可能ノード
1
1
-1
-1
-1
-1
対象
RO1
2
-1
50
60
対象
RO2
3
1
30
0
40
40
対象
RO1
4
40
50
60
対象
RO1
5
-1
-1
-1
対象
RO1
6
-1
50
60
対象
RO2
7
2
30
20
60
40
対象
RO1およびRO2
8
20
-1
60
対象
RO1およびRO3
9
20
-1
-1
対象
RO1およびRO2
説明-1
の値は、レプリケーションが中断されたことを示します。 値が0
の場合は、レプリケーションの待ち時間がないことを示します。 0より大きい値は、レプリケーションが遅延しているが中断されていないことを示します。RO
は読み取り専用ノードを指します。レプリケーションステータスが同じで読み取り重みが異なるノードの数
シナリオ
予約済みノードの最小数
RO1 (読み取り重量)
RO2 (読み取り重量)
RO3 (読み取り重量)
読み取り可能
読み取り可能ノード
10
2
0
20
0
対象
RO2
11
0
0
0
✕
なし
12
0
20
20
対象
RO2およびRO3
説明値
0
は、読み取り要求がノードに転送されないことを示します。 0より大きい値は、読み取り要求がノードに転送されることを示します。
手順
最初にRDSインスタンスのデータベースプロキシ機能を有効にしてから、データベースプロキシ設定で予約済みノードの最小数を指定できます。 詳細な手順の詳細については、「予約済みノードの最小数の設定」をご参照ください。