2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

人为失误导致 AWS S3 的 US-EAST-1 区服务宕机

  • 2017-03-07
  • 本文字数:1219 字

    阅读完需:约 4 分钟

由一次失误引发的连锁反应导致了很多 S3 服务器宕机,其中包括两个影响 S3 运行的关键子系统。由此导致了 S3 的故障,影响到了不仅 S3 本身还有其他一些依赖 S3 的服务。四个小时后 S3 才重新恢复正常。

Amazon AWS 故障十分罕见,一旦发生整个因特网都能感受得到,不少服务会直接受到影响。近期这次故障于 2 月 28 日发生在北弗吉尼亚地区(US-EAST-1)。不仅 S3 运行瘫痪了,而且波及一系列依赖 S3 的 AWS 服务,包括 EC2、EFS、API Gateway、Athena、Cloudsearch、MapReduce 等。这些服务要么是在功能上出现大量错误,要么是完全无法工作。

在四个小时的瘫痪期间,据报告有不少企业服务下线或是受到严重干扰,包括 Expedia、GitLab、GitHub、GroupMe、IFTTT、Medium、Nest、Quora、Slack、The Verge、Trello、Twitch、Wix 等。就连 Amazon 自身的 Alexa 也出现故障了,导致 AWS 状态仪表盘有两个小时未实时更新。Amazon 借助 Twitter 发布错误报告,期间他们只得为状态页面临时添加一个手工编辑的横幅。

Amazon 事后给出了对该次事件分析的诊断报告。当时有一个Amazon 团队正在调试S3 的计费问题,有人想要输入一条命令,从S3 的一个计费子系统中删除一小部分服务器。但是这个工程师输入了错误的命令,导致了大量的S3 服务器关闭,包括两台在另外两个子系统中起关键作用的S3 服务器。其中一个子系统是为整个区域的S3 提供索引服务的,影响到GET、PUT、LIST 和DELETE 命令;另一个子系统用于S3 部署,涉及新对象的空间分配。因为这两个子系统停止工作,S3 的功能产生了大量错误,影响到很多用户。

虽然AWS 具备快速恢复单个子系统故障的操作规程,但是由于索引子系统已经有数年从未重启过,索引已增长得十分庞大,因此还是需要相当长的重启事件。虽然功能最终得以恢复,但是比预想的要慢。Amazon 已经计划今年稍后会对索引子系统进行分区,将索引分区为更小的块,使得重启更加快速。现在他们已经立刻着手进行分区,为将来可能发生的瘫痪情况做好准备。他们对工具做了修改,限制了每条命令可以关闭的服务器数量,还限制使用单个命令关闭整个子系统。他们还将在多个区域实现分布式的S3 仪表盘,以确保在一个区域停止服务时仪表盘依然保持工作。

Amazon 在 2011 年曾经历过一次瘫痪,也是发生在 US 东部区域,那一次瘫痪了 4 天时间。从两次故障中学习到的并得以应用的基本经验教训是,系统创建不应仅依赖在单一区域上,如果当前区域发生故障,可以切换到其他区域。Netflix 已经这样部署了,其他系统同样也可以。但是这会增加网络主机服务费,企业总是倾向于尽量地降低费用。总体来说,Amazon AWS 是可靠的,但是服务总不可避免会有瘫痪情况。所有云服务提供商皆是如此。

查看英文原文: A Human Error Took Down AWS S3 US-EAST-1


感谢薛命灯对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-03-07 18:001958
用户头像

发布了 227 篇内容, 共 80.4 次阅读, 收获喜欢 28 次。

关注

评论

发布
暂无评论
发现更多内容

有点难的知识点:Webpack Chunk 分包规则详解

范文杰

webpack 6月日更

6000年,看懂了「硬核山东」!

云计算

傲腾持久内存如何为数据赋能,加速应用落地?

白玉兰开源

人工智能 英特尔 傲腾

超超超超级详细的多边形游戏问题分析(动态规划)

若尘

算法 动态规划 6月日更

分库分表 vs NewSQL 数据库

xcbeyond

分库分表 6月日更

C 语言数据结构的封装方法

实力程序员

【通俗易懂】JWT-使用的可能正确姿势

蛋先生DX

JWT 6月日更

音视频学习--弱网对抗技术相关实践

Fenngton

音视频 网络 视频编解码 弱网下的极限实时视频通信 实时视频

记一次K8s排错实战

雪雷

k8s 6月日更

5W1H聊开源之What——开源是什么?

禅道项目管理

开源 软件 开发

华云大咖说 | 安超OS全面升级 最新亮点解密

华云数据

详解浏览器跨域访问的几种办法

华为云开发者联盟

安全 浏览器 跨域 WEB安全 跨域访问

anyRTC Web SDK 实现音视频呼叫功能

anyRTC开发者

音视频 WebRTC RTC sdk

网络攻防学习笔记 Day34

穿过生命散发芬芳

网络攻防 6月日更

《开源 PassJava》1、项目介绍

悟空聊架构

开源 面试 刷题 spring cloud alibaba 6月日更

ARTS--week 10 补打卡

steve_lee

最近打算重新写一遍爬虫“指北”

IT蜗壳-Tango

IT蜗壳教学 6月日更

“openEuler未来发展” 采访熊伟博士

容光

操作系统

🐬【MySQL技术导航】带你认识一下数据库的锁

码界西柚

MySQL MySQL锁 6月日更

C++多线程强制终止

华为云开发者联盟

c++ 安全 线程 多线程 可信

如履薄冰--亚马逊直运系统重构实录

蔡超

软件架构 软件重构 软件自动化测试

裕民银行 x mPaaS | 移动应用“适老化”改造,可不止是字体变大

蚂蚁集团移动开发平台 mPaaS

移动开发 mPaaS APP开发

Dubbo 线程池模型

青年IT男

dubbo

🏆【声网Agora】「WebRTC-如何搭建语音认证服务」

码界西柚

WebRTC RTC征文大赛 Agora 6月日更

MySQL 基础之一:基本命令使用

打工人!

MySQL 6月日更

【Vue2.x 源码学习】第三篇 - 对象的单层劫持

Brave

源码 vue2 6月日更

react源码解析5.jsx&核心api

全栈潇晨

React React Hooks

Golang Testing 概览 - 基本篇

hedzr

Unit Test testing Go 语言

【Flutter 专题】113 图解自定义 ACEPieWidget 饼状图 (二)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 6月日更

5分钟速读之Rust权威指南(十六)

wzx

rust

PMP-项目管理标准

索隆

pmp 6月日更

人为失误导致AWS S3的US-EAST-1区服务宕机_亚马逊云科技_Abel Avram_InfoQ精选文章