7月1日に発生したSQL DBの障害に関しまして、MS社より以下の情報が公開されています。
(2020/7/9 7:00)
https://status.azure.com/ja-jp/status/history/
RCA - Azure SQL Database - Japan East (Tracking ID CLCK-LD0)
Summary of Impact: Between 09:24 and 11:15 UTC on 01 Jul 2020, a subset of customers using Azure SQL Database, Azure SQL Data Warehouse/Synapse Analytics, Azure Database for MySQL, Azure Database for PostgreSQL, and Azure Database for MariaDB in Japan East may have experienced service connection failures or possible timeouts. Services utilizing SQL Databases may have also been impacted.
Root Cause: Connections to Azure SQL Database and related data services go through a load balanced set of front-end nodes (Gateways) that provide directory lookup services and reroute the incoming connections to the intended backend nodes hosting the database. For scalability and zone redundancy purposes, there are multiple active SQL Gateway clusters in a region. During this incident, one of the SQL Gateway clusters became unhealthy, having an intermittent impact on login availability. A specific network traffic pattern combined with a networking stack configuration on the SQL Gateway instances triggered an imbalance on the CPU processing of new connection requests. The persistence of such CPU imbalance over a long period of time caused high response latency and increased timeouts on connection requests. The error condition propagated across multiple instances of the SQL Gateway cluster in this region, sometimes causing a service restart.
Mitigation: Multiple SQL Gateway instances became healthy upon the triggered service restart. On further investigation, we were able to isolate the specific network pattern and the configuration setting that caused this incident and were able to reconfigure the traffic to prevent a recurrence.
Next Steps: We apologize for the impact to affected customers. We are continuously taking steps to improve the Microsoft Azure platform and our processes to help ensure such incidents do not occur in the future. In this case, this includes (but is not limited to):
- Fix the underlying issue that causes service restart when such a condition occurs.
- Improve the alerting logic and add identified telemetry to diagnose this kind of issues faster.
- Activate a newer SQL Gateway cluster in this region with a more efficient networking stack configuration that reduces the chances of hitting a processing imbalance.
Provide Feedback: Please help us improve the Azure customer communications experience by taking our survey: https://aka.ms/AzurePIRSurvey.
===================================================================
日本語:
問題の概要:
2020/7/1 日本時間の 18:24 から 20:15 の間、 Japan East(東日本) リージョンの Azure SQL Database, Azure SQL Data Warehouse/Synapse Analytics、Azure Database for MySQL/PostgreSQL/MariaDB サービスが接続エラーや接続タイムアウトにより、ご利用になれない状況が発生しておりました。SQL Database および関連しているデータサービスをバックエンドで使用しているサービスにも影響が出ました。
影響を受けたサービス:
Azure SQL Database
Azure SQL Data Warehouse/Synapse Analytics
Azure Database for MySQL/PostgreSQL/MariaDB
影響を受けたリージョン:
Japan East(東日本)
原因:
Azure SQL Database および関連しているデータサービスへ接続する際には、負荷分散されたフロントエンドノード(ゲートウェイ)が、実際にデータベースをホストしているバックエンドノードに新規接続を適切に誘導する役割を担っております。
スケーラビリティとゾーン冗長性の観点で、SQL ゲートウェイクラスタはリージョン内に複数あります。本障害発生時には、SQL ゲートウェイクラスタの 1 つが不安定になり、ログイン要求へ影響が断続的に出ていました。
SQL ゲートウェイインスタンスでの、特定のネットワーク経路のパターンとネットワークスタック構成の組み合わせにおいて、新規接続要求を処理する際の CPU 使用率へ不均衡をもたらしました。
この CPU 使用率の不均衡が長く続いたことにより、レイテンシーの増加および接続要求に対するタイムアウトの増加が発生しました。
この不正な状態が、SQL ゲートウェイクラスタ内の複数のインスタンスに波及し、サービスの再起動をも引き起こしていました。
対処策:
複数の SQL ゲートウェイのインスタンスが不調になった事により、サービスの再起動が行われました。
また、エンジニアが調査を進めたところ、今回の事象の原因となっていた、ネットワークパターンと構成に関して切り分けが行え、再発防止のためにネットワークトラフィックを再構成することが出来ました。
今後について:
Azure チーム一同、影響が生じたお客様に深くお詫びを申し上げます。
マイクロソフトは、継続的に Azure プラットフォームの改善、ならびにこのようなインシデントが再発しないような抑止プロセスに取り組みます。今回の件に関しましては、以下のような対策を講じます:
- サービスの再起動を引き起こすような事象の原因を修正します。
- 監視ロジックを強化し、今回のような事象にいち早く気づき対処を行えるようにします。
- CPU 使用率の不均衡の発生を抑制出来る、より効率的なネットワークスタック構成に変更した SQL ゲートウェイクラスタを東日本リージョン内に新規で有効化します。