summary
2023-06-13 11:49 PDT,us-east-1 的 AWS Lambda 函数调用错误率与延迟上升,并波及其他依赖 Lambda 的服务(STS、Management Console、EKS、Connect、EventBridge 等),约 100+ 服务受影响,持续至 15:37 PDT 恢复。根因是 Lambda 的细胞(cell)架构中,前端舰队在正常扩容时跨越了一个此前从未达到的容量阈值,触发潜在软件缺陷,使执行环境被分配却未被前端有效利用。
timeline
10:01 PDT 前端舰队随日常流量模式开始扩容。11:49 PDT 扩容中跨越细胞容量阈值,触发潜在缺陷,调用错误率上升。12:26 PDT 定位缺陷与对底层计算容量供给的影响。随即让流量回落并缩容前端舰队至不再触发缺陷的水平。13:30 PDT 新调用开始恢复,13:45 PDT 同步调用完全恢复。13:45-15:37 PDT 处理异步事件积压,15:37 PDT 全部依赖服务正常。
root_cause
Lambda 采用细胞架构:前端接收并路由调用,调用管理器按账户/函数规模管理执行环境容量。当前端舰队扩容越过某单细胞的历史最高容量阈值时,触发一个潜在软件缺陷——执行环境被成功分配但从未被前端真正利用,新请求无法获得执行环境,调用错误率与延迟上升。
amplifiers
① 细胞容量上限:缺陷仅在单细胞规模跨过未达过的阈值时触发,常规测试未覆盖。② 级联:STS/Console/EKS/Connect 等直接依赖 Lambda 调用,同步受损。③ 异步积压:事件源(SQS/EventBridge)积压需额外数小时消化。
mitigation
立即禁用触发事件的细胞前端扩容活动;修复潜在缺陷并部署到所有区域;为所有细胞规模设定合理上限以避免意外扩容。后续补充细胞扩展的压测覆盖。
lessons
细胞架构的容量上限必须有显式边界与压测;潜在缺陷应在阈值附近被测试捕获;依赖服务的降级应隔离而非连锁。
checklist
① 细胞规模上限显式配置+阈值压测。② 潜在缺陷在接近历史最大规模时被覆盖。③ 关键服务对 Lambda 的依赖增加隔离与降级。④ 异步积压处理有可观测进度。