Cloudflare、Workers KVの更新に失敗し障害発生。しかも復旧用ツールがWorkers KVに依存しており使えず、手動で緊急対応

2023年11月7日

Cloudflareは10月30日、同社がキーバリューストアとして提供しているWorkers KVの社内アップデート作業に失敗したことで、Workers KVのみならずCloudflare Pages、Cloudflare Access、Cloudflare Workers、Waiting Room、Cloudflare Dashboardなど各種サービスが世界協定時2023年10月30日19時54分(日本時間10月31日4時54分)頃から約37分間、サービスの一部または全部の機能が使えないなどの障害を起こしました。

幸いにも比較的短時間で復旧した障害でしたが、同社の報告によると、復旧のための社内ツールそのものがWorkers KVに依存していたために使えず、緊急対応として手動操作で復旧作業を行ったと説明されています。

この障害がどのような原因で発生し、どう復旧させたのか、同社のブログ「Cloudflare incident on October 30, 2023」から見ていきます。

ステージング環境を参照したまま本番環境へ昇格させてしまう

CloudflareはキーバリューストアのWorkers KVをマネージドサービスとして提供しています。

Workers KVチームは、新しくビルドしたWorkers KVを本番環境へデプロイする作業を始めました。

Workers KVの新バージョンはステージング環境へデプロイされ、テストされました。その後、本番環境へと徐々にデプロイされていくことになります。

ところが、ステージング環境から本番環境へと昇格させるスクリプトにバグがありました。

本番環境へ昇格させた際に、本番環境上でも現バージョンのWorkers KVを参照し、その後に新Workers KVへ切り替えていくはずの動作が、本番環境へ昇格させた後もステージング環境にある現バージョンのWorkers KVを参照してしまったのです。

fig

ステージング環境上のWorkers KVは本番環境のリソースにはアクセスできないため、Workers KVに依存している本番環境上のアプリケーションはWorkers KVを利用できずエラーとなります。

この本番環境への昇格は徐々に行われたため、本番環境上でエラーを吐くアプリケーションが徐々に増加していきました。

ロールバックのためのツールがWorkers KVに依存して使えず

この障害は自動アラートにより検知されます。そこでロールバックにより元の状態に戻そうとするのですが、そのためのツールそのものがWorkers KVに依存し、使えない状態になっていることが判明します。

下記は「Cloudflare incident on October 30, 2023」からの引用です。

Although automated alerting detected the issue immediately, there was a delay between the time we realized we were having an issue and the time we were actually able to perform the roll back. This was caused by the fact that multiple tools within Cloudflare rely on Workers KV including Cloudflare Access. Access uses Workers KV as part of the verification process for user JWTs (JSON Web Tokens).

自動アラートにより障害はすぐに検出されましたが、障害発生から実際にロールバックの実行までには遅れが生じました。これは、Cloudflare Accessを含むCloudflare内の複数のツールがWorkers KVに依存していることが原因でした。Cloudflare AccessはユーザーJWT(JSON Web Tokens)の検証プロセスの一部としてWorkers KVを使用していたのです。

変更作業のためのダッシュボードやCI環境によるロールバック時の認証システムなどもWorkers KVに依存して使えなくなっていました。

結局、復旧作業は緊急対応のため手作業で行われ、元の状態に戻すことに成功したのです。

Cloudflareは今回のインシデントを教訓とし、Workers KVのデプロイプロセスの改善やロールバックプロセスにおいて認証システムがダウンしたとしても対応できるようにすること、デプロイの事前確認の強化、デプロイツールにおけるマルチテナント対応への改善などの対応を進めていくとしています。

過去のCloudflareの障害

あわせて読みたい

クラウド クラウド障害 運用・監視 Cloudflare




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本


<!- script for simple analytics events -->