サーバー運用で唯一「これだけは」と言えるのがバックアップだ.障害・誤操作・侵害のどれが来ても,戻せる状態さえあれば事故は中断で済む.
対象はVPSで本番を運用する個人開発者・小規模チーム.読み終えたとき,戻せる体制を「仕組み」として組む方法が手に入ります.
なぜバックアップが最後の生命線なのか
セキュリティをどれだけ固めても,誤操作1回でデータは消える.rm一発,マイグレーション失敗,ランサムウェア── 原因は問わず結果は同じだ.
戻せる体制があれば,どんな事故も「数分の中断」に変わる.バックアップは保険ではなく,運用の前提条件だ.
2種類を理解する ― スナップショットとデータバックアップ
スナップショットはVPS丸ごとの瞬間コピーで,設定変更前の巻き戻しに最適だ.一方ファイル/DBバックアップは中身を個別に取り出せる.
両方を併用するのが理想だ.「丸ごと戻す」と「特定データだけ戻す」の両方の引き出しを持っておく.
3-2-1ルール ― バックアップの黄金律
データは3つ,媒体は2種類,1つは別の場所に持つ.これが3-2-1ルールだ.
同じVPS内にしかバックアップが無いと,そのVPSごと飛んだら全滅する.必ず1つは外部に逃がす.
- 3:本番+バックアップ2つ=計3つのコピー
- 2:スナップショット+ファイルダンプなど2種類
- 1:少なくとも1つは別ロケーションに保管
自動化する ― 人間の記憶に頼らない
手動バックアップは必ず忘れる.cronで自動化し,毎日決まった時刻に取る.
DBとファイルを毎日バックアップ(cron)
0 3 * * * pg_dump -U app mydb | gzip > /backup/db-$(date +%F).sql.gz
0 4 * * * tar czf /backup/files-$(date +%F).tgz /home/deploy/app/uploads
# 古い世代の削除(7日より前)
0 5 * * * find /backup -mtime +7 -delete外部に逃がす ― 別ロケーションへ転送
取ったバックアップを別のストレージや別サーバーへ転送する.rsyncやオブジェクトストレージへのアップロードが定番だ.
別サーバーへ夜間転送
30 5 * * * rsync -az /backup/ backup-user@remote-host:/remote-backup/リストア訓練 ― 取るだけで満足しない
最も多い失敗が「取れていたが戻せなかった」だ.定期的に,バックアップから実際に復元できるか試す.
リストア手順をメモに残し,慌てている深夜でもなぞれるようにしておく.これが本番の安心を支える.
補論:スナップショットの使いやすさが運用の質を決める
バックアップ運用のしやすさは,スナップショット機能の手軽さに大きく左右される.数クリックで取得・復元できるかどうかで,変更を試す心理的ハードルが変わる.
高速NVMe・50種類以上のOSテンプレートに対応した国内VPS─シン・VPS─ はスナップショットを取りやすく,大きな変更の前に丸ごと退避→失敗したら即復元という運用がしやすい.NVMe SSDでバックアップ・リストアの所要時間も短い.
バックアップ転送先のサブドメインやステージング環境を切るなら,取り扱い400種類以上のドメイン取得サービス─ムームードメイン─ で取得したドメインを使うと構成が整理しやすい.
よくある質問
Q1:スナップショットだけで十分?
不十分だ.スナップショットはVPSごと飛ぶリスクに弱い.必ずファイル/DBダンプを外部にも持つこと.
Q2:どのくらいの頻度で取る?
更新頻度に合わせる.毎日アクティブなら日次+大きな変更前のスナップショットが現実的なライン.世代管理で古いものは自動削除する.
Q3:バックアップが暗号化は必要?
個人情報を含むなら必要だ.転送・保管時に暗号化し,バックアップ自体が漏洩経路にならないようにする.
まとめ ― 「戻せる」が運用の自由を生む
戻せる体制があると,大胆に変更を試せるようになる.バックアップは守りであると同時に,攻めの土台でもある.
今日やるべきは1つ.バックアップを1本取り,それを実際に戻せるか試すこと.この往復ができていれば,あなたの運用は一段安全だ.