亚马逊官方发布 AWS 在 2025 年 10 月 19 日大中断调查结果

一、事件概况

  • 时间:2025 年10 月19日 23:48 PDT(太平洋夏令时)起至 10 月20日 14:20 PDT 结束。 ’
  • 地点:北弗吉尼亚区,即 us-east-1 区域。 ’
  • 影响范围:主要是 Amazon DynamoDB(DynamoDB),然后波及到 Amazon EC2(EC2)、 AWS Lambda(Lambda)、 Amazon Redshift(Redshift)等多个服务。 ’

二、分阶段影响(按时间顺序)

下面用一个简单图表展现“何时出问题/何时恢复”的关键阶段。

阶段 服务 时间段(PDT) 问题内容
阶段 1 DynamoDB 10/19 23:48 → 10/20 02:40 API错误率上升,客户及依赖服务无法连接。
阶段 2 EC2 新实例启动 10/19 23:48 → 10/20 13:50 原有实例正常,但新实例启动失败或网络连接问题频发。 ’
阶段 3 网络负载均衡器 NLB 10/20 05:30 → 10/20 14:09 健康检查失败、连接错误增加。 ’

(注:以上为重点时间段,事件中还有对 Lambda、Redshift 等服务的连锁影响。)


三、根本原因解析

1. DynamoDB 的 DNS 管理系统出错

  • DynamoDB 使用自动化系统管理其海量 DNS 记录:为了大量负载均衡器、FIPS 端点、IPv6 端点、账号专用端点。
  • 出了“赛跑条件”(race condition):两个负责更新 DNS 的组件(叫 DNS Planner 和 DNS Enactor)在极不寻常的延迟/竞争状况下出错。
  • 结果:一个较旧的 DNS 计划覆盖了更新的计划——导致区域端点(dynamodb.us-east-1.amazonaws.com)指向“空”DNS记录(IP 被移除)且自动恢复机制失效。

2. 连锁反应:EC2 + NLB +其他服务

  • EC2 新实例的启动流程依赖 DynamoDB:其内部管理子系统(DWFM:DropletWorkflow Manager)无法完成“租约”续签,因为 DynamoDB 不可用。
  • 网络状态传播(Network Manager)也受影响,导致即便实例启动,也可能没有网络连接。
  • NLB 健康检查失败:由于网络状态尚未传播且部分实例被错误标记为“不可用”,NLB 的自动故障转移反而降低了可用容量。
  • 更多服务(Lambda、Redshift、IAM 认证等)因为上述基础服务的异常,也出现错误或延迟。

四、恢复过程与变更措施

恢复过程

  • 在 DynamoDB DNS 问题被定位后(约 10/20 00:38 PDT)工程师采取临时措施,于约 02:25 PDT 恢复 DNS 信息。
  • EC2 的 lease 重建 +网络传播延迟被逐步清理,直到 13:50 PDT 恢复正常。
  • NLB 的健康检查自动转移功能曾被暂停以缓解问题,并于约 14:09 PDT 重新启用。

变更措施

  • DynamoDB:禁用其 DNS Planner 和 DNS Enactor 的自动化流程,直到修复 race condition 并增加保护措施。
  • NLB:将增加“速率控制机制”(velocity control)来限制健康检查失败时单个 NLB 移除的容量。
  • EC2:扩充其规模测试(scale testing)覆盖 DWFM 恢复流程,改进网络状态传播系统的节流机制(throttling)以防高负荷下系统崩溃。

系统越复杂安全性就越难以保障啊

image.png

在 Vercel 的服务,20号有几个小时没法更新。

New deployments using Routing Middleware, or Vercel Functions with iad1 region may still be failing.