技術が生まれては消えていく「諸行無常」のITにおいて、唯一の資産は積み上げた「記録」である。
Vultrが提供するスナップショット機能は強力だが、それはプラットフォームという外部要素への依存を意味する。
万が一、クラウド事業者のリージョン障害やアカウント閉鎖が起きた際、手元に「本質的なデータ」が残っていなければ、その記録は霧散する。
本稿では、node01上のDocker Compose環境におけるバックアップ戦略と、物理メディアへの退避手順について記す。
1. バックアップ対象の特定
現在のLEMPスタックにおいて、バックアップすべき対象は以下の3点に集約される。
- MariaDBデータ(論理ダンプ): バインドマウントされたバイナリデータ(
./mariadb)を直接コピーするのは整合性のリスクがあるため、mariadb-dumpによる論理バックアップを行う。 - WordPressコンテンツ: アップロードした画像やテーマファイル(
./wordpress)。 - 設定ファイル一式: 再構築の設計図である
docker-compose.ymlおよび、証明書等を含むnginxディレクトリ全体。
これらをhost(Chromebook)を介し、最終的に外部ストレージへと物理的に退避させる。
2. バックアップスクリプトの実装
手作業によるバックアップは継続性を欠く。シェルスクリプトとcronによる自動化を実装する。
スクリプトの作成
/home/user/scripts/it-mujo-backup.sh として以下を作成。
#!/bin/bash
# IT-MUJO Backup Script
BACKUP_DIR="/home/user/backups/daily"
DATE=$(date +%Y%m%d)
FILE_DATE=$(date +%Y%m%d)
WP_STACK_DIR="/home/user/it-mujo"
echo "--- Backup Start: $DATE ---"
# ディレクトリ準備
mkdir -p $BACKUP_DIR
# 1. データベースの論理バックアップ
sudo docker exec mujo-db mariadb-dump -u root -p'your_root_password' wordpress > $BACKUP_DIR/db_backup_$DATE.sql
# 2. 設計図と静的ファイルのアーカイブ
sudo tar -czf $BACKUP_DIR/files_backup_$DATE.tar.gz -C $WP_STACK_DIR docker-compose.yml wordpress nginx
# 3. 権限の調整(生成されたバックアップファイルをuserが扱えるようにする)
sudo chown user:user $BACKUP_DIR/*.sql $BACKUP_DIR/*.tar.gz
# 4. 30日を経過した古いデータの削除
echo "Cleaning up old backups..."
find $BACKUP_DIR -type f -mtime +30 -delete
echo "--- Backup Completed: $(date "+%Y-%m-%d %H:%M:%S") ---"
cronによる定期実行
深夜3時に実行されるよう設定。静寂の中でバックアップを完結させる。
0 3 * * * /home/user/scripts/it-mujo-backup.sh > /home/user/scripts/backup.log 2>&1

3. 物理メディアへの退避:Samsung T7
サーバー内部に保存したバックアップファイルを、定期的にhostへ引き出し、物理メディアへと書き出す。
ここで使用するのが、NVMeの速度と堅牢性を備えた Samsung T7 である。
選定理由:
- 信頼性: NVMeベースの高速転送は、バックアップという「面倒な作業」の心理的ハードルを下げる。
- 堅牢性: 移動先での執筆が多いエンジニアにとって、衝撃に強いアルミボディは必須だ。
- 本質的価値: クラウドという虚空にあるデータを、確かな重みを持つ物理メディアに書き出した瞬間、記録は「自分のもの」になる。
rsync を用い、host側のマウントポイント(T7)へデータを同期する。
# node01からhostへ引き出し、そのままT7へ同期
rsync -avz node01:/home/user/backups/daily/ /mnt/chromeos/removable/T7/it-mujo-backup/

結び
Vultrのスナップショットに甘んじず、自らスクリプトを書き、信頼できる物理メディアにデータを刻む。。
流行が去り、インフラが変わっても、このデータさえあれば「IT-MUJO」はどこでも再建できる。その確信こそが、次の一歩を実直なものにする。
執筆環境: host (Chromebook / Debian 13)
公開基盤: node01 (Vultr / Debian 13 / Docker)
接続環境: NordVPN (NordLynx)

コメントを残す