2021年2月20日午前12時頃(12:09AM JSTにSERVICE HEALTH DASHBORDに情報更新)から発生したAWSの障害は、気象庁のHPの他、多くのゲーム会社や暗号資産取引所のサービスで利用できない状況になるなど、今回の障害が各メディアによって大きく取り上げられています。

気象庁ホームページ全体障害について(第4報)

AWS障害の原因

今回のAWS障害の原因は、AWS東京リージョン「AP-NORTHEAST-1」にあるAZ(アベイラビリティゾーン)「apne1-az1」の一部で、サーバー冷却システムへの電源供給に異常が発生し、サーバールームの一区画の温度が上昇。それに伴いEC2インスタンスで接続が切れる、電源が落ちるといった問題が発生、また一部のEBSボリュームのパフォ―マンスが低下したと”SERVICE HEALTH DASHBORD”より報告されています。

障害の根本原因となった冷却システムの電源

SERVICE HEALTH DASHBORD”にもあまり詳しい情報が掲載されていませんので、詳しい原因については推測になるのですが、今回の障害を改めて確認してみると、冷却システムへの電源障害もしくは電源供給が停止した結果、データセンター内の温度上昇が発生。EC2を載せていた多くの物理サーバー上で熱暴走が発生。物理サーバーは予防処置としてシャットダウン。冷却システムの復旧するまでデータセンター内の温度が下がるのに時間がかかった。おそらくこのような順序を辿ったのは?と思われます。

サーバーの高温検知シャットダウン機能

(物理)サーバーが高温状態を検知し、シャットダウンを行う振る舞いは正常な機能としてあるものです。

クラウドの利用が当たり前になり、最近はすっかり物理サーバーを触らなくなって久しい今日この頃ですが、、ほとんどの(物理)サーバーでは、BIOSの設定(システムユーティリティ)の画面から「ファンと温度」設定画面あたりに、“サーバーが高温になった際に電源を落とす”「高温シャットダウン」機能があり、有効/無効を選択することができます。

この温度管理イベントの設定を“有効”に設定することでサーバーの内部温度がプラス5℃?もしくは10℃程度(メーカーの仕様によって温度の設定が異なります。)の温度上昇を検知すると自動に強制シャットダウンさせることができます。中に休止状態ハイバネーションを選択できるメーカーもあったような気もしますが、ほとんどのサーバーやストレージ製品ではシャットダウンを選択することができます。

過去に起こったデータセンター電源消失事故

10年以上昔の話ですが、具体的な川の名前は忘れてしまったのですが確か江戸川かどこかの川を横切る送電線を、クレーンを乗せた船が送電線を切断してしまい停電が起きたことがりました。

通常のデータセンターであれば、正常系である電源が失われた場合には、緊急時用の発電システムなどが稼働し、異常系電源による電源供給が行われるのですが、そのデータセンターでは何故か電源経路が1系統しかなく、異常時の発電設備などもなかった為に、データセンター自体の電源が落ちてしまったという事故がありました。

その後、経路の増設工事を行い正常系と異常系の2系路を確保したと業界内の噂話で聞きましたが、今回のAWSの障害も冷却システムへの電源供給経路が1系しかなかったのか?もしくは冗長電源がなかったのか?もしくはその何れかが正常に切り替わることができなかったのか?などと昔あった事故を思い出しつつ、AWSの事故の原因を考えてしまいました。(;^ω^)

詳しい障害の原因については”SERVICE HEALTH DASHBORD”にも挙げられていませんので、(もしかしたら詳しい情報は内部規定により公表できないだけかもしれませんが)正確な事がわかりませんが、2018年に発生したAZ障害、昨年11月に発生したAWS大規模障害、そして今回のAZ障害を考えると、AWS上だけにシステムを構築すると決めたのであれば、少なくとも一年に一回もしくは1回以上の障害が発生することを前提とした、障害対策が必要なようです。