#云计算 亚马逊 AWS 公布早前重大故障的调查结果:内部关键软件错误和自动化系统打架引起的联级问题。出现问题的主要是 DynamoDB DNS 两个组件,这些组件存在竞争条件导致删除关键网络条目从而引发了多米诺效应,现在亚马逊已经暂停两个自动化系统。查看全文:https://ourl.co/110987
早前亚马逊旗下云计算服务 AWS 出现严重故障导致海量科技公司的服务出现错误,此次故障的规模极大且造成的影响也非常大,估计此时业界都还在考虑如何解决这类基础设施故障引起的行业震动。
亚马逊现在也公布了此次事故的详细调查结果:此次攻击并非外部攻击,而是内部关键软件出现的罕见错误,同时内部系统中的自动化故障导致内部程序开始竞争,进而删除了 AWS DynamoDB 数据库服务中的关键网络条目,随后引发了多米诺骨牌效应。
事件背景:
AWS DynamoDB 及诸多服务依赖于 DNS 来实现无缝扩展、故障隔离和恢复、低延迟以及本地性,这些服务需要维护上千万条 DNS 记录,以便在每个区域操作大型异构负载均衡器。
为确保这些 DNS 记录能够随时更新以增加可用容量、正确处理硬件故障、有效分配浏览和优化客户体验,自动化至关重要。
根本原因:
本次事件中的根本原因是 DynamoDB DNS 管理系统中的潜在竞争条件导致服务区域端点 (美东 1 区 / 弗吉尼亚州北部数据中心) 的错误空 DNS 记录,自动化处理并没有成功解决故障。
DynamoDB DNS 管理架构由两个独立组件组成确保服务可用性,第一个是 DNS Planner 负责监控负载均衡器的健康状况和容量,定期为每个服务的端点创建新的 DNS 计划。第二个组件是 DNS Enactor,负责将 DNS 计划应用于亚马逊的 Route53 服务以实现 DNS 状态更新。
在故障发生期间,DWFM 检查状态失败,具体来说 DWFM 状态检测依赖于 DynamoDB 因而无法完成操作,虽然这并未影响到现有的 EC2 实例,但在这期间与 DynamoDB 建立的新租约开始超时,当 DynamoDB API 恢复后,DWFM 开始重新建立与 EC2 的连接,但因为此时已经由大量实例面临租约超时问题,导致新实例启动失败,返回请求限制超出或者容量不足错误。
故障影响:
在故障发生的同时, DynamoDB 服务的所有依赖项立即遭受 DNS 故障且无法成功连接,这导致流量以及 AWS 内部服务均受影响。对此受影响的 AWS 工程团队开始在短时间内展开内部调查并开始实施临时缓解措施,从而恢复部分内部服务的 DynamoDB 连接,随后各种工程团队介入处理逐渐恢复恢复。
未来改进措施:
AWS 称目前已经暂时禁用 DynamoDB DNS Planner 和 DNS Enactor 的自动化,同时也修复内部的竞争条件问题并增加额外措施避免不正确的 DNS 计划被引用,最后还会改进 EC2 数据传播系统的限流机制以保护服务。
via AWS
蓝点网站长,如果发现本文存在错误或错别字,欢迎在评论区留言,收到消息后我将及时修改。其他事宜请点击本站任意页面底部的「与我们联系」获取邮箱。
2.44W785.83M1.65W10.42M¥30

