谈谈亚马逊S3宕机事件带来的几个警示

转载 失控主机  2017-03-09 10:36  阅读 2,349 次 评论 0 条
行云管家,新手有礼

亚马逊简单存储服务(S3)在2月28日发生了3小时39分钟的中断事故。这导致依赖于这些云平台的许多网站和亚马逊其他的一些云服务产生了连锁效应,受到严重影响,其中不乏Apple App Store & icloud、Airbnb、Expedia等S3重量级用户。

亚马逊云服务

咨询机构Forrester分析师Dave Bartoletti表示,“S3就像云中的空气一样,当其服务中断时,很多网站就像缺氧一样不能呼吸。但是破坏,错误和中断就是业务运行在云中需要面临的事实。”

Bartoletti说,“人们对此没有必要恐慌,因为这并不是一个趋势。S3已经非常可靠安全,它一直是亚马逊云这个桂冠上的宝石。”

此次中断对于业界应该说是敲响了一个警钟,组织需要确保基于云计算的应用程序的安全,并准备应对下一次云中断事件。以下是行业厂商从中吸取的教训和为云中断做好准备的四个提示:

1.不要把所有的鸡蛋放在一个篮子里

这个建议对于不同的用户来说,其意味的事物也不同。但其基本的想法是,如果用户将应用程序或数据块部署到一个云中,通常不会具备很高的容错性。这取决于用户希望其应用程序具有多高的可用性,因为这将决定用户工作负载运行在多少个云中。这其中有多个选择:

•AWS公司建议用户将工作负载分散到多个可用区(AZ)。AWS云分布在全球16个区域中,每个区域含有至少两个AZ(可用区),有时甚至多达五个AZ。每个AZ都与相同区域中的其他AZ分离。AWS在同一地区的AZ之间提供低延迟连接,这是创建分布工作负载的最基本方式。

•为了加强保护,用户可以跨多个区域传播和运行应用程序。

•最终的保护是部署多个云供应商的应用程序,例如使用微软Azure,谷歌云平台,或者采用一些内部部署数据中心和托管基础设施资源作为备份。

Bartoletti表示,不同的客户会根据自己的实际情况采取不同的措施。如果用户依靠云计算为其业务赚取利润,最好确保其容错性和高可用性。如果用户只是使用云计算备份不经常访问的文件,那么其容错性和可用性不必那么高。

应对云故障的一个关键因素是知道什么时候发生。 AWS公司有一系列的方法来做到这一点。最基本的一个方法是使用其所谓的“健康检查”,它为每个帐户提供了使用AWS资源状态的自定义视图。

Amazon CloudWatch可以自动跟踪服务可用性,监视日志文件,创建警报,以及对故障做出反应。这个工作的一个重要前提是对“正常”行为进行彻底分析,以便AWS云工具可以检测“异常”行为。

一旦发现错误,就需要对一系列的多米诺效应预先设定响应措施。负载平衡器可以用于重定向流量,并且如果备份系统已经这样设置,则可以启动备份系统。

2.从一开始就构建冗余系统

组织尝试实时响应中断,这并不是很有效。而在不可避免的中断到来前做好准备将会挽回一些损失。以下有两种基本方法来将冗余构建到云系统中:

•Standby(待机):当发生故障时,应用程序会自动检测故障,并将故障转移到备份冗余系统中。在这种情况下,备份系统可以关闭,但需要准备好在检测到错误时启动。另一种方法是备用备份程序可以在后台运行时间运行(成本更高,但会减少故障切换时间)。这个备用方法的缺点是检测到错误之后,在将故障转移系统启动的时间内可能会有所滞后。

•主动冗余:理论上可以避免停机时间,用户可以将其应用程序构建主动冗余系统。在这种情况下,应用程序分布在多个冗余资源中:当发生故障时,其余资源将会承担更多的工作负载。可以使用分片技术,将服务分解成组件。例如,一个应用程序跨越八个虚拟机实例运行,这八个虚拟机实例可以分为四组,每组两个,数据流量可以在它们之间进行负载平衡。如果一组实例失效,其他三组可以分担数据流量。

3.备份数据

拥有冗余系统是一回事,而备份数据是另一回事。这对于亚马逊这次的中断尤其重要,因为它影响了亚马逊公司最流行的存储服务S3正常运营。

AWS拥有多种方式来本地备份数据:

•同步复制是一个过程,如果一个应用程序在一个次要的位置被复制,那么应用程序只承认一个事务(例如上传一个文件到云,或者将信息输入数据库)。这种方法的缺点是,它将引入辅助复制的等待时间,并使主系统得到确认。当延迟不是优先级时,这是一个很好的做法。

•异步复制:此过程将主节点与副本解耦,这对需要低延迟写入功能的系统很有用。在这种情况下,用户在失败期间应该愿意承受最近交易的一些损失。

•基于仲裁的复制:这是同步和异步复制的组合,它设置了要为事务进行备份的最小数量的信息。

为了确定如何最好地构建冗余系统和备份数据,客户应考虑其期望的恢复点目标(RPO)和恢复时间目标(RTO)。

4.测试系统

企业为什么要在发生中断之后,才能获知自己的系统是否应对故障?企业主动应对的办法就是事先测试。这可能听起来很疯狂,但大胆的云架构师宁可让整个节点,服务,AZ,甚至区域的业务中断,以便查看他们的应用程序是否可以承受。“你应该不断地打败自己的网站。”Bartoletti说。

Netflix公司拥有名为Chaos Monkey和Chaos Gorilla的开源工具,它们是其Simian Army的一部分,可以自动使某些内部系统崩溃或中断,以测试其对错误的容忍程度。那么这种措施有效吗?而在这次中断事故发生后,Netflix公司并没有报告其服务发生什么问题。(整理自企业网D1Net)

本文地址:https://www.cloudbility.com/club/1915.html
关注我们:请关注一下我们的微信公众号:扫描二维码,公众号:cloudbility
版权声明:版权归原作者所有,欢迎分享本文,转载请保留出处!

发表评论


表情