【IT168 评论】
摘要
在过去的十年里,开源,特别是LAMP(Linux, Apache, MySQL 和 PHP, Perl, Python)已经成为架设网站或者其他在线应用的软件选择。LAMP应用的增加要归因于它的高质量、易用性和低成本。同样,对于希望降低配置和管理LAMP的硬件成本,又不想牺牲易管理性和可用性的开发人员和机构来说,“云”变得越来越受欢迎。相应的,开源软件已经成为 “云”的一个自然选择,因为开发人员和机构,希望使用一个经验证的软件可以加速云开发和应用交付。本文介绍了最受欢迎的云计算平台、Amazon Web Services(AWS),提供一些在云上部署、管理、监控MySQL的指导。
什么是云计算?
云计算作为一种颠覆式商业模式和一系列的技术出现,这一系列技术通过开放Web Service接口、虚拟化和一定程度上的自动化来实现,其中很多方面和基于Web的应用的开发、部署和管理相关。相比于传统的数据中心供应模式,云计算承诺以较低成本按需扩展。这是通过“随用随付”模式来实现的,也就是公司仅需支付他们实际使用的计算和存储资源,一般是按小时数或者存储或传送的字节数来计费。因此一个公司可以更有效的运营其计算资源,避免因未充分利用的计算资源而开销费用,或避免资源用尽而仍未能满足业务需求。云供应商以虚拟化作为其核心技术—提供动态可扩展的存储、网络和计算资源。有了云计算,企业可以集中其精力在核心竞争力上。许多软件供应商现在正寻找如何在云上像硬件一样容易的部署、动态扩展、管理和监控其提供的服务。
Amazon Web Services和MySQL
目前,最受欢迎的云计算平台是Amazon Web Services(AWS),在云上最受欢迎的数据库是MySQL。尽管Amazon在2002年就已经开始着手AWS,并从那时已使许多新的计算服务:包括基础架构、电子商务和Web信息服务变得可用,然而我们希望继续集中部署这些与MySQL最相关的内容—如:Elastic Computing Cloud (EC2/弹性计算云),Simple Storage Service (S3/简便存储服务)和Elastic Block Store (EBS/持久存储)。这些服务,开发人员可以使用Web服务、具体的REST和SOAP协议访问。
Amazon EC2上订阅一个MySQL Enterprise,开发人员充分依托MySQL数据库专家,可以在云上更具成本效益的交付web-scaled数据库应用。Amazon EC2 和 MySQL,对于一个想减少资金花费和运营成本,同时以最小的成本和投入来动态扩展其应用的机构来说,是相当的适合。
Amazon Elastic Computing Cloud (EC2)
Amazon EC2服务开始于2006年,在2008年变得普遍广泛可用。EC2使得亚马逊云能够动态扩展计算能力。它使开发人员更容易交付web-scale应用。亚马逊云计算能够忽略硬件,取而代之的是当需求增加时,可以使用(或不使用)额外的虚拟硬件。
支撑EC2服务的是Xen虚拟技术。Xen是开源软件,它允许操作系统如Linux、Windows或者Solaris作为“虚拟机器”,并同时运行在相同的硬件上。使用Xen,EC2可以快速提供客户虚拟服务器的规格说明书,定制硬件特性如CPU数、内存和软件容错。
EC2实例可以被部署在美国或者欧洲。Amazon EC2 Service Level Agreement承诺每个区域均具备99.95%的可用性。
EC2中虚拟机被认作“实例”,EC2实例在各种配置下,主要分成两大类:“标准实例”和“高CPU实例”。这些实例种类是基于“EC2计算单元”,大至相当于下层物理硬件的CPU大小。一个EC2单元通常等于一个1.0-1.2Ghz 的AMD™ 皓龙™处理器或英特尔™至强™处理器。Amazon提供32位和64位两种实例种类,都是按小时计费的。
最受欢迎的实例种类适合于大多数的来自标准配置应用。包括以下配置:
小实例(默认配置 ) 32位、1.7G内存、160G存储,相当于1个EC2计算单元。
大实例 64位、7.5G内存、850G存储,相当于4个EC2计算单元。
超大实例 64位、15G内存,1690G存储,相当于8个EC2计算单元。
Amazon也提供高CPU实例,连接到典型的CPU密集型应用。该实例类型包括:
高CPU中等实例 32位、1.7G内存、350G存储,相当于5个EC2单元。
高CPU超大型实例 64位、7G内存,1690G存储,相当于12个EC2单元。
EC2实例用一个Amazon Machine Image (AMI)进行部署。AMI由一个操作系统和您选择预负荷的任何其他软件组S成。Amazon已编录了许多预建的AMI,这使得启动EC2容易的多。
Sun提供许多AMI可以预装MySQL和其他Sun软件像OpenSolaris和GlassFish。
如果您有特别的需求,Amazon允许您使用其SDK创建您自己的定制化的AMI。
Amazon简单存储服务(S3)
在2006年,Amazon也发行了S3,它的在线存储Web服务。S3给开发人员提供一个简单、安全、本质上拥有无限能力的连续在线存储。S3可以被想成在“云”上的一个很大的磁盘驱动或一个SAN。和带宽的收费模式一样,Amazon对最终用户按每GB存储收费,,并且当存储和检索S3数据时要求收费。
用S3您可以存储和获得Amazon认为是对象的无组织的数据。这些对象可以是拥有2KB相关元数据的从1 byte到5GB大小的任何地方的对象。尽管S3里没有目录或文件名,其功能相当于“Buckets”和对象。对象存储在“Buckets”当中,并由开发人员通过预设的唯一键进行检索。Buckets和其内部包含的对象存储在两个不同的物理区域中,但是它们可以从任何地方访问。使用一个REST和SOAP接口,开发人员可以创建、列出和检索Buckets和Objects,同时可以通过GET接口或者BitTorrent协议开始下载。
Amazon Elastic Block Store (EBS)
当EBS在2008年开始运营时,它是Amazon EC2最令人期待的特性之一。在EBS之前,EC2存储是和本地实例联系在一起的,这就意味着如果EC2实例破坏,本地实例上存储的数据就变得不可用了。为了解决该问题,Amazon创建了EBS,提供块级水平存储容量,其可以不考虑EC2实例的状态。对于开发人员,EBS Volume的出现作为标准的块机制,其大小从1GB变化到1TB。指定机制名称和块机制接口以后,用户可以配置一个他们选择的EBS Volume的文件系统。
EBS Volume提供EC2更大程度的数据可移植性。例如,如果您想增加存储容量,您只需要对现有的EBS Volume进行快照,创建一个有更多容量的新的EBS Volume,并且附加返回到EC2实例。这也适用于您需要升级或者降级到一个不同的EC2实例类型的情况。很重要的一点,多种多样的EBS Volume可以被安装在相同的EC2实例上。这种通过多种多样的容量支持分段或分区数据,可以获得更好的输入/输出和吞吐性能。这对I/O密集型数据特别有用。
EBS Volume相较于本地EC2存储的另一个好处就是,EBS Volume能够被复制和替换到Amazon所称的“可用区域”中。在一个单一区域内(美国或欧洲),使用EBS您可以拥有大量的可用区域。“可用区域”的潜在目的是转移在硬件事故中或站点故障中丢失的数据,并且在某一个(地理)区域内提供较低的延迟。每个可用性区域均在物理上拥有自己的分布式数据中心架构,和EC2实例连在一起的EBS VOLUME必须存在于相同的可用区域。
EBS也支持给S3使用point-in-time快照进行备份。每个备份是一个不同的快照文件,只有自上次快照改变的的块数据文件被保存。对于您的MySQL数据库,Point-in-time快照能够以高效的方式创建持续的备份。
如果您的MySQL数据库里的数据可用性很关键,那么就很有必要使用EBS Volume。,您不应允许EC2实例由于获取本地数据失败而使您的数据不可用。使用EBS,您可以很简单的开始另一个EC2实例并且把其放到EBS Volume上。其次,根据Amazon的EBS页面,“在几乎所有的案例中,Amazon EBS Volume的延迟和吞吐量设计显著优于Amazon EC2实例的存储。这就意味着,您的MySQL数据库的I/O性能运行在EBS应该比本地EC2存储上更好。考虑在您MySQL数据库中使用EBS的另外一个原因是,通过简单的把EBS Volume放在更大的EC2实例上,您就可以从一个实例类型升级到另一个。最后,正如所说的那样,EBS在MySQL数据库中提供创建快照的能力,因此,如果您需要运行您的数据库的其他副本,或者只是要求用简便的方式创建point-in-time恢复您的数据库,那就选择EBS Volume吧。
版权声明:
本文由上海爱可生信息技术有限公司根据甲骨文公司官方文档翻译整理而成,版权归属甲骨文公司,转载请保留此版权声明。