目录
2026 年 7 月 16 日,一次 AWS CloudFront 故障在互联网上蔓延了三个半小时,并把一大批毫不相关的服务一起拖下水。如果你的团队是从客户邮件里、而不是从告警里得知这次事故的,那么问题不在于监控检测,而在于告警送达。
这类中断已经不再是可以当作例外处理的偶发事件。分析机构如今预期它们会以固定节奏出现,这意味着真正该问的问题变了。不再只是"东西坏了我怎么知道?",而是"当同一次中断正同时压垮我的仪表盘、状态页和聊天工具时,告警还能不能送到我这里?"
本文梳理这次事故经过、为什么服务商级别的中断正在变得司空见惯,以及如何搭建一条能扛住它们的告警链路。
2026 年 7 月 AWS CloudFront 中断发生了什么
2026 年 7 月 16 日,AWS CloudFront 从 UTC 07:45 持续中断到 11:18,大约三小时 33 分钟。根据 AWS Health Dashboard 的事件说明,根因是管理私有 VPC origin 连接的机群内部出现了一个约束,导致更新后的网络配置无法正确加载。仅 VPC Origins 功能受影响,其他 origin 类型仍正常工作;AWS 建议客户在修复推送期间临时切换 origin 类型作为绕行方案。
由于 CloudFront 是全球内容分发网络(CDN),影响范围远远超出了 AWS 本身。独立追踪记录显示,级联影响波及身份服务、AI 工具、教育平台和网络设备厂商,包括 Hugging Face、Frontegg、Instructure Canvas 和 Blackboard。一个控制平面的约束,变成了跨行业的事故,详见 IncidentHub 的中断分析。
技术细节其实没那么重要,重要的是这个模式:一家服务商出问题,成百上千个下游团队就继承了一场并非自己造成、也无力修复的中断。
为什么云服务中断如今是常态,而非例外
服务商级别的事故,正从"意外"变成"预期之中"。Forrester 分析师 Lee Sustar 预测 2026 年至少会发生两次持续数天的重大云中断,其原因是结构性的:各大云厂商正把投资大量倾注到面向 AI 负载的 GPU 数据中心,而老旧基础设施则在压力下逐渐老化。
响应迟缓的代价也有充分的数据佐证。Oxford Economics 为 Splunk 所做的研究显示,大型企业的停机成本约为每分钟 9,000 美元,全球 2000 强企业每年因此合计损失约 4000 亿美元。即便对一款小产品来说,一次拖上数小时而非数分钟才被处理的中断,也足以让一场原本安静的事故变成公开的舆情。
你无法阻止服务商发生中断。你能掌控的,是你这边的人多快知道这件事——而这取决于告警送达,而不仅仅是监控。
隐藏的失效点:你的告警系统也跑在云上
大型中断中,最容易坑到团队的陷阱是:你用来告诉你出问题的那套工具,往往依赖着刚刚故障的那套基础设施。
当某个主要 CDN 或区域出现降级时,连带受损的通常包括:
- 仪表盘:因为它自己的静态资源也走了受影响的 CDN,所以加载不出来。
- 状态页:在所有人同时刷新时出现延迟、缓存或干脆更新不了。
- 聊天告警:Slack 或 Teams 里的消息姗姗来迟,何况凌晨三点也根本没人盯着。
- 邮件通知:排在积压队列后面,在它还有意义的 40 分钟之后才送达。
如果通往你注意力的每一条路径都穿过同一朵云,一次中断就可能在你最需要告警最响的那一刻,把它们统统消音。解药不是更好的仪表盘,而是一条独立于你主技术栈、且无法被忽视的送达路径。
什么才算真正的带外(out-of-band)告警
带外告警,是一条不与被监控系统"同生共死"的送达路径。目标很简单:即便你的应用、监控界面和常用聊天频道都在挣扎,仍有一个信号能送到一个真人面前,并要求他做出响应。
一条有韧性的带外路径具备三个特征:
- 独立送达。 它通过一条不同于承压系统的渠道触达你——最好是推送或打到设备上的电话,而不是另一个网页仪表盘。
- 无法被忽视。 对于真正关键的事件,一个静默的小红点是不够的。告警应当像真正来电那样,能穿透专注模式或勿扰模式响起来。
- 多条触发路径。 如果一个触发源挂了,另一个仍能把告警发出去。一个 Webhook 加上一个邮件兜底,胜过单点故障。
没有哪个厂商能保证自己永远不出问题——诚实的工程态度意味着假定任何单一组件都可能失效。这恰恰是为什么价值在于独立与冗余,而不在于某个工具能奇迹般地永不宕机。
如何用 Echobell 搭建一条独立的告警路径
Echobell 是一个专注的送达层:它把一个 Webhook 或一封邮件,变成普通推送、时效性告警,或打到你手机上的电话。它不取代你的监控——而是确保监控最重要的发现真正送达你手里。下面是如何搭建一条能在服务商中断时依然可靠的路径。
1. 只挑选值得把人叫醒的信号
把最响的告警留给那些"延迟响应会带来真实代价"的事件:核心产品无法访问、支付失败、认证服务宕机。其余的都保持安静。在这一步上有所取舍,才能让关键路径保持可信,而不是在新工具里重演一遍告警疲劳。
2. 建一个专用频道并设为"来电"
在 Echobell 中,为关键事故创建一个频道,并把它的通知方式设为来电(Calling),这样一旦触发,告警就会像真正的电话一样打响你的手机。把这个频道分享给所有共同值班的人;每位订阅者都能自行控制它在自己设备上的行为。
3. 从故障系统之外的源头触发它
用一个跑在你主技术栈之外的检查,去调用该频道的 Webhook URL。像 Uptime Kuma、UptimeRobot 这样的外部可用性监控,或一个部署在不同基础设施上的合成检查,都是理想选择——因为即便你自己的区域宕机,它们仍在持续观察。一个基础的测试请求如下:
curl -X POST https://hook.echobell.one/t/<channel-token> \
-H "Content-Type: application/json" \
-d '{
"title": "外部探测显示站点无法访问",
"body": "对 https://status.example.com 连续 3 次检查失败",
"severity": "critical",
"externalLink": "https://status.example.com/incidents/latest"
}'
在脚本和密钥管理器里请使用占位 token;切勿把真实的频道 Webhook URL 提交到代码仓库。
4. 加一条邮件兜底,别让一条路径失效就满盘皆输
Webhook 是主触发方式,但许多服务即便 Webhook 集成配置有误或被限流,仍能发出邮件。Echobell 的邮件触发给了你第二条、彼此独立的触发同一告警的方式——在最要紧的时刻,这是一份廉价的保险。
5. 在真实或模拟的中断中测试它
未经测试的告警路径只是一种猜测。每季度一次,主动让一个健康检查失败——或者搭上你下一次真实事故的顺风车——确认那通电话真的能打进来。也别忘了验证恢复通知,让"已恢复"和"报警"一样可靠。
一份有韧性的告警自查清单
在下一次服务商中断到来前,用它来给你的配置做一次压力测试:
- 最关键的告警会以来电、而非小红点的形式打到手机上。
- 至少有一个触发源跑在独立于你应用的基础设施上。
- 有第二条触发路径(例如邮件),能在第一条失效时发出同一告警。
- 告警内容几秒内即可读懂:服务、症状、时间戳,以及一个链接。
- 只有真正紧急的事件才使用最响的那条渠道。
- 你在过去 90 天内测试过送达——包括恢复通知。
常见问题
有没有工具能保证在任何云中断期间都送达告警?
没有,谁这么宣称你都该存疑。每个服务都跑在会出故障的基础设施上。现实的目标是通过独立与冗余获得韧性:使用一条不与被监控系统同生共死的送达路径,并给自己留下不止一种触发告警的方式。
什么是带外告警?
它是一条独立于被监控系统的通知路径,因此该系统出故障时,不会同时把你"被告知"的能力也一并瘫痪。实践中,这通常意味着由跑在别处的检查触发、推送或打到设备上的电话告警。
这和我现有的可用性监控有什么不同?
你的监控负责发现问题,Echobell 负责把结论送达。大多数监控工具擅长发现故障,却不擅长保证有人及时注意到。把监控的 Webhook 指向一个来电频道,就补上了这道缺口。想看针对 API 的具体配置,参见当你的 API 宕机时如何收到电话告警。
我需要更换整套监控栈吗?
不需要。这是一项补充,而非一次迁移。保留你已经信任的监控、仪表盘和事故工具,只在最上层为那少数真正等不起的事件,加一个独立的送达层。如果你同时也在重新评估更重的平台,我们关于 Opsgenie 停服的文章讨论了什么时候完整的事件管理套件仍是正确选择。
在需要之前就把路径搭好
2026 年 7 月的 CloudFront 中断绝不会是最后一次。服务商事故正在成为一种正常的运行状态,而能从中从容走出来的团队,都是那些在糟糕的清晨到来之前,就搭好了一条独立、难以忽视的告警路径的团队。
从小处开始:一个关键频道,设为来电,从主技术栈之外触发,背后再放一条邮件兜底。在 App Store 下载 Echobell或前往 Google Play,趁一切都还正常,今天就测一通电话。