【徹底解説】世界中のネットが止まった夜。Cloudflare大規模障害の意外な「真犯人」とは?

502エラー 一般
スポンサーリンク

2025年11月18日(火)の20時頃、XやChatGPTをはじめとする世界中の主要なWebサービスが一斉に繋がりづらくなる事態が発生しました。「502 Bad Gateway」の画面を見て、スマホの故障やサイバー攻撃を疑った方も多いのではないでしょうか。

インターネットの裏側を支える巨人「Cloudflare」で発生したこの大規模障害。 実はその原因は、高度なサイバー攻撃ではなく、たった1行の記述漏れと、想定外のシステム連鎖によるものでした。

今回は、なぜ世界中のインターネットが止まってしまったのか、その技術的な背景と「不運の連鎖」について解説します。

スポンサーリンク
スポンサーリンク

障害の概要

2025年11月18日の20時頃(日本時間)、Cloudflareで大規模な障害が発生し、同社のCDNを利用している多くのWebサービスやAPI、認証システムに影響が出ました。

この時間帯、ネット上では

「502エラーが表示される」
「ログインできない」
「タイムアウトする」

といった報告が相次ぎました。

原因についてですが、サイバー攻撃などではなく、内部システムでのデータベース更新作業中に起きた不具合が引き金だったようです。

原因:すべては「セキュリティ向上」のための変更から始まった

Cloudflareの報告によると、事の発端はデータベース(ClickHouse)の権限変更作業でした。セキュリティと信頼性を向上させるための前向きなメンテナンスが、皮肉にも引き金となってしまいました。

たった1行のクエリミス

クエリミス

エンジニアがデータベースの参照権限を変更した際、過去に作成されたSQLクエリに「データベース名の指定漏れ」があることが露呈しました。

これまでは特定のテーブルしか見えていなかったため問題ありませんでしたが、権限変更により裏側のテーブルも見えるようになったことで、クエリが同じデータを重複して拾ってくるようになってしまったのです。

設定ファイルの肥大化と「パニック」

この重複により、ボット対策などに使われる「機能ファイル(Feature File)」のサイズが突然2倍に膨れ上がりました。

ただファイルサイズが2倍になったからと言ってなぜここまでにの騒ぎになったのかがピンとこないですよね。実はそこに大きな落とし穴がありました。

このファイルを受け取った世界中のサーバー(プロキシシステム)で、以下の致命的なエラーが発生したのです。

システムクラッシュ

💾 容量オーバー
ファイルサイズが2倍になったことで、システム上の制限(200個)と言う重複制限を突破してしまいました。

💻 コードの自爆
システム記述言語(Rust)のコード内で、エラー時に強制終了させる処理(unwrap)が実行され、ボット管理モジュールが「パニック(クラッシュ)」を起こしました。何度処理を再開してもファイル読み込み時にエラーで強制終了するというループにハマってしまったのです。

これにより、ボットも人間も関係なく、すべての通信が遮断される事態となりました。

被害を拡大させた「3つの不運」

単なるシステムダウンであれば復旧はもっと早かったかもしれません。しかし、今回はいくつかの要因が重なり、エンジニアたちを混乱させました。

インターネット・ロシアンルーレット

ロシアンルーレット

データベースの更新は徐々に行われたため、サーバー群の中で「正常なファイルを持つサーバー」「バグったファイルを持つサーバー」が混在する状態になりました。

その結果、ユーザーの通信は5分ごとに繋がったり切れたりを繰り返す状態に。 この挙動があまりにも奇妙だったため、エンジニアたちは当初「高度なDDoS攻撃を受けているのではないか」と誤認してしまいました。

管理者が「締め出された」

締め出された

ここが最大の皮肉とも言えるポイントです。 エンジニアが復旧作業を行うための管理画面(ダッシュボード)へのログインには、Cloudflare自体の認証システム「Turnstile」が使われていました。

このTurnstile自体も障害でダウンしていたため、エンジニアは管理画面にログインすらできない状態に陥りました。

監視システムがトドメを刺した

監視システム

さらに大量のエラーが発生したことで、それを記録・分析しようとする「デバッグシステム」や「監視システム」がフル稼働しました。

結果として、これらの監視ツール自体がCPUリソースを食いつぶし、サーバーの処理能力をさらに奪うという悪循環が発生していました。

復旧と今後の対策

最終的にCloudflareは、自動生成システムの停止と、正常な過去ファイルの強制適用、およびサーバーの再起動を行うことで事態を鎮静化させました。完全復旧は同日の17時過ぎでした。

Cloudflareは再発防止策として以下を挙げています。

✅ 内部ファイルの厳格な検証
自社システムが生成したファイルであっても、外部入力と同様に厳しくチェックする。

✅ キルスイッチの拡充
問題発生時に、特定の機能だけを即座に切り離せる仕組みを強化する。

✅ 監視リソースの制限
エラーログの記録などが本体の動作を阻害しないよう制限を設ける。

まとめ

「インターネットの血管」とも言われるCDNの障害は、現代社会においてライフラインの停止と同義であることを痛感させられる出来事でした。

インターネットの血管

1行のコードミス、予期せぬエラーハンドリング、そして管理画面へのアクセス不能。これらが複雑に絡み合った今回の事例は、ITインフラに関わるすべての人にとって大きな教訓となったはずです。

コメント