バックアップとリストア訓練
バックアップは「取っていること」よりも「戻せること」の確認が本番です。取得しているはずのバックアップが、いざという時に使えなかったという事態を防ぐための考え方を整理します。
バックアップの対象となるもの
一口に「バックアップ」といっても、対象になるものは一つではありません。代表的なものを挙げると、次のような範囲があります。
データベースのデータ :顧客情報や取引データなど、業務システムが扱うレコードそのものです。バックアップというと、まずこれを思い浮かべる方が多いはずです。
ファイルストレージ上のファイル :S3のようなオブジェクトストレージに保存された、利用者がアップロードした画像や添付ファイルなどです。データベースとは別の仕組みで管理されているため、データベースだけバックアップして満足していると、ファイルの方が漏れていることがあります。
ソースコード・インフラの構成情報 :アプリケーションのコードは通常Gitで管理され自然と複数の場所に分散しますが、IaCで管理しているインフラの構成や、手作業で行った設定内容は、失われると復旧に時間がかかる対象です。
認証情報・環境変数の設定内容 :シークレット・認証情報の管理で扱った値そのものも、暗号化した状態で保管し、失われても再設定できるようにしておく必要があります。
外部SaaSに保存されたデータ :CRMや会計ソフトなど、自社で構築していない外部サービスに保存されたデータも見落とされがちです。SaaS側の障害や社内の操作ミスによるデータ削除に備え、エクスポート機能などでの定期的な取得を検討しておきたい対象です。
「バックアップは取っている」の落とし穴
多くのシステムで、定期的なバックアップの取得自体は設定されています。しかし、そのバックアップから実際にデータを復元(リストア)できるかどうかを確認したことがある、という現場は意外と多くありません。バックアップの設定にミスがあり、実際には空のファイルが保存され続けていた、復元手順が誰にもわからない、といった事態は、障害が起きて初めて発覚します。
リストア訓練とは
リストア訓練は、実際にバックアップからデータを復元する手順を、平常時に一度試しておくことです。訓練を通じて、復元にどれくらいの時間がかかるか、手順のどこでつまずきやすいか、誰が対応できるかを事前に把握できます。障害発生時に「復元してみたら手順がわからず数時間ロスした」という事態を防ぐことが目的です。
確認しておきたいポイント
復元にかかる時間 :データ量が多い場合、復元に数時間かかることもあります。「どれくらいの時間、システムを止められるか」という業務側の許容範囲とあわせて確認しておく必要があります。
バックアップの保存先と保存期間 :バックアップを本番システムと同じ場所に保存していると、その場所ごと被災した場合に両方失われます。保存先を分けること、また何世代分・何日分を保持するかも決めておきます。
復元できる範囲 :システム全体を復元できるのか、特定のデータだけを部分的に復元できるのかによって、障害時の対応の選択肢が変わります。
「壊れてから困る」を防ぐために
バックアップとリストアの確認は、システム障害が起きたときの初動対応で扱う障害対応の一部でもあります。年に一度など頻度を決めて、実際に復元を試す機会を設けておくことが、いざという時の被害を最小限に抑える備えになります。