🤮
【第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