「原因はいつも DNS 」これはシステム管理者の間で長年語り継がれる格言であり、それには十分な理由がある。障害の不釣り合いなほど多くが、その核心において DNS の問題に起因しているのだ。そして本日、この記事の執筆時点で Amazon がダウンした AWS クラウドの修復を続けている中、犯人がまたしても DNS であることが明らかになった。不思議なのは、私やあなたのような者でさえこれを知っているのだから、ましてや AWS が知らないはずがないということだ。少なくとも少し前までは。
そこで、静かな疑念が広がり始める。過去にこうした障害等の事態を経験してきた AWS のシニアエンジニアたちは、みんなどこへ行ってしまったのだろう? その答は、彼らが会社を去ってしまったということだ ―― それも AWS のシステムが大規模に動作する仕組みについて何十年もかけて苦労して獲得した組織的知識を丸ごと持って。
●何が起きたのか?
AWS の報告によれば、10 月 20 日 午前 0 時 11 分、「US-EAST-1 リージョンの複数の AWS サービスでエラー率とレイテンシの増加」の調査を開始した。約 1 時間後の午前 1 時 26 分、同社は同リージョンの「DynamoDB エンドポイントへのリクエストで重大なエラー率」を確認した。
午前 2 時 1 分までに、エンジニアたちは US-EAST-1 の DynamoDB API エンドポイントの DNS 解決が根本原因である可能性を特定した。この DNS の問題が、同リージョンの他のほとんどのサービスに連鎖的な障害を引き起こしていた。
その結果、インターネットの大部分が機能しなくなった。銀行業務、ゲーム、ソーシャルメディア、政府サービス、Amazon.com で必要もないものをショッピングすること、等々。
AWS は障害が発生すると、時間経過とともに段階的に詳しい情報を公開していく方針を取っている。その報告を読むと「障害発生」から「 DynamoDB エンドポイントに原因を絞り込んだ(ただし調査継続中)」まで 75 分を要したことが分かる。これは受け入れがたいほど長すぎる。誤解のないように言っておくが、これは Amazon が情報を隠蔽したといったことでは全くない。報告内容から推測できるのは、AWS が本当に 75 分間も何が壊れているのか分からずにいたということだ。不条理なほど長い時間である。
要はこの 75 分間、AWS ステータスページを訪れた、自分たちのウェブサイトや他のワークロードが爆死した理由を猛烈に知りたがっている人々は、「すべて正常です」というデフォルトの表示を見せられていたわけだ。まあ、AWS は以前から障害通知の遅さを問題視して改善を約束していたわけでもないしね。あれ? いや待てよ、約束してたか。してたね。しかも何度もくり返し。
● 退職エンジニアの予言
AWS はインフラの扱いに非常に長けている。これが真実であることは、38 あるリージョンのうちたった 1 つ(とはいえ非常に重要なリージョンだが)がダウンしただけで、「ありふれた月曜日の障害」ではなく、これだけ大注目を集めるという事実からも分かる。
AWS ほどの規模では、すべての問題が複雑になる。過去に類似の障害を経験して対策を講じていたとしても、今回の問題を簡単に発見できたはずだと批判するのは公平ではない。
そもそも AWS ほどの規模に達すると、簡単に解決できる問題などすべて解決済みである。私が懸念するのは、AWS が丸一日かけてこの問題の原因を突き止めようと右往左往しているように見えることだ。ここで私は、ここまで考えないように考えないようにしていた、ある出来事を思い出さざるを得なくなった。
2023 年末、長年 AWS に在籍していたシニアエンジニア Justin Garrison が AWS を去り、去り際に同社を批判した。彼は AWS が Large Scale Events(LSE:大規模障害)の増加を経験しており、2024 年に重大な障害が発生するだろうと予測した。2024 年という彼の予測は 1 年遅れだが的中する結果となった。AWS という巨大組織の慣性が予想以上に強く、彼の予測より 1 年長く持ちこたえさせたのだろう。しかし、同社のシニア人材流出は止まっていない。そして今回のような障害を目の当たりにすると、この人材流出こそが障害の一因ではないかと考えざるを得ない。


 
         
         
         
         
         
         
         
        