🤮

【第1話】旧環境が絶望すぎた話

に公開

2020年に担当した、ある大手ECサイトの画像アーカイブシステム移行プロジェクトの記録です。
MogileFS+物理サーバー20台+Rails 2.3という化石環境から
Azure AKS+ActiveStorageへの移行を試み、
リリース本番で3回連続失敗し、3回目に緊急メンテを挟んでようやく成功させた実録の第1話です。

この記事は以下のシリーズの一部です(公開後にインデックスURLを挿入してください)
シリーズ一覧を見る


移行前の構成図(これを見た全員が無言になった)

数字で殴る旧環境スペック

項目 内容
画像総数 約17億ファイル(本体1.5億+サムネ15億)
総容量 約170TB
Railsバージョン 2.3系(2008年頃)
Rubyバージョン 1.8.7
MySQLバージョン 5.5(すでにサポート終了)
DBディスク 1台あたり600GB(常時90%超え)
ストレージ MogileFS+物理サーバー20台

特に絶望的だったポイント

  • 物理サーバー1台タヒぬたびに手動でディスク抜き差し
  • Rails 2.3+Ruby 1.8.7 → セキュリティパッチゼロ
  • MySQL 5.5+100シャード → ALTER TABLE で数日コース
  • 画像APIの1アクションが200行超え

移行を決意したきっかけ

2018年頃、以下のタイミングが重なったため完全に逃げ場がなくなりました:

  • 物理サーバーの保守切れ
  • Rails 2.3/Ruby 1.8.7 の完全EOL
  • MySQL 5.5 サポート終了
  • DBディスクが物理的に限界

移行先は以下に決定:

  • Azure AKS+Azure Blob Storage+CDN
  • Rails 5.2+ActiveStorage
  • DNS切り替えによるゼロダウンタイム移行

このときはまだ
「ActiveStorageならかなり楽になるはず!」
と本気で思っていました。

甘かったです。

次回、第2話:「40台バッチサーバーで17億ファイルを移したらメモリリーク祭りになった話」


170TB・17億ファイルの画像移行で3回失敗した2020年の全記録
第1話 完

Discussion