要点: バックアップは、実際に復元し、データを確認し、時間を測るまで復旧能力とは呼べません。
この記事の用語: RPO:許容するデータ損失量。RTO:許容する復旧時間。Failover:予備環境へ切り替えること。
現場の課題
レプリカは誤削除も複製します。バックアップも暗号鍵、キュー、ファイルが欠ければ使えません。復旧はデータだけでなく、業務を再開する一連の手順として試験する必要があります。
レプリカは誤削除も複製し、未復元のバックアップは仮定にすぎません。データ、キー、キュー、ファイル、サービス起動順を含めてRPOとRTOを実測します。
設計と実装
- プラットフォーム全体で一つではなく、業務機能ごとにRPOとRTOを定義します。
- 復旧に必要なデータストア、暗号鍵、キュー、ファイル、設定を一覧化します。
- 隔離環境への復元を自動化し、定期訓練で実時間を測ります。
実装例
restore(backupId, isolatedEnvironment)
assert pointInTime >= incidentTime - RPO
assert invariant('tenant_isolation')
assert invariant('ledger_balanced')
assert syntheticJourney('sign-in-to-publish')
approve traffic cutover本番導入の進め方
重要なデータストア一つの復元を自動化し、業務フローが完了するまで依存サービスを増やします。定期訓練で指揮担当を交代し、手作業を自動化へ変えます。
まとめ
復旧能力は、計測した時間と照合済みデータで証明します。レプリカの存在だけでは証明できません。
