【あーるぴーおー】

RPO(目標復旧時点) とは?

最終更新:
💡 障害時に「どこまでセーブが残っていればいいか」を決めるルール

障害が起きたとき、どの時点までのデータを取り戻せればよいかの目標。言い換えると「最後に復旧できる時点から障害まで、どれだけの期間のデータ損失を許容するか」を定めたもの。

📌 このページのポイント
RPO(目標復旧時点) 時間 → 最終バックアップ 12:00 障害発生 18:00 最大6時間分(RPO 6時間の例) ← この間の更新は失われうる → RPO = 障害後、どの時点までのデータを取り戻せればよいかの目標 バックアップの間隔や複製の遅れを、RPO以内に収める必要がある
RPOのイメージ
ひよこ ひよこ
RPOって具体的にどういう意味?
ペンギン先生 ペンギン先生
ゲームのセーブで例えるとわかりやすいよ。RPOが1時間なら「障害が起きても、遅くとも1時間前のセーブまでは戻れるようにしておく」という目標。最大で1時間分の進行が失われることを受け入れる、という意味だね。RPOが0なら、データを1件も失わないことを目指すことになるよ
ひよこ ひよこ
RPOを短くするにはどうすればいいの?
ペンギン先生 ペンギン先生
戻れる時点を細かく用意するんだ。RPOが24時間なら日次バックアップが候補になるし、もっと短くしたいならトランザクションログの定期的な保存や、別の場所への継続的な複製を組み合わせる。たとえばAmazon RDSは5分ごとにトランザクションログを保存していて、保持期間内の任意の時点に戻せるよ。短くするほど、ストレージや仕組みのコストは増えるね
ひよこ ひよこ
RPOが0って本当に実現できるの?
ペンギン先生 ペンギン先生
書き込みが別の機器にも反映されるまで完了にしない同期レプリケーションなら、機器の故障でのデータ損失を防げるよ。ただし書き込みのたびに反映を待つから遅くなる。別のリージョンへの複製は非同期が多く、たとえばAurora Global Databaseは通常1秒未満の遅れでほぼ0に近づける仕組みだけど、0ではないんだ
ひよこ ひよこ
同期で複製していれば、どんな障害でも安心なの?
ペンギン先生 ペンギン先生
そこが落とし穴でね。誤ったDELETE文やデータの破損は、複製先にもそのまま反映されてしまう。AWSのホワイトペーパーでも、継続的な複製だけではデータ破損や悪意ある削除から守り切れないから、時点を指定して戻せるバックアップと組み合わせるよう説明しているよ。しかも、そのバックアップが本当に戻せるかを定期的に試しておかないと、いざというときに使えないんだ
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「RPO」って出てきたら「障害のとき、どの時点までのデータを取り戻せればよいかの目標のこと」と思えればだいたいOK!
📖 おまけ:英語の意味
「Recovery Point Objective」 = 復旧時点の目標
💬 Recovery(復旧)Point(時点)Objective(目標)。「どの時点のデータまで救う?」の目標値だよ

参考資料

← 用語集にもどる