障害時のデータ復旧手順が考慮されているか?¶
Type: DeepDive
Category: 災害対策・可用性
Audience: 設計リーダー / SRE / インフラ設計者 / レビュー担当者
背景・概要¶
障害発生時に失われたデータをどのように復元するかを明示しておくことは、サービス品質の担保に直結する
保存・ログ出力・再取得APIの有無など、復旧方針によって設計が大きく異なるため、早期に合意しておく必要がある
例¶
- 通知送信ログをBigQuery・Redshift・Azure Data Explorerなどの分析基盤や、RDBMS(PostgreSQL/MySQL等)にアーカイブし、失敗通知は再送可能に
- 重要イベントのOutboxパターンにより、DB更新ログから再送処理が可能
- バックアップからのDBスナップショットリストア手順を手順書に記載済み
よくある失敗例¶
- 障害時にデータが失われ、復元できないことが後から発覚
- 復旧方法がバックアップのみで、数時間分のデータ損失が確定
- 誰も復旧方法を知らず、試行錯誤している間にSLAを超過
FAQ¶
Q. 自動バックアップだけで十分?
A. リカバリポイントまでの復元(RPO)と復旧までの時間(RTO)を意識しないと、意外と間に合わないものです
Q. データ復旧対象はどこまで考える?
A. 「ユーザーが修正できないデータ」はすべて復旧対象とすべきかな。マスターデータや機密データは特に注意が必要