なんかかきたい

プログラミングなどの個人的なメモやサークル「ゆきいろパラソル」の情報を載せてます

Cloudflareの障害の件

本日15時27分(JST) cloudflareで大規模なサーバ障害があり、多くのWebサービスの利用に影響が出ました。 インターネットではAWS障害かという声もありましたが、cloudflare (CDN) の障害でした。

世界的な影響となった割に、比較的短時間で復旧が行われ 16:42(JST) には全てのロケーションで復帰が完了したそうです。(日本でも16:15頃から復旧し始めていたと思います。)

障害の詳細は公式ブログに情報がまとまっていましたので、ざっくり読んでみましたが、障害影響を少なくするためのサービスメッシュの部分で障害が怒ったため、大規模なサービス停止となったとのことでした。

https://blog.cloudflare.com/cloudflare-outage-on-june-21-2022/ かなり優しく説明されているので興味がある方は読んでみるといいと思います。

BGPの経路変更によってルートがごっそり消されてしまったようで、インターネットから到達できなくなってしまったとのこと。 元々計画された変更であり、レビューも細かく行われていましたが防ぐことはできなかったようです。 (ブログ下部に技術的な説明がありますが、単純にDENYルールがALLOWのルールより上に移動されてしまったということのようです...)

不幸なことにpixivが丸ごと落ちてイラストが見えなくなったり、gatherやDiscordでおしゃべりできなくなったり、ブルアカがプレイできずにアロナさんがお詫びしたりしたわけですね。CDNのスイッチ設定とか触るの怖すぎますね。

Cloudflareの対応は早かった

タイムラインを見るとインシデント開始が06:27 (UTC)、根本原因の発見が 06:58 (UTC) なので30分でこの問題を見つけたようです。これはかなり早い対応であると思います。これほどの大規模障害で30分で復旧が開始できるのは短的にすごいと思います。ただ、障害に巻き込まれている側の30分は体感長かったです。情報の公開も早かったのでその点は助かりました。(Cloudflareのstatusページはcloudflareの影響を受けないように別のサービスで展開されています)

CDNの障害に対して我々は無力

Cloudflareのユーザの方は今回対応が難しかったと思います。 ユーザの方はご存知とは思いますが、CloudflareはDNSのNSレコードをcloudflareのサーバに向けることで、DNSで返すレコードをCloudflareサーバに切り替える仕組みです。

よくある設定ではルートドメインのNSごとCloudflareに向けることが多いのですが、NSは一般にTTLを長く設定すると思います。 当然NSレコードの切り替わりに時間がかかるため、Cloudflareを回避しようとする試みはかなり困難だったと思います。(諦めて復旧を待つという判断をした現場も多いでしょう)

比較的短いTTLを設定できるならともかく、DNSサーバによっては短いTTLを許さないものもありますし、NSの切り替えは現実的ではなかったと思います。

幸い今回の障害は比較的短時間で終わりましたが、Cloudflareを簡単に外すのは難しいです。とはいえ利用者が取れる対策もほぼありません。

まとめ

現状CloudflareのようなCDNの障害に対応するのは難しく、事故として許容するしかないように思えます。 先日、Cloudflareの利用がかなり増えているニュースがありましたが、今後もCDNを入れるサービスは増えていくでしょうし、 CDNの障害によってサービスが利用できないリスクも増えていくことでしょう。

自分のサービスが使っていなかったとして、今回のケースではDiscordやDeepL、notionなどにも影響があり、 SaaS利用が進んでいる近年のインターネットでビジネスで全く影響を受けないというのは難しいように思えます。

特に答えはない課題ですが、サービス本体ではダウンを許容しつつ、ツールでは代替の手段を用意しておくなど自衛が求められる時代なのかもしれません。

近況

一部上場企業を退職してスタートアップでSREをやってます。今年は普通枠でISUCONに参加するので対戦よろしくお願いします。終わり