Amazon虚拟化

 Amazon EC2作为世界领先的IaaS云计算服务,它有下面这些特点:

1)  功能丰富:支持丰富的操作系统和海量的软件,还支持负载均衡等,并提供功能强大的Web管理界面和API。  
2)  优秀性能:除了快速的启动速度之外,EC2还提供了各种配置强大的套餐让用户随意地选择。  
  3 安全性高:EC2提供多种安全机制来确保用户能安全地使用其提供的实例。  
 4  多地点:允许用户在多个地点之间进行选择,来提升应用的用户体验。  
  5 初期投入低:无需高昂的前期投入,用户只需按照所使用的时间付费。  
  6 扩展方便:能同时轻松地部署多个新的实例来满足突发请求。  

  Amazon EC2是世界上最大的Xen集群,其应该也是世界上最大的虚拟机集群。整个Xen集群都是基于Redhat Linux,也意味着Dom0Redhat Linux,具体Xen的版本号未知,应该是3.0左右,但为了让Xen更好地适应EC2的整体设计,Amazon的团队肯定已经做了很多定制化工作。在虚拟化方式上,基本以Xen的半虚拟化方式为主,但是最近一段时间,为了支持闭源的Windows系统和利用HVM技术在计算密集型应用上的优势,所以Amazon已经开始试着引入XenHVM技术,其中最明显的例子,莫过于,EC2最新推出的用于HPC应用的集群计算(Cluster Compute)实例就是基于HVM技术。
  AMIAmazon Machine Images) 简单的来说,AMI可以被认为是Xen虚拟机的镜像(Image),在镜像里面包含了操作系统和一些软件,比如,ApacheMySQL等。用户在创建实例的时候,需要为这个实例选定一个AMI,在这个实例启动的时候,其会通过读写这个AMI来启动操作系统。AMI也可以被认为是一个虚拟器件,但和标准的虚拟器件不同的是,其并不是基于OVF协议,而是基于Amazon EC2自己的一套规范来进行配置和调整,比如,关于SSH认证的设定等。
  根据性质的不同,AMI主要可分为三种: 

 1) 私有的:用户个人创建的AMI,在默认情况下是设为私有的,但可以授权其他用户来使用这个AMI。  
 2) 公共的:用户创建并发布到 Amazon Web Services 社区的AMI,任何用户都可以使用这个AMI来启动实例。  
 3) 付费的:开发者可以创建提供独特功能的AMI,如果其他用户想使用这个AMI,需要按照使用的时间来向开发者。  
  现在开发人员或者用户主要使用名为Amazon EC2 AMI Tools的工具来创建AMI,当AMI创建成功之后,需要将这个AMI上传至S3中,并将这个AMI注册至EC2中。
  现有的AMI支持的操作系统有:Red Hat Enterprise LinuxWindows Server 2003/2008OpenSolarisopenSUSE LinuxUbuntu Linux等。
  现有的AMI所支持的软件更是数不胜数,比如,在数据库方面有:IBM DB2、微软 SQL Server 2005Oracle数据库11gMySQL等,在批处理方面有HadoopCondorOpen MPI等,在应用服务器方面有:IBMWebSphereOracleWebLogic等,当然还支持许许多多的开源软件,比如ApacheNginxRuby on Rails等。
  实例
  在部署AMI的时候,系统会首先会在一个Xen主机上创建一个虚拟机,并将这个AMI作为这个虚拟机的系统盘,在创建成功之后,系统会在这个Xen主机上启动这个虚拟机,在EC2中,这个虚拟机被称为实例,其所消耗资源的大小和平台的规格(32位或64位)取决于用户所选择实例的类型。用户还可以使用CloudWatch等方式来检测实例的运行。
  为了满足不同用户的需要,EC2有四大类的实例可供用户选择: 标准实例,这类实例适合大多数应用,共分小型,大,超大这三款:小的那款的配置为1.7GB内存、1EC2计算单位*160GB的本地存储、32位平台和中等的I/O性能,起始价格为每小时0.085美元;大的那款的配置为7.5GB内存、4EC2计算单位、850GB的本地存储、64 位平台和高 I/O 性能,每小时为0.34美元;超大的那款的配置为15GB内存、8EC2计算单位、1690GB的本地存储、64 位平台和高 I/O 性能,每小时为0.68美元。  
  高内存实例,适合那些对内存非常依赖的应用,比如数据库和Memcache等应用,在配置上,它的起始内存是标准实例的10倍,也就是17GB,其它配置也比标准实例也有一定的提高,当然在价格方面也贵很多,起始价格为0.50美元每小时。  
  高CPU实例,适合那些计算密集型的应用,在配置上,其起始的CPU5EC2计算单位,由于其在其它配置方面和标准实例非常接近,所以其初始价格只是标准实例的一倍,也就是每小时0.17美元。  
  集群计算实例,这种实例有极强的CPU10G以太网的支持,从而能非常好的支持HPC应用,并采用了HVM虚拟化技术以更好地支持计算密集型的应用。  
  注:一个EC2 计算单位 (ECU) 相当于一个1.0-1.2GHz 2007 Opteron 或 2007 Intel Xeon 处理器的处理能力。
  虽然用户只需按实际使用的量付费,但是如果长期使用的话,价格并不是特别经济,就那最便宜的小型标准实例为例,其每月最少需要61美元的开支,所以Amazon推出了预订机制(Reserved Instances),来帮助长期租用EC2的用户节省投入,通过使用预订机制,能够节省大约30%的支出,但预订机制需要用户和Amazon签署一年或者三年的长约。
  在硬件方面,每台EC2服务器的成本范围在2千至2.5千美元之间,现在使用的是Rackable的服务器,大部分是2U的双处理器系统,共有8个内核,每台服务器装有8500GB SATA硬盘。每个机柜会装有1618个这种2U机箱。
  存储
  在存储方面,EC2主要使用两类存储: 1) 本地存储  2) EBS
  本地存储是实例自带的硬盘空间,但它并不是持久的的,也就是说当这个实例被关闭了,它附带的硬盘空间也会随之清空,所以需要对放置在本地存储上的重要数据进行备份。在实现机制方面,根据一些用户的观察,本地存储通过使用LVMLogical Volume Manager,逻辑卷管理)技术来方便本地存储的管理和分配,并可能使用Raid 0技术来提升其的运行速度。
  由于本地存储是易失的,所以EC2为了满足用户对持久存储的需要,EC2推出EBSElastic Block Store),它不仅是持久的,而且在性能上也优于本地存储。与本地存储不同的是,EBS并不与实例绑定,而是与用户的帐号绑定,一个账户能创建最多20 EBS卷(Volume),可以把卷作为块级设备加载到正在运行的一个实例。重要的文件和数据,都应该将它们存储在EBS卷上,但要注意,在任何时候每个EBS 卷只能连接到一个实例,可以一个实例可以同时连接任意数量的卷,并且实例和卷需要在同一个可用区。在实现方面,EBS采用了类似SAN的技术,其中iSCSI的可能性最大,因为当实例的本地网络发生拥挤的时候,它的EBS性能也会随之下降。EBS还提供非常有用的快照(Snapshot)功能,每个快照代表一个卷在一个特定时间点的状态,快照主要可用于恢复,或者用于创建一个新卷。  安全方面
  在安全方面,EC2主要提供三类机制来确保安全: 安全组(Security Group):在 EC2 环境中启动的实例都属于某一个安全组。每个安全组定义自己的防火墙规则,为在组中运行的实例指定访问限制。可以根据 IP 地址或无类域间路由 (CIDR) 规则授予或限制访问权,CIDR 规则允许指定端口范围和传输协议。  
  密钥对(Key Pairs):安全密钥对是在启动实例时指定的公共/私有 SSH 密钥对,必须提供安全密钥对,才能登录启动的实例的控制台。EC2 把密钥对的公共部分添加到启动的实例中,然后用户可以使用私有密钥通过SSH/Putty来登录实例,并无需输入密码。  
  访问密钥(Access Key)和X.509证书:这两个机制主要用于API的调用。访问密钥主要用于REST API的调用,基于对称密钥加密(Symmetric Key Cryptography)的算法,主要有两部分组成:其一是访问密钥ID,其二是秘密访问密钥(Secret Access Key),在创建一个API请求的时候,工具会通过秘密访问密钥来生成一个电子签名(Digital Signature),并将这个电子签名和访问密钥ID一并加入到请求中,之后,EC2在处理这个请求时,它会用传过来的访问密钥ID来查找对应的秘密访问密钥,接着用找到的那个秘密访问密钥来对那个电子证书进行确保,以确保对方的合法性。X.509证书则主要用于SOAP API的调用,基于公开密钥加密(Public Key Cryptography)的算法,X.509证书也主要有两部分组成,其一是X.509证书,其二是私钥,在创建一个API请求的时候,工具会通过私钥来创建一个电子签名,并这个电子签名和X5.09证书一并加入到请求中,之后,EC2在处理这个请求时,会使用电子证书中的公钥来对那个电子签名进行解密,来确认发送者的合法性,同时也对这个电子证书进行检查。  
  可用区(Availability zones
  与单纯以地点划分不同数据中心的做法不同的是,Amazon为了更好的稳定性,引入了区域(Zone)这个概念,并有两种区域:其一是地理(Region)区域,其是按照实际位置划分的,比如有,美国西海岸区域和美国东海岸区域;其二是可用性(Availability)区域,每个可用区采取隔离措施,从而避免一个可用区中的故障影响其他可用区。从EC2的全区而言,其共有多个地理区域,而一个地理区域内会包括多个可用性区域,所以就算将一组实例部署到同一个地理区域,也要将它们拆分到不同的可用性区域以避免全部宕机的危险,Amazon也会根据当前的系统健康状态和能力自动为用户选择可用区。
  网络方面
  在网络方面,一个实例会有三类IP地址:公共IP地址、私有IP地址和弹性(ElasticIP地址。一个普通的EC2实例在创建的时候会自带两个IP地址,公共IP地址和私有IP地址,公共IP地址由EC2分配的,而且私有IP地址则通过EC2内部的DHCP服务分配,并且他们两个地址通过NATNetwork Address Translation,网络地址转换)技术来进行相互之间的转换,实例通过公共IP地址来与外部通信,而使用私有IP地址来与其它EC2实例进行内部通信,并且与其它实例之间的内部通信是免费的。由于实例的每次启动,都会导致其公共IP地址出现变化,而且需要一定时间才能更新IP地址和DNS之间的映射关系,所以EC2还提供弹性IP地址,与其它两个地址不同的是,其并不与实例绑定,而是与用户的帐号进行绑定,通过将一个弹性IP地址和一个实例进行绑定,那么就算实例失效了,用户也能将这个弹性IP地址映射到另一个实例,来保证用户不会受到服务中断的影响。


Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐