RDB の永続性について

このページでは、Memorystore for Redis Cluster の RDB(Redis データベース)永続性の概要について説明します。

RDB 永続性の有効化、無効化、モニタリングの方法については、永続性の管理をご覧ください。

RDB 永続性に関するベスト プラクティスについては、永続性のベスト プラクティスをご覧ください。

RDB 永続性機能は、耐久性の高いストレージにデータのスナップショットを保存することで、データを保護します。これらのスナップショットの頻度は、1 時間から 24 時間までのスナップショット間隔を選択して指定します。ノード障害が発生した場合、フェイルオーバーが不可能な場合でもデータは復元されます。

レプリカを含むノードは、レプリカからのデータ復元を優先します。ただし、プライマリとレプリカの両方で同時に障害が発生した場合は、ノードは最新のスナップショットから復元されます。

RDB 永続性により、インスタンスの料金に追加料金は発生しません。この機能は、復旧後にある程度データのステイルネスが問題にならないユースケースに最適です。Memorystore は自動復旧にスナップショットを使用するため、スナップショットを手動で復元することはできません。また、保持されるのは最後に成功したスナップショットのみであることにも注意してください。

Memorystore for Redis Cluster は AOF 永続性もサポートしていますが、両方を同時に有効にすることはできないため、AOF 永続性モードと RDB 永続性モードのいずれかを選択する必要があります。2 つの永続モードの選択については、永続性の概要をご覧ください。可用性を最大限に高めるには、永続性を有効にするだけでなく、高可用性インスタンスを使用することをおすすめします。

スナップショットのスケジュール設定

スナップショットのスケジュールリングは、スナップショットの開始時刻とスナップショット間隔の 2 つの設定によって決まります。設定可能な間隔は 1h6h12h24h です。たとえば、開始時刻を午前 4 時に設定し、間隔を 1 時間に設定すると、スナップショットは、有効になっている日の午前 4 時 に開始し、それ以降は 1 時間ごとに繰り返し実行されます。

スナップショット スケジュールは UTC タイムゾーンで評価されるため、夏時間シフトのあるローカル タイムゾーンではスケジュール調整が行われます。たとえば、米国の DST の開始時と終了時に、タイムゾーンで DST の変更が反映される場合、スナップショット スケジュール ジョブのローカル開始時間が 1 時間前または後に移動します。

スナップショットを一時停止する

一定の期間、RDB スナップショットの取得を一時停止したい、というシナリオが発生する可能性があります。これは、重大なイベント中にパフォーマンスに影響が及ばないようにする、またはパフォーマンスの問題をトラブルシューティングするためにスナップショットを一時的に無効にするために取られる措置です。

スナップショットを一時停止するには、開始時間を将来に設定する必要があります。これにより、最後のスナップショットが保持され、復元時に使用されます。スナップショットを再開するには、次のスナップショットを作成するまでの時間を調整します。スナップショット スケジュールの調整について詳しくは、RDB スナップショットの間隔を調整するをご覧ください。

復旧動作

Memorystore for Redis Cluster ノードは、スナップショットから読み込むのではなく、プライマリ復旧メカニズムとしてレプリカにフェイルオーバーします。ただし、ノードで障害が発生し、レプリカから復元できない場合、ノードはスナップショットから復元されます。

復元時のデータの整合性

有効にすると、RDB 永続性は、ベスト エフォートで指定された間隔でバックアップが作成されるようにします。スナップショットはさまざまな理由で失敗する可能性があります。スナップショットが複数の間隔で連続して失敗すると、最後に使用可能だったバックアップが古くなっている可能性があります。

スナップショットからの復元で最悪のデータ ステイルネスのケースは、最後の良好なスナップショットが開始されてからの指定した間隔と、次のスナップショットをストレージに保存する時間の合計です。復旧インシデントの場合は、rdb_save_ages 指標を使用してデータ ステイルネスの時間枠を表示します。

復旧までの時間

ノードで障害が発生し、スナップショットからデータを復元する必要がある場合、復元中はノードを使用できません。復元時間はスナップショットのサイズによって異なります。

スナップショット エラー

失敗したスナップショットは、5 ~ 300 秒の指数バックオフを使用してすぐに再試行されます。スナップショットが連続して失敗すると、復元時にデータのステイルネスが増加します。

復元の失敗

復旧に失敗することはまれですが、起きることがあります。復元に失敗すると、ノードは復元が成功するまで繰り返し再試行します。

スナップショットのモニタリング

スナップショットをモニタリングし、失敗したスナップショットのアラートを設定することが重要です。RDB 永続性に関するベスト プラクティスについては、RDB 永続性のベスト プラクティスをご覧ください。スナップショットの失敗は、ノードの負荷が大きすぎて、スナップショットからの復元が不可能な状態が継続することを表している可能性があります。

スナップショットのモニタリングに使用できる指標のリストについては、永続性指標をご覧ください。

パフォーマンスへの影響を管理する

スナップショットが Memorystore インスタンスに与えるパフォーマンスの影響は、Cloud Monitoring で使用可能な指標(CPU 使用率やメモリ使用率など)を表示することでモニタリングできます。