构造高可用性和高可靠性系统的一项重要原则是假定失效(Design forfailure)。换言之,你的设计模型应具有正如亚马逊的首席技术官(CTO)沃纳•威格尔(Werner Vogels)曾说的“一切事物随时有可能失效”的特性。幸运的是,现代数据中心、网络和服务器具有高可靠性,且很少发生故障。然而,若你把偶尔的故障当成是既定的,并简单建立一个在发生故障后能恢复且保持运行的系统,则你能建立一个强大的系统。
新一代自动恢复
今天我想告诉你一个新的EC2功能,当某项EC2实例遭受损害时,该功能可以使你更容易的构建一个需要的系统。若干系统状态检查服务(2012年首次引进并在之后得到多次加强)在幕后监视上述实例和其他部件的如期运行情况。在其他方面,它还检查网络连接、系统电源失效和物理主机上的软件硬件问题。
随着新功能的发布,若底层硬件的系统状态检查出现故障,你可以规划一个EC2实例的自动恢复。该实例将重启(若需要,实例将在新的计算机硬件上运行)但将保留实例ID、IP地址、ElasticIP地址、EBS卷的装配和其他配置细节。为进行完整恢复,你需确保上述实例作为初始化过程的一部分能自动启动任一服务和应用程序。
设计自动恢复
你可以通过点击鼠标(就支持的实例类型和环境,见下文注释)设计现存功能的自动恢复。简单的创建CloudWatch报警仅需要StatusCheckFailed_System指标以及选择Recover this instance操作。
第一步,查找和选择感兴趣的实例标准:
第二步:点击“创建警报”按钮:
删除通知功能(除非你出于其他原因仍然需要该功能),添加EC2功能,再选择Recover this instance。设置临界值是1,设置统计值最小化和指定适当值连续周期的编号(假设采集权值的间隔时间是一分钟,则两分钟至三分钟为最宜)。
适用的实例类型和环境
本实例适用于美国东部地区(北维吉尼亚州)的C3实例、C4实例、M3实例、R3实例和T2实例;我们计划将尽快在其他地区推行。上述实例需在在VPC中运行,且需利用EBS支持的存储,而非专用实例。
EC2功能部分无附加使用费。CloudWatch 的付费信息参考CloudWatch 定价页面。
了解更多,请阅读关于“实例恢复”的文档!
注:本文作者Jeff Barr于2015年1月19日报道