主机资讯 · 阅读约 1 分钟

相隔一年的两次配置故障:CloudFront 与 1.1.1.1

上周四,7 月 16 日,AWS CloudFront 开始对任何使用 VPC Origins 的分发返回 5xx 错误,并从 UTC 07:45 一直持续到 11:18:三小时三十三分钟。AWS 把根因归于“管理到私有 VPC 源连接的那组机群上的一项内部约束”,它让该机群无法加载自己更新后的网络配置。 1 使用其他源类型的分发未受影响,但 CloudFront 挡在互联网相当大一部分之前,因此一个功能的失效就打断或劣化了包括 Canvas、Blackboard、Hugging Face 和 Ubiquiti 在内的服务。 2

而在此两天之前,也就是 7 月 14 日,一次形态相同的故障的一周年几乎无人提起。2025 年,Cloudflare 的公共 DNS 解析器 1.1.1.1 消失了 62 分钟。六月初,一个预生产的 Data Localization Suite 服务被错误地关联到了 1.1.1.1 的前缀上,这个错误一直静静躺着,直到第二次变更加入了一个离线测试位置并触发了全球配置刷新,一次性把那些前缀从 Cloudflare 的每一个数据中心撤了出去。尽管当时众说纷纭,那并不是 BGP 劫持。Cloudflare 的事后分析写得很明确:撤回路由的是它自己的自动化。 3

没有光缆被切断,没有数据中心起火。两次事件里,机器都好好的,错的是指令。

如今脆弱的那部分是控制平面

今年我们一直在写物理故障:三月 AWS 在中东的事件、6 月 22 日让半个网页应用世界劣化的 Zayo 光缆中断、以及海底光缆本身。它们容易理解,而且以一种奇怪的方式令人安心——光缆是实物,而实物可以做冗余。

配置分发更难,而原因是结构性的,不是能力问题。

它在设计上就是全局的。一个分布式配置平面的全部价值,就在于一次变更能迅速到达每个角落——而这恰恰是让一次糟糕的变更迅速到达每个角落的那个属性。

它同时还是恢复路径。如果你的配置系统不健康,那你平时用来修东西的机制,正是坏掉的那个机制。物理冗余在这里帮不上忙:你有一大堆运转正常的服务器,而它们都在顺从地做错的事。

而且它没有天然的爆炸半径边界。区域和可用区界定了物理故障的范围。CloudFront 内部的一组机群没能加载一份配置,错误却是全球性的。除非有人专门这样设计,否则一次配置推送并不尊重那些边界;而分阶段发布,恰恰是那种会在交付压力下悄悄被侵蚀的纪律。

DNS 是同一个故事,只不过高了一层。撤回一条路由是一次配置声明。解析器本身是健康的,它之所以不可达,是因为网络被告知它不在那里。

值得抄走的五个习惯

令人不适的是:这是互联网上运维最成熟的两家机构。如果分布式配置能咬到它们,那么一个普通团队周五下午五点跑的 Ansible,也不会更安全。

一切都分阶段发布,配置也不例外。如果一次变更同时到达你 100% 的机群,那么不管你在多少个区域,你的爆炸半径都是全球性的。

保留一条不经过配置平面的恢复路径:控制台、静态兜底、可以手工编辑的文件——任何在自动化失灵时仍然能用的东西。

不要把你的权威 DNS 买自你藏源站的那家服务商。当那家厂商过糟糕的一天时,它会用同一个动作同时拿走问题和你绕开问题的能力。

配置第二个递归解析器,对内对外都要。2025 年 7 月就是这一条的论据:一个解析器可以完全健康却依然不可达;第二个不花钱;而如果名字解析失败,你构建的其他一切都无关紧要了。

还有,要知道你的回滚时间,是实测的而不是估计的。“我们可以回滚”在有人拿秒表量过之前,都不算一个计划。

自动化失灵时的一条入口

我们是一家小型服务商,不会假装自己的配置平面比 Cloudflare 更精巧。它更小,这改变的是权衡关系,而不是解决了问题;偶尔它对我们有利:活动部件更少,能让一次全局推送真正变成全局的地方也更少。

我们给客户的,是这类故障中真正要紧的东西:一条不依赖我们的自动化是否健康的入口。

我们目录中的每一台 VPS 和 VDS,都能从客户中心使用 noVNC 控制台,它独立于客户机自身的网络。当网络配置出错、防火墙把你锁在外面,或者机器启动不完,你会拿到一块屏幕和一副键盘。不需要 SSH,不需要工单,也不需要把凭据发给任何人。

完整 KVM 加 root 权限意味着你可以自己把机器救回来,而不必等某家厂商把修复推送到一个你绕不过去的控制面板里。而 looking glass 让你自己从地拉那、斯科普里、阿姆斯特丹和都柏林核对我们的路由,而不是听一个状态页的一面之词。

还有那条我们一再重复的常规建议,因为它一再被证明有用:在一个与你主站不共享控制平面的地方放一台 €5/月 的 VPS。不是同一家服务商的另一个区域,而是另一个国家的另一家服务商。在上面提到的那两天里,正是这台机器还能告诉你的用户发生了什么。

值得留意的趋势

今年大多数关于中断的新闻都是物理性的:三月 AWS 在中东的故障、六月 Zayo 的光缆中断。而上周四那次两者都不是,与它几乎共享周年的那次也不是。这个行业花了二十年把硬件故障的生存能力练好,却在“如何在自己的指令下幸存”上投入相对很少。

一个设计良好的分布式系统,其故障模式越来越不是“它坏了”,而是“它在错误的输入上,在所有地方,完美地运行了”。

资料来源

  1. AWS CloudFront outage serves errors instead of websites,The Register
  2. The July 2026 AWS CloudFront Outage: VPC Origins, Cascade Impact, and What Broke,IncidentHub
  3. Cloudflare 1.1.1.1 incident on July 14, 2025,Cloudflare

返回 主机资讯