セキュリティ

AWS大規模障害の原因は「DNS管理システム」に潜んでいた設計上の欠陥だったことが判明

by Web Summit

日本時間の2025年10月20日に、Amazon Web Servicesの北バージニア(us-east-1)リージョンで大規模なサービス障害が発生し、世界中のウェブサービスやアプリが一時停止を余儀なくされました。Amazonはその後の調査で、AWSのデータベースサービスであるDynamoDBの自動DNS管理システムに設計上の欠陥があったためだということがわかりました。

Summary of the Amazon DynamoDB Service Disruption in Northern Virginia (US-EAST-1) Region
https://aws.amazon.com/jp/message/101925/


AWSによると、日本時間の2025年10月20日15時48分から10月21日6時20分にかけて発生した障害は3段階で進行しており、最初にDynamoDBが、次にEC2、最後にNetwork Load Balancer(NLB)が影響を受けたとのこと。第1段階は10月20日15時48分から17時40分にかけて発生し、DynamoDBのAPIエラー率が急上昇しました。根本的な原因は、DynamoDBのDNS管理システムに設計上のバグがあったためでした。

AWSのような大規模サービスはDNSを使い、膨大な数のサーバーに通信を振り分けています。このDNSはサーバーの追加や故障に対応するため、「DNS Enactor」と呼ばれる自動更新システムで頻繁に更新されていますが、このDNS Enactorの処理タイミングが重なってしまいました。


AWSによれば、あるDNS Enactorが古いDNSレコードを適用しようとして異常に時間がかかっている間に、別のDNS Enactorが最新のDNSレコードを適用し、その後のクリーンアップ処理を開始したとのこと。その直後、遅れていたDNS Enactorがチェックをすり抜けて古いDNSレコードを上書きしてしまい、ほぼ同時にクリーンアップ処理によってその古いDNSレコードが削除されてしまいました。その結果、DynamoDBの主要なDNSレコードから全てのIPアドレスが削除され、自動復旧も不可能な状態に陥りました。

Amazonの技術チームは16時38分に問題箇所を特定し、17時25分にDNSを修復。17時32分にグローバルテーブルの同期が完了し、17時40分までに全顧客接続が回復しました。


第2段階は仮想サーバーサービスのAmazon EC2関連で、10月20日15時48分から翌21日5時50分まで続きました。これは、EC2の新規インスタンス起動が「RequestLimitExceeded」や「InsufficientCapacity」エラーで失敗し、既存インスタンスは正常でした。

原因は、第1段階でのDynamoDB障害により、物理サーバーを監視するDropletWorkflow Manager(DWFM)が物理サーバーの状態監視に失敗し、復旧後もリース(監視体制)の再確立が集中して過負荷を起こしたためです。AWSは10月21日0時14分にDWFMを選択的に再起動して正常化を進め、1時28分にDWFMと全物理サーバーのリースを再確立しました。

しかしその後、今度はEC2にネットワーク設定を配布する「Network Manager」というシステムが、溜まっていた更新作業の処理に追いつかず、遅延が発生しました。これにより、EC2インスタンスは起動してもネットワークに接続できない状態が続きました。このネットワーク遅延は21日2時36分に解消し、EC2インスタンスは最終的に21日5時50分に完全に正常化しました。


第3段階が発生したのは、配下のEC2インスタンスが正常化どうかをチェックするNetwork Load Balancer(NLB)で、10月20日21時30分から10月21日6時9分にかけて接続エラーが発生しました。これは、新しいEC2インスタンスのネットワーク状態が未反映にもかかわらず、NLBのヘルスチェックが行われたからで、正常なノードが誤って切り離され、DNSフェイルオーバーが頻発してしまいました。これについては、エンジニアが21日1時36分に自動フェイルオーバーを一時停止することで対処し、EC2インスタンスの回復後、21日6時09分に設定を元に戻しました。

AWSは「今回の障害がお客様に与えた影響についてお詫び申し上げます。私たちは高い可用性レベルでサービスを運用してきた強力な実績がありますが、私たちのサービスがお客様、そのアプリケーション、エンドユーザー、そしてビジネスにとってどれほど重要であるかを理解しています。このイベントが多くのお客様に重大な影響を与えたことを承知しています。私たちはこのイベントから学ぶためにできる限りのことを行い、それを活用して可用性をさらに向上させます」と謝罪しています。


AWSは今後の対策として、原因となったDynamoDBのDNS自動更新システムを全世界で停止し、バグを修正し保護機能を追加するまで再開しないと述べました。また、NLBがヘルスチェック失敗時に切り離すサーバー数を制限する仕組みの追加や、EC2のDWFM回復テストの強化、高負荷時の処理を制限する仕組みの改善などを行うとしています。

この記事のタイトルとURLをコピーする

・関連記事
AWSの大規模障害でウェブの半分がダウンし数十兆円規模の経済的損失が出たとの指摘、優秀なエンジニアがAWSを離れている証拠であるという指摘も - GIGAZINE

Amazon Web Services(AWS)障害が大規模化したのは「us-east-1」リージョンがSPOF化していることに起因している - GIGAZINE

AWSの6つのサービスでS3バケットの自動作成の仕組みを通してアカウントが乗っ取られる脆弱性が発見される - GIGAZINE

プライベートも含めあらゆるS3バケットのAWSアカウントIDを突き止める方法が開発される - GIGAZINE

Cloudflareが社内Wikiなどをホストするサーバーへ不正アクセスされたことを発表、分析・対応済みでユーザーデータやシステムへの影響はなし - GIGAZINE

AWSアカウントを「Log4Shell」で乗っ取る方法が報告される - GIGAZINE

in セキュリティ, Posted by log1i_yk

You can read the machine translated English article It turns out that the cause of the large….