テック技報最新号へ →
インフラ

個人サービスのストレージ見直し: R2 → GCS のバックアップをイベント駆動に、冷たいデータは DB から出す

60 万記事・60 万画像を抱える個人サービス「しずかなインターネット」での見直し例。日次の一括同期をアップロードごとのコピーに変え、アクセス頻度の低いデータは DB からオブジェクトストレージへ移してコストを下げる。

@catnose99 · 投稿 2026-01-29
#infra#cloudflare#r2#gcs#s3#cost#backup

1. バックアップを「日次一括」から「アップロードごと」に

  • 旧: 1 日 1 回、rclone で R2 → GCS に差分同期(データが増えるほど実行時間が伸びていた)
  • 新: R2 に画像をアップロード → Workers をトリガー → GCS にコピー
  • データ量に比例して重くなる定期ジョブを、イベントごとの小さな処理に分解する考え方。

2. アクセス頻度の低いデータを DB から出す

  • 背景: PlanetScale のプランのベース料金に従量課金が加わったので、DB に置くデータを減らしたい。
  • 記事本文のうち、エディタ用の JSON はアクセス頻度が低く多少の遅延も許容できるので、常に GCS に置いて必要なときだけ取り出す。
  • さらに削るなら、変換済み HTML も GCS に置き、アクセスの多いものだけ Redis でキャッシュする。
  • 注意点として、エクスポート機能などで記事ごとの JSON にまとめてアクセスする処理は面倒になる。

3. S3 ならライフサイクルルール

大量の画像・動画を扱うサービスが、ライフサイクルルールで日数ごとにストレージクラスを移して S3 のコストを抑えていた、という話。ストレージクラスの設計は侮れない。

出典

X の元の投稿を開く