## 视频
<video src="https://dev-media.amazoncloud.cn/30-LibaiGenerate/31-LiBaiRebrandingVideo/ARC309-Build_applications_that_recover_from_an_Availability_Zone_impairment-LBrebrandingWCaptionCN.mp4" class="bytemdVideo" controls="controls"></video>
## 导读
在云端构建高弹性应用程序需要跨多个可用性区域构建、冗余容量规划,并具有适当的机制,以确保请求路由远离可用性区域中硬故障和灰色故障的偶发临时故障。了解如何设计和监控应用程序,以使用 [Amazon Route 53](https://aws.amazon.com/cn/route53/?trk=cndc-detail) Application Recovery Controller zonal shift 等功能检测可用性区域内的故障并自动恢复。
## 演讲精华
<font color = "grey">以下是小编为您整理的本次演讲的精华,共1200字,阅读时间大约是6分钟。如果您想进一步了解演讲内容或者观看演讲全文,请观看演讲完整视频或者下面的演讲原文。</font>
近年来,云计算的使用呈现爆炸式增长,使得各类公司都能借助云的灵活性和可扩展性迅速拓展其在线业务。随着越来越多的重要任务应用程序被部署到诸如亚马逊云科技这样的云平台之上,对恢复能力和高可用性的需求变得越来越关键。
在2022年亚马逊云科技re:Invent在拉斯维加斯的一个拥挤的会议室里,亚马逊云科技应用恢复控制器总经理Deepak Singh与拥有超过12年亚马逊云科技经验的资深员工Gavin McCullough分享了关于亚马逊云科技如何将恢复能力构建到其云端并帮助客户在短时间内从可用区(AZ)内的故障中恢复的宝贵见解。
Singh在会议上通过一个互动式的投票开始了演讲,用举手的方式估算了目前有多少公司跨多个AZ部署应用以提高高可用性。大约75-80%的公司表示他们确实使用了多AZ部署。然而,当被问及他们在从AZ故障中恢复时的信心时,只有10-20%的公司完全举起了手,可能还有另外20-30%的公司部分举起了手。
这强调了本次会议目标的重要性,即分享亚马逊云科技基于超过15年的经验在AZ恢复力方面的实践,并为与会者提供可以将这些实践应用于自己的多AZ架构和灾难恢复计划以提高信心的关键收获。正如Singh总结的那样,目标是提供方法来减少AZ故障的次数和持续时间。
接下来,McCullough上台介绍了亚马逊云科技如何在2007年公开推出的AZ背景下的发展,当时是为了满足客户不断增长的恢复力需求。他解释道,在2006-2007年,亚马逊的零售业务正在蓬勃发展,推出了成功的项目,如Prime、Amazon Video和Kindle。
为了说明应对最小化恢复时间至分钟或更短的必要性,McCullough分享了一个来自他在亚马逊云科技早期的轶事。当他于2011年在都柏林办公室加入负载平衡团队时,他被告知在黑色星期五和网络星期一等高峰期,亚马逊电商业务的损失可能会达到数百万美元。这一说法在他设计快速恢复系统的过程中一直伴随着他。
尽管对每个亚马逊云科技的客户而言,亚分钟或接近瞬时的恢复可能并非必需品,但麦卡洛夫表示,“面向恢复的计算”的基本原则依然适用——关注构建冗余能力并能够快速脱离故障组件,而非试图预防失败。为了实现最大的灵活性,企业应在多个数据中心之间实施主动活跃策略,并快速同步数据复制。这样可防止不一致现象,并将所有流量从一个数据中心迁移到另一个数据中心,同时最小化中断。亚马逊云科技采用AZ模式来满足这些需求——数据中心足够近以实现同步复制,典型的往返延迟约为1毫秒,但相隔足够远,例如几英里,以避免区域性灾难的相关故障。
麦卡洛夫分享了亚马逊云科技数据中心设计团队从中学到的关于亚马逊云科技设施中内置的大量冗余的见解,包括备用电力、冷却、网络等。然而,亚马逊云科技认识到即使最好的数据中心也无法达到100%的可靠性,因此他们需要为无法避免的失败做好准备。通过将客户应用程序平均分配至至少3个AZ,并设计亚马逊云科技服务以能够应对AZ故障,亚马逊云科技可将大部分问题限制在一个AZ内,并简单地将该AZ的所有流量迁移到其他AZ。麦卡洛夫解释称,这种模式有助于包容“灰色失败”——部分或间歇性问题,它们比完全失败更难以检测。通过将其视为局部AZ问题并将其全部流量迁移,服务可以避免更广泛的影响。
接着,麦卡洛夫概述了亚马逊云科技在AZ间构建弹性服务的实践,客户可以在自己的架构中使用这些方法:
- 全面审视应用程序堆栈的所有组成部分,找出如单一AZ数据库等可能导致单点故障的元素;
- 在AZ间均衡地分配容量;
- 确保拥有足够的备用容量,以便在失去一个整个AZ时能立即处理,而无需事先进行扩展;
- 尽量减少跨AZ协调,以避免多AZ故障;
- 关注使数据库和存储在AZ间保持一致性和弹性。
他接着描述了亚马逊云科技如何通过异常检测监控每个AZ的客户体验指标来检测AZ故障。如果一个AZ的错误率显著更高,例如达到3至4倍,这表示该AZ出现故障。在这种情况下,可以快速将100%流量从该AZ转移走,以恢复之前的服务水平。
麦卡洛夫解释了共享责任模型如何应用于亚马逊云科技侧和客户侧的AZ弹性。例如,DynamoDB和Aurora这样的亚马逊云科技服务可以自动处理AZ弹性。但对于EC2计算,客户必须构建其基础设施并确保有足够的容量。因此,亚马逊云科技提供了诸如Zonal Shift之类的工具,允许快速将100%流量从AZ转移走,但客户必须在他们的工作负载中实现弹性。
这导致辛格尔进行了关于Zonal Shift功能的讨论。这是一个在2021年推出的服务,允许通过编程方式将100%流量从受损AZ转移走。辛格强调了Zonal Shift如何在不重新配置资源的情况下暂时重定向流量,从而轻松恢复。
他概述了客户如何通过提供要切换的资源ID、指定要转移离开的AZ以及设置过期时间来调用Zonal Shift API的过程。辛格演示了一个使用Zonal Shift的示例架构,该架构使用了隔离的AZ模型对vs解耦模型。隔离模型在前端层切换流量,阻止流量进入受损AZ。而解耦模型需要独立地切换每个服务。
辛格然后介绍了刚刚宣布的Auto Shift功能。根据客户反馈,Auto Shift消除了手动检测和启动AZ切换的需求。当在负载平衡器上启用时,亚马逊云科技将在检测到潜在广泛故障时自动将100%流量转移到其他区域,同时通过EventBridge发送通知。
然而,辛格警告说,客户仍然必须设计弹性架构并具有足够的容量,因为将100%流量转移走会将剩余AZ的负荷增加到原始容量的两倍。亚马逊云科技通过所需的实践运行模式来解决这个问题,该模式在每个资源上每周进行一次自动化AZ切换以验证容量。
辛格尔向客户提议逐步缩短阻塞时间窗口,以便更好地应对潜在故障。最终,他强调了运用故障注入服务模拟区域故障的重要性,这将有助于检验应用程序在自动切换方面的能力。
在总结发言中,麦卡洛强调应从弹性设计入手,借鉴亚马逊云科技15年经验和32个地区的成功与教训。尽量采用托管的区域性服务,确保具备预先扩展的能力以实现快速切换,同时运用诸如自动切换和运行实践等工具来持续优化恢复过程。
通过对亚马逊云科技在实际区域弹性需求方面的丰富实践经验进行分享,并提供诸如区域切换和自动切换等创新解决方案,辛格尔和麦卡洛为与会者提供了在亚马逊云科技平台上构建自身高可用性和高弹性应用程序的策略。
**下面是一些演讲现场的精彩瞬间:**
亚马逊云科技的领导者分享了他们团队如何打造工具和流程,以减少和缩短客户受到的影响事件的时间和次数。
![](https://d1trpeugzwbig5.cloudfront.net/ARC309-Build_applications_that_recover_from_an_Availability_Zone_impairment/images/rebranded/ARC309-Build_applications_that_recover_from_an_Availability_Zone_impairment_0.png)
这位领导者阐述了如何在亚马逊云科技服务中快速响应并解决灰色失败问题,以便将中断的影响降到最低。
![](https://d1trpeugzwbig5.cloudfront.net/ARC309-Build_applications_that_recover_from_an_Availability_Zone_impairment/images/rebranded/ARC309-Build_applications_that_recover_from_an_Availability_Zone_impairment_1.png)
领导者还详细描述了区域切换(Zonal Shift)如何帮助将流量从有问题的可用性区域转移走,从而保持客户的高成功率。
![](https://d1trpeugzwbig5.cloudfront.net/ARC309-Build_applications_that_recover_from_an_Availability_Zone_impairment/images/rebranded/ARC309-Build_applications_that_recover_from_an_Availability_Zone_impairment_2.png)
当启用区域故障切换时,亚马逊云科技会自动将流量从受影响的可用性区域切换掉。
![](https://d1trpeugzwbig5.cloudfront.net/ARC309-Build_applications_that_recover_from_an_Availability_Zone_impairment/images/rebranded/ARC309-Build_applications_that_recover_from_an_Availability_Zone_impairment_3.png)
此外,领导者宣布了一项名为Practice Run的新功能,该功能将在每周自动对部分资源进行区域切换测试,以确保高可用性。
![](https://d1trpeugzwbig5.cloudfront.net/ARC309-Build_applications_that_recover_from_an_Availability_Zone_impairment/images/rebranded/ARC309-Build_applications_that_recover_from_an_Availability_Zone_impairment_4.png)
亚马逊云科技的自动切换接管功能可以检测到广泛的可用性区域损坏,并将工作负载切换到维持应用程序正常运行时间的地方。
![](https://d1trpeugzwbig5.cloudfront.net/ARC309-Build_applications_that_recover_from_an_Availability_Zone_impairment/images/rebranded/ARC309-Build_applications_that_recover_from_an_Availability_Zone_impairment_5.png)
## 总结
该演讲探讨了亚马逊云科技如何运用可用性区域(AZ)来构建具有弹性的服务。AZ是指相互靠近的独立数据中心,旨在实现低延迟。这使得跨AZ同步数据复制成为可能,从而使应用程序能够应对故障。亚马逊云科技的服务被设计成即使在整个AZ发生故障的情况下,仍能在其他区域保持足够的容量,从而产生最小的影响。这种设计理念体现了“面向恢复的计算”的理念,即迅速从失败中恢复,而非立即尝试修复。
当某个AZ出现问题时,通常会出现所谓的“灰色故障”,此时部分请求会成功,但许多请求可能会变慢或失败。为了将问题隔离到一个AZ,亚马逊云科技会通过跨区域比较指标来识别异常值。然后,可以使用新的“区域切换”功能暂时将流量从受损的区域移走,从而将灰色故障转化为硬故障,并在调查问题时恢复应用程序性能。
这一理念遵循“共同责任”模型,即亚马逊云科技管理一些层面,如负载均衡器,而用户需要确保每个AZ中的计算容量足够。如今,亚马逊云科技提供了新的“区域自动切换”功能,如果用户选择参与,可以自动远离有问题的AZ,从而确保快速恢复。
## 演讲原文
## 想了解更多精彩完整内容吗?立即访问re:Invent 官网中文网站!
[2023亚马逊云科技re:Invent全球大会 - 官方网站](https://webinar.amazoncloud.cn/reInvent2023/?s=8739&smid=19458 "2023亚马逊云科技re:Invent全球大会 - 官方网站")
[点击此处](https://aws.amazon.com/cn/new/?trk=6dd7cc20-6afa-4abf-9359-2d6976ff9600&trk=cndc-detail "点击此处"),一键获取亚马逊云科技全球最新产品/服务资讯!
[点击此处](https://www.amazonaws.cn/new/?trk=2ab098aa-0793-48b1-85e6-a9d261bd8cd4&trk=cndc-detail "点击此处"),一键获取亚马逊云科技中国区最新产品/服务资讯!
## 即刻注册亚马逊云科技账户,开启云端之旅!
[【免费】亚马逊云科技“100 余种核心云服务产品免费试用”](https://aws.amazon.com/cn/campaigns/freecenter/?trk=f079813d-3a13-4a50-b67b-e31d930f36a4&sc_channel=el&trk=cndc-detail "【免费】亚马逊云科技“100 余种核心云服务产品免费试用“")
[【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用”](https://www.amazonaws.cn/campaign/CloudService/?trk=2cdb6245-f491-42bc-b931-c1693fe92be1&sc_channel=el&trk=cndc-detail "【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用“")