Microsoft AzureのAzure DNSが引き起こした大規模障害、原因はネットワークデバイスのバグ
マイクロソフトのクラウドサービスであるMicrosoft Azureは9月15日にDNSの障害をきっかけにAzure SQL Database、Azure Backup、Visual Studio Team Searvice、Redis Cacheなどをはじめとする多数のサービスに障害が発生、可用性が低下するなどの現象を引き起こしました。
マイクロソフトはこの大規模障害について「Azure status history」のページに9月15日付「Azure Services - Service Interruptions in Multiple Regions」で詳しい報告を書いています。内容をまとめました。
この障害は9月15日11時18分(世界協定時)には現象が確認され、約1時間40分後の13時に、原因となったDNSの障害対応が完了。ただし米中央リージョンのAzure SQL Databaseなど一部のサービスについては未処理のリクエストが大量にたまっていたため、正常状態に戻ったのは17時15分でした。
ネットワークトラフィックのスパイクが引き金でバグが発生
障害の引き金となったのは、ネットワークトラフィックのスパイクだったと説明されています。
The issue was triggered by a spike in network traffic that was not handled properly by the network management policy due to a network device bug.
この障害はネットワークトラフィックのスパイクが引き金となった。ネットワークデバイスのバグにより、ネットワークマネジメントポリシーによるトラフィックの扱いが適切ではなくなったのだ。
これによってAzure DNSへのリクエストが不正な形式となってしまい、リクエストの結果が不正確になったことで、AzureでDNSに依存するさまざまなサービスで正常な処理ができなくなってしまい、大規模障害へと発展したわけです。
そして調査の結果、根本原因はネットワークデバイス内のソフトウェアのバグだったと説明されています。
The root cause of the initial impact was a software bug in a class of network device used in multiple regions which incorrectly handled a spike in network traffic.
最初の事象の根本原因は、複数のリージョンで使われているネットワークデバイスの類のソフトウェアバグであり、これがネットワークトラフィックのスパイクを正しく扱えなかった。
ここで「in a class of network device」(ネットワークデバイスの類)と書いているということは、これはいわゆるアプライアンスとしてネットワーク機器(Network Device)ではなく、ソフトウェアで実装したネットワーク機能ではないかと推測できます。
マイクロソフトはこのバグを修正し、同様の障害を発生しないように次のように対策注だと説明しています。
1. Azure Network Infrastructure: The network device bug fix released in all regions once testing and validation are completed [Status – in progress].
1. Azureネットワークインフラ:テストと検証が完了し次第、ネットワークデバイスのバグフィックスをすべてのリージョンでリリースする[状況 - 進行中]
2. Azure Network Infrastructure: Improve alerting to detect an inability of DNS services quicker to minimize the time to resolve [Status – in progress].
2. Azureネットワークインフラ:DNSサービスの障害について早期検出とアラートを改善し、解決までの時間を迅速かつ最小化する[状況 - 進行中]
3. Azure Network Infrastructure: Set new configurations to bypass the network device bug [Status – Completed].
3. Azureネットワークインフラ:ネットワークデバイスのバグをバイパスする新しいコンフィグレーションの設定[状況 - 完了]
あわせて読みたい
IBM、自社のJavaVMをオープンソース化すると発表。COBOLやPL/IのランタイムをJavaVMにも。Java 9と同時に正式版リリースを予定。JavaOne 2016
≪前の記事
Android Studio 2.2正式公開。ビジュアルな画面レイアウトエディタ搭載、Android 7.0 Nougat対応など