
2026/02/22 4:05
**クラウドフレア障害 – 2026年2月20日**
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
2026年2月20日のCloudflare障害により、約1,100件のBYOIPプレフィックスがBGPから撤回され、影響期間は6時間7分でした。 クリーンアップサブタスクでは、Addressing API に空の `pending_delete` フラグを付けて問い合わせを行い、意図せずすべてのBYOIPプレフィックスを削除対象にキューしました。このバグは、モックデータが明示的な入力なしで自動タスクランナー実行をカバーしていないため、ステージングやテストでは検出されませんでした。 影響:コアCDN、Spectrum、Dedicated Egress、Magic Transit のサービスが該当顧客に対して停止しました。また、パブリックDNSリゾルバ 1.1.1.1 は HTTP 403 「Edge IP Restricted」を返しました。 インシデント中には、広告されたプレフィックス6,500件のうち4,306件がBYOIP(約25%が撤回)でした。 復旧:エンジニアは約18:46 UTCで変更をロールバックし、20:20 UTCまでに800件のプレフィックスを復元しました。残り約300件については23:03 UTCに手動で復元作業が必要でした。顧客は19:19 UTC以降、Cloudflareダッシュボードからプレフィックスを再広告することで自己修復も可能です。 根本原因:空の `pending_delete` クエリがすべてのBYOIPプレフィックスを削除対象にキューしたことにより、テストカバレッジで想定されなかったシナリオが発生しました。 このインシデントは、Cloudflare の「Fail Small」Code Orange イニシアチブ(制御されたロールアウトと安全なブレーク・グラス手順を目的)に関連しています。 計画中の改善策:`pending_delete` API スキーマの標準化、運用状態と構成状態をデータベーススナップショットで分離、巨大撤回操作向けのサーキットブレーカー監視、迅速なロールバックメカニズムの実装などです。
本文
2026‑02‑20 – Cloudflare BYOIP サービス障害
概要
2026年2月20日17:48 UTC、Cloudflare は「Bring Your Own IP(BYOIP)」サービスを利用している顧客に影響するサービス障害を経験しました。今回の事故は、アドレッシング API の自動変更が意図せず BGP 経由で顧客プレフィックスを撤回したことによるもので、約1,100件の BYOIP プレフィックスが撤回され、サービスへの到達不能と
one.one.one.one での 403 エラーが発生しました。障害は 6時間7分 継続し、復旧には変更を元に戻す作業、顧客によるプレフィックス再広告、グローバル設定更新が必要でした。
顧客への影響
| サービス / 製品 | 影響の内容 |
|---|---|
| Core CDN & Security Services | Cloudflare にトラフィックが流れず、接続失敗が発生。 |
| Spectrum | ルート欠落によりプロキシトラフィックが失敗。 |
| Dedicated Egress | BYOIP や Dedicated IP を利用するゲートウェイがアウトバウンドを送信できない。 |
| Magic Transit | 保護対象アプリケーションへの接続でタイムアウトや失敗が発生。 |
一部の顧客は Cloudflare ダッシュボードからサービスを回復できましたが、他にはエッジサーバーからバインディングが削除されたためにエンジニアによる手動対処が必要でした。
根本原因
- 自動サブタスク – 削除対象としてマークされたプレフィックスをクリーンアップする予定タスクが、
パラメータを省略した API 呼び出し(pending_delete
)を実行。?pending_delete= - サーバーはこれを「すべての BYOIP プレフィックスを対象」と解釈し、削除キューに入れた結果、サブタスクが全プレフィックスと依存オブジェクトを削除開始。
- この変更は 2月20日17:56 UTC にデプロイされ、即座に影響が発生。
テストから抜け落ちた理由
- ステージング環境のデータは本番と完全には一致せず、テスト用モックデータが不十分だった。
- 手動 BYOIP 自己サービスフローのみを対象にしたテストで、ユーザー入力なしで実行される自律タスクランナー は検証の範囲外だった。
復旧経路
| 時刻(UTC) | 実施内容 |
|---|---|
| 17:56 | サブタスクがプレフィックス削除を開始。 |
| 18:46 | 問題発見・サブタスク停止。 |
| 19:11 | エンジニアが撤回されたプレフィックスの復旧作業を開始。 |
| 19:19 | 顧客がダッシュボード経由でプレフィックスを再広告(部分的な緩和)。 |
| 20:30 | 削除済みプレフィックスのデータベース回復を開始。 |
| 21:08 | 未緩和プレフィックスを戻すためのグローバル設定展開。 |
| 23:03 | 展開完了、影響終了。 |
コードオレンジ:Fail Small との関係
- 段階的デプロイ – 本番投入前にステージングで検証・監視すべきだった。
- ブレイクグラス手順 – 設定と運用状態の分離が不十分で、手動介入がリスク高かった。
- 障害モードテスト – 自律背景タスクを含む包括的なテストの必要性が浮き彫りに。
今後の改善計画
- API スキーマ統一化 –
のようなフラグはブール値として扱い、厳格なバリデーションを徹底。pending_delete - 運用状態と設定状態の分離 – デプロイ前にデータベーススナップショットを取得し、ヘルスモニタリング付きパイプラインで迅速ロールバックを可能に。
- 大規模撤回アクションの仲裁 – 迅速または広範囲なプレフィックス変更を検知した際にサーキットブレーカーが作動し、手動承認までデプロイを停止。
お詫びと約束
顧客およびインターネット全体への影響について心よりお詫び申し上げます。
今後同様の障害を防ぐために、上記改善策を速やかに実装し、サービスの堅牢性を高めて参ります。