今年7月にガーミン連携・ストラバ連携を行った「ジョグのねっとわーく」。ランナーの詳細データ蓄積により、特にGarminから同期される activityDetails(走行詳細データ)がデータベースを圧迫し、移行の大きなボトルネックとなってきました。
そこで、今回のサーバー移設に合わせて計画しているのが、「14日以前のデータは自動でアーカイブへ逃がす」というDBの減量化プロジェクトです。
1. 開発のモットー:最短・シンプル・無人運転
当初はPythonによる制御も検討しましたが、最終的には「bash + mysql + mysqldump」という、最も堅牢でシンプルな構成を選択しました。
- 保持方針: 直近14日間のアクティブデータのみ本番環境に保持し、それ以前は順次アーカイブ(ロリポップ)へ移行します。
- バッチ処理の自動化: 毎晩深夜、3,000〜5,000件ずつ少量ずつdumpとimportを繰り返すcronを設定。一度に大量の負荷をかけず、「来週からは勝手に痩せ続けるDB」を実現します。
2. 「安全スイッチ」による表示の整合性担保
データを移動させる際に最も懸念されるのが「ユーザーから地図やラップが見えなくなる」ことです。
これに対し、PHP側には一行の分岐による安全スイッチを導入しました。
- まず本番環境(Hot)を探し、
- なければアーカイブ環境からデータをフェッチするというフローを構築。これにより、ユーザー体験を損なうことなくDB容量の削減が可能になります。
3. 「一回目を丁寧に」から始まる未来
週末には force_archive=1 パラメータを使用した強制テストを実施し、アーカイブ先のデータが正しく表示されるかを検証します。
フルバックアップに頼らず、システム自体が自律的にデータを整理する。この「使わなくて済む設計」こそが、これからの長期運用を支える柱となります。


