VPSのバックアップとスナップショットガイド

執筆者 ONIE エンジニアリングチーム · 2026年11月12日更新 · 読了時間 1分

サーバーは、不適切なアップデート、操作ミス、マルウェア、ハードウェア障害などによって停止することがあります。確実な対策には、スナップショット、バックアップ、そして検証済みの復元手順を組み合わせることが重要です。ONIE上のホーチミン市のクラウドサーバーはスナップショットとバックアップに対応しており、データ用にBlock Storageを追加することもできます。

スナップショットとバックアップの違い

スナップショットバックアップ
概要ある時点のディスクの状態を保存したものサーバーまたはそのデータの独立したコピー
適した用途アップグレードや設定変更の前に素早く戻すため紛失、破損、削除からの復旧
保存場所元のサーバーに近い場所別のストレージ
速度作成と復元が速い遅めで、サイズに依存

両方を使いましょう。リスクのある変更の前にはスナップショットを、それ以外には定期バックアップを取得します。

3-2-1ルール

重要なデータは、3つのコピーを、2種類の異なるストレージに保持し、そのうち1つは別の場所に置きます。同じサーバー上のスナップショットだけでは十分ではありません。

ファイルのバックアップ

rsyncは変更された部分だけをコピーします。

rsync -aH --delete /var/www/ backup@backup-host:/srv/backups/www/

resticは、複数の保存先に対して暗号化と重複排除を行ったバックアップを作成します。

sudo apt install -y restic
restic -r sftp:backup@backup-host:/srv/restic init
restic -r sftp:backup@backup-host:/srv/restic backup /var/www /etc
restic -r sftp:backup@backup-host:/srv/restic forget --keep-daily 7 --keep-weekly 4 --prune

データベースのバックアップ

稼働中のデータファイルを直接コピーするのではなく、ダンプを使ってデータベースをコピーします。

mysqldump --single-transaction --routines -u root wordpress | gzip > /var/backups/wordpress-$(date +%F).sql.gz

PostgreSQLの場合はpg_dumpを使用します。

自動化

cronまたはsystemdタイマーでバックアップを実行し、古いコピーが削除されるように保持ポリシーを設定します。

sudo crontab -e
# every day at 02:30
30 2 * * * /usr/local/bin/backup.sh

復元のテスト

一度も復元したことのないバックアップは、単なる推測にすぎません。月に一度、予備のサーバーに復元し、サイトとデータが正常に動作するかを確認してください。手順は書き出しておき、チームの誰でも実行できるようにしておきましょう。

大きな変更の前に

スナップショットを取得し、変更を加え、テストを行い、問題がないと確信できたらスナップショットを削除します。これは安全なSSH設定と組み合わせると効果的で、WordPressサイトのアップグレード時にも同じ習慣が役立ちます。

よくある質問

How often should I back up?

Daily is common for sites and databases that change often. Back up more often if losing a day of data would hurt.

Are snapshots billed?

Snapshots and backups are billed by the space they use. See the current rates on the pricing page of the service.

Where should I store backups?

Not only on the same server. Use another location or provider so one failure cannot remove every copy.

参考資料と関連情報

その他のVPSガイド