ニュース

Facebook、5日の障害は「人為的ミス、セキュリティ強化が復旧作業を阻害」と経緯を説明

 米Facebook(フェイスブック)は、5日(日本時間)の障害について、発端は「グローバルバックボーンネットワークの容量を管理するシステム」だったと発表した。定期メンテナンス中に、意図せずにバックボーンネットワークのすべての接続を遮断してしまったという。

定期メンテナンス時に人為的ミス

 Facebookでは、同社のすべてのコンピューティング施設をつなぐためにネットワークを構築しており、地球上のすべてのデータセンターと何百マイルもの光ファイバーケーブルなどで接続している。

 ユーザーがFacebookアプリを起動しフィードやメッセージを読み込むと、最寄りの施設を経由して大きなデータセンターと通信し、データ処理が行われユーザーの端末に送り返される仕組みが採用されている。

 Facebookでは、これらのネットワークの維持管理のため、定期的にエンジニアがネットワークの一部をオフライン化し、ハードウェアのメンテナンスやルーターのソフト更新などを実施している。

 今回の障害では、この定期メンテナンス時に、バックボーン容量の評価を目的としたコマンドを発行したところ、意図せずにバックボーンネットワークのすべての接続が停止し、世界中のデータセンターとの接続が切断されてしまったという。

 また、人為的ミスを防ぐためコマンドを監査する設計をしていたが、監査ツールのバグにより前述のコマンドを適切に停止できなかったと説明している。

 加えて、Facebookのバックボーン全体が停止したことにより、DNSサーバーのルーティングプロトコル(BGP)が機能しなくなり、インターネット上のユーザーがFacebookのサーバーを見つけられなくなった。

復旧に長時間要した理由

 今回の障害では、データセンターのネットワークが完全にダウンしていたため、通常の方法でデータセンターにアクセスできなかったことと、DNSが不能になり障害の調査や解決に使用する社内ツールが利用できなくなったため、復旧に時間がかかった。

 データセンターでは、システムの再起動を試みるが、ハード面とソフト面で高いセキュリティを確保しているため、アクセスするために時間が必要だったという。

 また、データセンターが復旧し、サービスを一斉に再開するとトラフィックの急増により新たな障害が発生してしまう恐れがある。Facebookは、トラフィック急増による機器の障害や電力使用量の急増による配電システムの障害などを事前に想定しており、日頃から訓練を行っていた。この訓練が生かされて、オンラインに復旧した際も、増大する負荷を管理しながら、サービスを再開できたとしている。

 Facebookでは、これまで「外部からの」不正なアクセスに対してシステム強化を徹底的に実施してきたが、悪意のない人為的ミスに対して、このシステム強化が「足手まとい」になったかを知ることができたとコメント。

 「今回のような失敗はすべて学び、改善する機会となる」とし、今後もテストや訓練を重ね、障害の発生をできるだけ抑えるよう全体の回復力を強化するのが私たちの仕事としている。