复盘 AWS 宕机全过程:从 DNS 解析失败到锁定“负载均衡器”故障

查看 4|回复 0
作者:Zane3   
阶段一:事件爆发与初步症状 (美东时间 10 月 20 日 凌晨 3:11 左右)
地点: 事件起源于 AWS 规模最大、最古老的 US-EAST-1 区域(北弗吉尼亚州)。
最初现象:AWS 监控系统开始检测到该区域的“多种 AWS 服务出现错误率增加和延迟”。
关键症状: 故障迅速集中在核心数据库服务 DynamoDB 上。AWS 状态页在 04:26 AM (ET) 确认:“在 US-EAST-1 区域,对 DynamoDB 端点的请求出现严重错误率。”
阶段二:初步诊断 - DNS 解析失败 (ET 凌晨 5:00 左右)
在宕机初期,最明显的“症状”是 DNS 解析失败。
诊断内容:AWS 在 05:01 AM (ET) 左右发布了初步诊断:“我们已经确定了 DynamoDB API 错误率的潜在根本原因。根据我们的调查,该问题似乎与 US-EAST-1 中 DynamoDB API 端点的 DNS 解析有关。”
通俗解释: 这就像是 AWS 内部的“电话簿”坏了。当其他服务(如 Lambda 、EC2 )尝试调用 DynamoDB 时,它们无法通过 DNS 查到 DynamoDB 的“地址”( IP ),导致请求失败。
阶段三:连锁反应与全球大规模宕机
由于 US-EAST-1 是许多全球服务的默认和核心区域,且 DynamoDB 又是 AWS 内部许多其他服务(包括身份验证 IAM 、计算 EC2 、队列 SQS 等)所依赖的基础设施,因此 DynamoDB 的 DNS 解析失败迅速引发了灾难性的连锁反应。
AWS 内部: 大量核心服务(如 EC2 、Lambda 、IAM 、SQS 、Amazon Connect 等至少 37 项服务)因无法访问 DynamoDB 或依赖其他故障组件而相继瘫痪。
全球影响: 依赖这些 AWS 服务的全球客户应用几乎同时下线。
社交/游戏:Snapchat, Reddit, Roblox, Fortnite, Signal, Pokémon Go 等瘫痪。
金融:Coinbase, Robinhood, Venmo 以及多家英国银行(如 Lloyds )服务中断。
工具/生活:Duolingo, Canva, Ring 门铃, Alexa 智能音箱, 甚至亚马逊自己的 Amazon.com 购物网站和 Prime Video 都受到了冲击。
阶段四:修正诊断 - 锁定真正根本原因 (ET 上午 11:43 左右)
在 DNS 问题被缓解后,工程师发现服务恢复并不稳定,表明 DNS 只是“症状”,而非“病根”。
经过数小时的深入调查,AWS 在 11:43 AM (ET) 左右更新了状态页,公布了真正的根本原因:
“The root cause is an underlying internal subsystem responsible for monitoring the health of our network load balancers.” (根本原因是一个负责监控其网络负载均衡器( Network Load Balancers )健康的底层内部子系统。)
过程还原:
这个核心的“监控子系统”首先发生故障。
它的故障导致了网络负载均衡器( NLB )的行为异常。
这反过来又“污染”或破坏了 DynamoDB 服务的 DNS 解析记录,导致了第二阶段观察到的 DNS 失败。
最终导致了第三阶段的全球服务崩溃。
阶段五:缓解与恢复过程 (贯穿全天)
紧急缓解 (凌晨):AWS 工程师首先针对最明显的症状——DNS 问题——进行了缓解(约在 06:35 AM ET 宣布 DNS 问题已缓解)。
处理根本原因 (上午): 在定位到负载均衡器监控系统后,团队开始对其应用缓解措施。
受控恢复 (全天): 为防止系统在恢复过程中被瞬时涌入的请求再次压垮,AWS 采取了“节流”( Throttling )措施,即限制了新 EC2 实例的启动速率。这就是为什么在 DNS 问题修复后,很多服务仍然长时间无法恢复或启动新服务器的原因。
全面恢复 (下午到傍晚):AWS 逐步放开限制,清理积压的后台任务。直到 06:01 PM (ET)(即太平洋时间 3:01 PM ),AWS 才宣布所有服务“恢复正常运行”。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部