Open1
【第3話】本番リリースで3回連続失敗した詳細 (draft)
前話で17億ファイル・170TBのデータ移行は完了した。
あとはDNSを切り替えるだけ……のはずだった。
結果:本番リリースで3回連続失敗。
4回目の緊急メンテでようやく成功させた。
この記事は以下のシリーズの一部です
シリーズ一覧を見る
失敗1回目(2020年5月)—— HTTP/2でレガシーシステムが表示不能に
| 項目 | 内容 |
|---|---|
| 原因 | UATはApache(HTTP/1.1)で検証 → 本番Nginx(HTTP/2) |
| 現象 | レガシー管理画面が画像をストリームとして解釈できず全画像真っ白 |
| 対応 | 切り替え30分後にDNS戻し → 謝罪連打 |
失敗2回目(2020年7月)—— F5連打でDB即タヒ
| 項目 | 内容 |
|---|---|
| 原因 | シャーディング廃止 → 画像使用量をリアルタイム集計に変更 |
| トリガー | ブログサービストップに使用量表示 → 誰かがF5連打 |
| 現象 | 1秒で数千QPS → DBコネクション枯渇 → 全サービス503 |
| 対応 | またDNS戻し → 使用量表示を夜間バッチ更新に変更(3回目で採用) |
失敗3回目(2020年8月)—— CDNキャッシュゼロでAKS爆発
| 項目 | 内容 |
|---|---|
| 原因 | DNS切り替え直後 → CDNキャッシュゼロ → 全リクエスト直撃 |
| 現象 | AKS PodがCPU100% → 503連発 |
| 対応 | 手動でレプリカ10→50にスケールアップ → キャッシュ貯まるまで40分耐久 |
3回失敗して学んだこと
| 回数 | 教訓 |
|---|---|
| 1 | 本番と同じプロトコルでUATしないとタヒぬ |
| 2 | リアルタイム集計は悪 → バッチに逃げる |
| 3 | CDNキャッシュゼロの負荷を甘く見るとタヒぬ |
次回、第4話:「緊急メンテ40分間の戦いとDNS切り替え成功」
170TB・17億ファイルの画像移行で3回失敗した2020年の全記録
第3話 完