Amazon Web Services(AWS) 云平台可靠性技术研究
2014-12-25刘义颖
刘义颖
摘要:目前软件应用广泛,对软件可靠性要求越来越高。近几年云计算技术的研究逐渐增多,对于云平台的可靠性技术也有了新的要求。Amazon Web Services(AWS)提供了一整套云计算服务,用户能够构建复杂、可扩展的应用程序。AWS在最小成本情况下,为用户提供了一套构建容错的软件系统平台。在技术和性能等多方面的优势,被业界广泛认可和接受。该文主要研究Amazon Web Services云平台中的核心组件是如何提供可靠性技术的,分别对核心组件Amazon EC2,Amazon Simple Storage (S3),Elastic Storage Block (EBS),Elastic Load Balancing,Auto Scaling进行研究分析,为以后云计算平台的搭建和可靠性技术的研究提供依据。
关键词:Amazon Web Services(AWS);可靠性技术;灵活性;伸缩性
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)33-8030-02
Abstract: At present, the software is widely used, the requirement of reliability of software is more and more high necessary. In recent years, the research about cloud computing has gradually increased, the reliability technology of cloud platform also has new requirements. Amazon Web Services (AWS) provides a set of cloud computing services, users can build complex and scalable applications. In the minimum cost situation, AWS provides a set of building fault-tolerant software platform for the users. Because of the advantages of technology and performance, it was widely recognized and accepted. This paper mainly studies that how the core component of Amazon Web Services cloud platform can provide reliability technology, research on the core components of Amazon were EC2, Amazon Simple Storage (S3), Elastic Storage Block (EBS), Elastic Load Balancing, Auto Scaling, to provide the basis theory for building a cloud computing platform or research on reliability technology.
Key words: Amazon Web Services(AWS) ; reliability technology; Flexibility; Scalability
在当今社会,软件应用广泛,已经成为影响国民经济、政治乃至社会生活的重要因素。因此对软件的可靠性要求很高,尤其是对高可靠和复杂的软件系统而言,例如云计算系统。云计算是将计算作业分布在分布式计算机上,通过网络中央数据中心,企业或用户能够将资源切换到需要的不同应用上,根据需求访问不同的计算机和存储系统。云计算是分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network Storage)、虚拟化(Virtualization),以及负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物[1-3]。
目前的企业级的云计算产品层出不穷,最具代表性的有Amazon Web Services,IBM Blue Cloud,Cisco UCS和Joyent等。在2006年底,Amazon发布了EC2(Elastic Compute Cloud,灵活计算云),EC2是首个IaaS云服务,在技术和性能等多方面的优势,并被业界广泛认可和接受。AWS 提供了一整套云计算服务,用户能够构建复杂、可扩展的应用程序。AWS在最小成本情况下,为用户提供了一套构建容错的软件系统平台。AWS提供多种架构服务,从五个方面对系统提供了容错功能,分别是EC2,Amazon Simple Storage (S3),Elastic Storage Block (EBS),Elastic Load Balancing,Auto Scaling[4]。
本文主要研究Amazon Web Services云平台中的核心组件是如何提供可靠性技术的,下面分别对核心组件Amazon EC2,Amazon Simple Storage (S3),Elastic Storage Block (EBS),Elastic Load Balancing,Auto Scaling进行研究分析,为以后云计算平台的搭建和可靠性技术的研究提供依据。
1 Amazon EC2
Amazon EC2(Amazon Elastic Compute Cloud)是一个在云中提供可调整计算能力大小的网络服务。Amazon EC2中的实例类型是基本的硬件原型,用户可以选择一个实例类型来匹配他的应用所需要内存数量、计算能力。MI是一个定义服务实例的模板,这个模板基本上包含了一个软件结构(例如:操作系统,应用服务器和应用程序),并应用到一个实例类型上。用户可以绑定操作系统、应用软件和相关配置到一个AMI(Amazon Machine Inage)上, 可以使用这些AMI来提供多个虚拟化实例,通过简单的网络服务调用解除它们,根据用户的容量需求的变化来迅速调整容量的大小。
2 Amazon Simple Storage (S3)
S3 是一个具有工业强度的平台,能够轻松地满足用户的数据存储需求。它能够存储应用程序的数据,执行个人或企业备份,把媒体和需要很大带宽的其他内容快速且低成本地分发给用户的客户。
S3 具有的特性包括:1) 可靠性。它具有容错能力,能够非常快速地恢复系统,停机时间非常短。Amazon 提供的服务水平协议(SLA)保证99.99%的可用性。2) 简单性。S3基于简单的概念,为开发应用程序提供很强的灵活性。如果需要,可以在S3 组件之上构建更多功能,从而构建更复杂的存储方案。3) 可伸缩性。S3 提供很强的可伸缩性,可以在出现需求高峰时轻松快速地扩展。4) 廉价。与市场上的其他企业和个人数据存储解决方案相比,S3 的费率非常有竞争优势。
3 Elastic Storage Block (EBS)
Amazon EBS是一个用于持久保存运行实例上数据的存储块,可以创建类似未格式化的文件卷(Volume),并关联到到位于同一Amazon Zone的实例上。 Amazon EBS 本质上是硬盘,可以被附加到一个正在运行的Amazon EC2实例上。Amazon EBS特别适合需要一个数据库、一个文件系统或者访问原始块级存储的应用。EBS卷存储冗余数据,使它们比在传统硬盘山更耐用。一个EBS卷的年故障率(AFR)是0.1% 和0.5%,而普通的硬盘是4%。
在AWS平台上构建容错应用程序的时候,Amazon EBS 和Amazon EC2经常联合使用。任何需要保存的诗句应该存储在Amazon EBS卷上,而不是存储在与每个Amazon EC2实例相关的所谓的“临时存储”。如果Amazon EC2实例失效并需要被替换,AMazon EBS卷可以被附加到新的AMazon EC2实例上。因为新的实例实际上是原始实例的重复,不应该有数据或者功能的损失。
4 Elastic Load Balancing
Elastic Load Balancing(弹性负载平衡)是一个AWS产品,跨过多个Amazon EC2实例,分配输入流量到用户的应用程序中。当用户使用Elastic Load Balancing时,用户就会获得一个DNS主机名——任何发送到该主机名的请求,都委托给一个Amazon EC2实例池。Elastic Load Balancing在Amazon EC2实例池中,探测出运行不正常的实例,并自动引导流量到正常实例, 直到不正常实例被修复。
Auto Scaling和Elastic Load Balancing是一个理想的组合——Elastic Load Balancing给了用户一个DNS名称来访问,自动伸缩功能确保总有正确数量的健康的Amazon EC2实例来接受请求。
5 Auto Scaling
Auto Scaling能够自动地调整你的Amazon EC2的容量大小,当几个服务器实例需要时,根据以下定义的规则执行:
1)当运行服务器实例的数量高于(或低于)一定数量, 加载(或终止)服务器实例。2)当服务器实例的资源利用率(即CPU、网络或磁盘)高于(或低于)某个阈值,启动服务器实例(或终止)。这些指标将从亚马逊云监测服务被收集,负责监控Amazon EC2实例。
Auto Scaling可以使应用程序根据需要动态的增加以及减少实例,因此也可以使用Auto Scaling来提高应用程序的可靠性,例如在Auto Scaling中设置条件,保证系统中正常的实例个数不会低于两个或者应用程序中任何一个EC2实例的时延在一段时间内不能超过5秒。一旦这些条件被触发,系统就会自动的增加实例的个数从而提高服务的可用性。
6 结束语
本文通过研究Amazon Web Services云平台的可靠性技术,分别对核心组件Amazon EC2,Amazon Simple Storage (S3),Elastic Storage Block (EBS),Elastic Load Balancing,Auto Scaling的功能和可靠性方面进行研究分析,为以后云计算平台的搭建和可靠性技术的研究提供依据。
参考文献:
[1] 员春欣,江建慧.安全关键计算机系统[M].北京:中国铁道出版社,2003.
[2] I. Foster, Z. Yong, I. Raicu, and S. Lu, Cloud computing and grid computing 360-degree compared [J].Grid Computing Environments Workshop,2008:1-10.
[3] M. Armbrust, A.Fox, R.Griffith, et al., Above the clouds: a Berkeley view of cloud computing, Technical Report [R].No.UCB/EECS-2009-28, University of California at Berkley,USA,2009.
[4] 吴朱华.云计算核心技术剖析[M].北京:人民邮电出版社,2011.
[5] AWS云计算白皮书 http://aws.amazon.com/cn/whitepapers/.
[6] AWS_Cloud_Best_Practices.pdf.
[7] Salapura,V,Harper,R,Viswanathan,M.Resilient cloud computing[J].IBM Journal of Research and Development,2013,57(5):1-12.
[8] Shufen Zhang,Shuai Zhang,Xuebin,et al. Analysis and Research of Cloud Computing System Instance[C]. // Proceedings of the 2nd International Conference on Future Networks, Sanya,2010:88-92.
[9] Michael R Lyu. Handbook of Software Reliability Engineering [M].McGraw-Hill,1996.
[10] Eugster, Patrick Th, and Rachid Guerraoui. "Probabilistic multicast." Dependable Systems and Networks, 2002. DSN 2002. Proceedings. International Conference on. IEEE,2002.
[11] Kramer, Jeff, and Jeff Magee. "The evolving philosophers problem: Dynamic change management." Software Engineering[J].IEEE Transactions on,1990,16(11):1293-1306.
[12] Lamport L,Shostak R,Pease M.The Byzantine generals problem[J].ACM Transactions on Programming Languages and Systems (TOPLAS),1982,4(3):382-401.
[13] 田东,陈蜀宇,陈峰.一种网格环境下的动态故障检测算法[J].计算机研究与发展,2006,43(11): 1870-1875.
[14] Steinder, Malgorzata, and Adarshpal S. Sethi. "Probabilistic fault localization in communication systems using belief networks." Networking.IEEE/ACM Transactions on 12.5 (2004): 809-822.
[15] Zheng Z,Zhou T, Lyu M, et al. Component ranking for fault-tolerant cloud applications[J].2012.