【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

人为失误导致 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:001530
用户头像

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

关注

评论

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

git普通库与裸库

SkyFire

git

OpenKruise v1.0:云原生应用自动化达到新的高峰

阿里巴巴云原生

阿里云 Kubernetes 云原生 OpenKruise 套件

有哪些比较好用的在线项目管理软件值得推荐?

优秀

项目管理工具

Go 语言快速入门指南:第八篇 接口

宇宙之一粟

golang 接口 12月日更 Go入门

Serverless Kubernetes 落地实践

阿里巴巴云原生

阿里云 Serverless Kubernetes 云原生

Dubbo 框架学习笔记十六

风翱

dubbo 12月日更

搭建PXE服务器(Ubuntu/Deepin)

SkyFire

Linux ubuntu deepin tftp pxe

架构实战营 4 期第三模块作业

jialuooooo

架构实战营

学生系统架构详细设计

Only

架构实战营 「架构实战营」

合并两个有序链表

田镇珲

算法 链表

沐曦加入龙蜥社区,聚焦技术创新,繁荣开源生态

OpenAnolis小助手

龙蜥社区

尝试下使用 cpp 实现 Rust 的 enum

SkyFire

c++ rust Enum

linux文本处理四件套的简单用法

SkyFire

Linux sed grep awk find

eoiioeWeb安全渗透测试之信息搜集篇

喀拉峻

网络安全 安全 WEB安全

元宇宙100讲-0x010

hackstoic

元宇宙

Go语言国际化 i18n

xcbeyond

golang 28天写作 i18n 12月日更

巨杉数据库加入龙蜥社区,共同推动软硬件行业生态发展

OpenAnolis小助手

龙蜥社区

【CSS 学习总结】第九篇 - CSS 布局-居中布局-水平垂直居中布局

Brave

CSS 12月日更

使用 Prometheus 监控的一些注意事项

耳东@Erdong

监控 Prometheus

gtest入门

SkyFire

c++ GTest

Modern-Cpp学习笔记

SkyFire

c++

PassJava 开源 (十) :Spring Cloud 整合 OSS 对象存储

悟空聊架构

OSS 28天写作 passjava 悟空聊架构 12月日更

Centos7 安装MySql 5.7多实例

taony

MySQL

学生管理系统架构设计

Evan

linux信号操作

SkyFire

Linux 信号

外包学生管理系统架构文档

Sindorei

「架构实战营」

模块三

Geek_59dec2

使用gprof进行简单程序的性能分析

SkyFire

Linux 性能分析 gprof

objdump简单使用

SkyFire

Linux objdump

C++11 extern template

SkyFire

C++11 template

linux库打桩

SkyFire

Linux hook

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