2021年6月8日(米国時間)の早朝、約1時間にわたってインターネットの広い範囲で障害が発生した。ダウンしたサイトに共通する明確なテーマや地域性はなく、RedditやSpotify、『ニューヨーク・タイムズ』など、障害の範囲は世界中に及んだ。もちろん『WIRED』US版も例外ではなかった。

「「知られざる企業」で起きたシステム障害は、こうして世界中でネットワークを“停止”させた」の写真・リンク付きの記事はこちら

実際のところ、これらのサイトにひとつだけ共通項があった。コンテンツ配信ネットワーク(CDN)プロヴァイダーのFastly(ファストリー)を利用していることである。夜明け前に起きたFastlyのシステム障害の影響は、インターネットのいたるところで見られた。

Fastlyという名を聞いたことがなくても、誰もがインターネットを利用するたびに何らかのかたちでかかわっている。同社はCloudflareやアカマイ・テクノロジーズと並ぶ世界最大のCDNプロヴァイダーのひとつなのだ。

今回の世界的な障害をFastlyは比較的素早く収束させたものの、今回のインシデントはインターネットインフラがいかに脆弱で相互に結びついた存在であるかを痛感させられる出来事だった。インターネットインフラの大部分が人知れず活動するひと握りの企業に依存しているとなれば、なおさらである。

巨大な道路網の交通整理

Fastlyで発生した問題が、瞬く間に世界中のインターネット利用者にとっての問題となりうるのは、なぜだろうか。このことを理解するには、インターネットのエコシステムにおけるCDNの役割を知る必要がある。

インターネットは「クラウド」とも呼ばれるように姿かたちのない存在だと思われがちだが、ネット上で読まれている記事や配信中の映画、音楽、投稿された写真などは、すべて物理的なサーヴァー上に存在している。これらのコンテンツは主にクラウドプロヴァイダーのサーヴァーに保存されているが、そのデータを利用者に素早く効率的に配信する手段が必要になる。

そこでCDNの出番だ。CDNは世界中でサーヴァーを運用することで、インターネット上でアクセスされるコンテンツから利用者のスマートフォンまでの距離を短縮するようなことができる。野球でいうところの中継プレーのようなものだ。外野手が自力でバックホームする代わりに内野手に送球し、その内野手がキャッチャーに送球するところを想像するとわかりやすい。そのほうが早くて効率がいいのだ。

「動画のストリーミングやウェブサイトの表示、ネット通販サイトの製品画像など、コンテンツにアクセスした際のパフォーマンスを大幅に高めることができます」と、ネットワーク監視サーヴィス企業のThousandEyesのプロダクトマーケティング・ディレクターのアンジェリーク・メディナは語る。「ユーザーの近くにコンテンツを配置することで読み込み時間が大幅に短縮され、誰もが快適にネットサーフィンを楽しめるようになるわけです」

あなたがいま読んでいるこの記事を例に挙げよう。いま読んでいる記事のデータは、おそらく住んでいる地域のどこかにあるサーヴァーにキャッシュとして保存されたコピーである。

こうしたキャッシュを保存するサーヴァーは「ポイント・オブ・プレゼンス(PoP)」と呼ばれる。Fastlyのネットワークマップによると、同社は世界の少なくとも58都市にPoPを設置しており、そのうちロサンジェルスやロンドン、シンガポールといった人口密度の高い地域には複数が設置されている。世界中のPoPの処理能力を合わせると、1秒間に130テラビットという驚異的な数字になるという。

CDNの役割は、それだけではない。ユーザーが必要とするコンテンツをデヴァイスの近くに保管するだけでなく、インターネット上でコンテンツの流れを誘導する役割も果たしているのだ。

「巨大な道路網の交通整理をするようなものなのです」と、マサチューセッツ大学アマースト校のコンピューター科学者で、アカマイの主席アーキテクトとして初の本格的なCDNの構築に携わったラメシュ・シタラマンは説明する。「インターネット上のどこかのリンクが故障したり混雑したりしても、CDNのアルゴリズムは目的地までの代替ルートを素早く見つけ出します」

こうして見ると、CDN自体がダウンすればインターネットの広い範囲が“道連れ”になる可能性があることが見えてくるだろう。だがそれだけでは、今回の障害の影響が広範囲に及んでしまったことの十分な説明にはならない。CDNのシステムには、万が一の場合に備えて多くの冗長性が確保されているからだ(あるいは少なくとも、そのはずである)。

古代の「ルーン文字」との共通項

Fastlyに障害が発生した当日は、深夜になるまで正確なことはわからなかった。「世界各地のPoPで障害を引き起こしたサーヴィス構成を特定し、その構成を無効にしました」と、Fastlyの広報担当者は当日の朝に説明していた。「当社のグローバルネットワークは復旧に向かっています」

最終的にFastlyが事態の詳細を公式ブログで明らかにしたのは、8日が終わるころになってからだった。説明によると、根本的な原因は5月12日にさかのぼる。大規模なソフトウェアの導入作業において、同社が誤ってバグを紛れ込ませたことに端を発していたというのだ。

このバグは、ある特定の呪文を唱えないと邪悪な力が解き放たれない古代の「ルーン文字」のごとく、Fastlyのクライアントが特定の設定をしない限り無害なはずだった。ところが約1カ月後、あるクライアントが問題の設定をしてしまったのである。

今回の世界規模の障害は米東部時間の午前5時47分に発生し、Fastlyは1分以内にそれを検知した。そこから障害の原因となったバグを引き起こした設定を特定するには、もう少し時間がかかっている(同午前6時27分のことだ)。

この時点でFastlyのネットワークの85%がエラーコードを返しており、南極以外のすべての大陸が影響を受けていた。同午前6時36分には復旧が始まり、同午前7時にはほぼ正常な状態に回復している。

Fastlyは根本的な問題を解決したあとも、キャッシュヒット率の低下とオリジンサーヴァーの負荷増大が発生する可能性があるとしてユーザーに警告していた。前者は探しているコンテンツが最寄りのサーヴァーに存在する確率のことで、後者はキャッシュに存在しないコンテンツを配信元のサーヴァーから取り寄せる際に発生する負荷のことだ。たとえるなら、食器棚が空っぽの状況が続いていたようなものである。

すべての元凶となったバグ自体の修正にFastlyが着手したのは、世界中のサーヴァーでキャッシュが回復されてからのことだった。その数時間後、米東海岸で昼食の時間になると、ようやく「恒久的な修正」が完了した。

“単一栽培”の弊害

一般的にCDNは、大規模な障害にも耐えうるように設計されている。それにもかかわらずサーヴィスがダウンしたことは、驚くべきことだと言っていい。

一般的なCDNについてコンピューター科学者のシタラマンは、「原理上はかなり手厚い冗長化構成になっています」と説明する。「1台のサーヴァーが故障しても、別のサーヴァーがその負荷を引き受けることができます。またデータセンター全体が故障しても、別のデータセンターに負荷を肩代わりさせることができます。すべてが完璧に動作すれば、ネットワークの停止やデータセンターの障害、サーヴァーの故障が幾度となく発生しても問題になりません。CDNの回復機能により、ユーザーには決してサーヴィスの低下を感じさせないようになっているからです」

シタラマンによると、それでも被害が発生するような場合は、たいてい一度に複数のサーヴァーがソフトウェアのバグや設定ミスの影響を受けたことが原因であるという。その場合でも、CDNを運用しているサイトやサーヴィスの多くは独自の冗長性を備えている。少なくとも、そのはずである。

しかし実際のところ、障害が発生した当日の朝の各サーヴィスの対応速度の差から、それぞれのサーヴィスの分散化の程度がうかがえるのだとThousandEyesのメディナは指摘する。例えばアマゾンの場合、ほかのCDNプロヴァイダーにトラフィックを振り分けることができたことで、復旧にかかった時間は約20分だった。これに対してFastlyだけに頼っていた事業者や、障害に対応できる自動化されたシステムを導入していなかった事業者は、Fastlyの復旧が済むまで指をくわえて待つしかなかった。

「今回の障害は、“モノカルチャー(単一栽培)”の結果なのです」と、セキュリティ企業NetScoutの主席エンジニアのローランド・ドビンズは指摘する。まさに今回のような事態を避けるために、オンライン上で大規模なサーヴィスを展開するすべての組織は複数のCDNプロヴァイダーを利用すべきであると、彼は提案している。

限られる選択肢

だが、その際に利用できる選択肢はますます限られてきている。クラウドインフラがアマゾン、グーグル、マイクロソフトの3社にほぼ独占されているように、オンラインコンテンツの配信もCloudflareとアカマイ、FastlyのCDNプロヴァイダー3社に支配されているのだ。

「ごく少数のサーヴィスプロヴァイダーに利用が集中している状況です」と、ThousandEyesのメディナは指摘する。「3つのプロヴァイダーのいずれかに問題が発生した場合は解決にそれほど時間はかからないのですが、それでもインターネット全体が大きな影響を受けることになります」

この種の障害が頻繁に発生して悪化の一途をたどっている原因として、こうした事情が大きな部分を占めているのだとメディナは説明する。野球には中継する内野手が、交差点には交通整理員が必要なのだ。

インターネットにおいても、こうした役割を担う事業者の数が少なくなれば、接続エラーが起きる頻度が高まる。そして障害の規模も大きくなってしまうのである。

※『WIRED』によるインターネットの関連記事はこちら。