『大丈夫だろう』が一番危険、バックアップは設計する
サービス停止・データ喪失は事業継続の根幹に関わります。本記事では編集部の視点で、バックアップとディザスタリカバリ(DR)の実践を公開情報をもとに整理します。PostgreSQL 実践 もご参考に。
RTO/RPO の定義
(1) RTO (Recovery Time Objective):復旧目標時間。(2) RPO (Recovery Point Objective):データ損失許容量。(3) SLA:顧客との合意。(4) 例:RTO 1h / RPO 5min:1時間以内に復旧、最大5分のデータ損失。(5) システム別に設計:すべて同じ基準にしない。
バックアップの3-2-1 ルール
(1) 3つのコピー。(2) 2つの異なる媒体。(3) 1つはオフサイト。(4) +1 (3-2-1-1):1つは offline で不変。(5) ランサムウェア対策:immutable backup が必須化。
主要パターン
(1) Backup & Restore:低コスト・RTO 長い。(2) Pilot Light:最低限の構成を別リージョンに。(3) Warm Standby:スケールダウン版を待機。(4) Multi-Site Active-Active:両方稼働・最高RTO。(5) 選択軸:コスト vs RTO/RPO。事業価値次第で適切な投資額が異なります。
データ別の戦略
(1) RDBMS:PITR + スナップショット + 物理レプリカ。(2) NoSQL:マネージドサービスのバックアップ機能を利用。(3) ファイル:S3 バージョニング + クロスリージョンレプリケーション。(4) 設定値:Git+IaCで再現可能に。(5) シークレット:Secret Manager の自動レプリケーション。Secrets 管理 も合わせて。
定期的な復旧訓練
(1) 四半期に1回のリストア訓練。(2) 手順のドキュメント化(ランブック)。(3) 役割分担:誰が何をするか。(4) 所要時間の計測:RTO 達成可能か検証。(5) 失敗を歓迎:訓練でこそ発見すべき。Observability 実践 も合わせて。
クラウド固有の機能活用
(1) AWS Backup:複数サービスの一元管理。(2) Cross-Region Replication:S3/RDS。(3) Route 53 ヘルスチェック:自動フェイルオーバー。(4) Global Database (Aurora):マルチリージョン読込。(5) Vault Lock:ランサムウェア対策の不変保管。AWS CDK 実践 もご参考に。
失敗しがちなパターン
(1) バックアップ取得済みだがリストア未確認。(2) RTO/RPO 未定義。(3) 同一リージョンに保管:地域災害で全損。(4) 暗号化キーの紛失:復旧不能。(5) 古いバックアップ放置:本番との差大。対策は、(1)定期訓練、(2)業務要件と合意、(3)クロスリージョン、(4)KMS のキー管理、(5)世代管理ポリシー、です。