亚马逊 的弹性 计算云亚马逊是互联网上最大的零售商,但是同时也为独立开发人员以及开发商 提供云计算服务平台亚马逊将他们的云计算平台称为弹性计算云(Elastic Compute Cloud,EC2),它是最早提供远程云计算平台服务的公司开放的服务与Google提供的云计算服务不同,Google仅为自己在互联网上的应用提供云 计算平台,独立开发商或者开发人员无法在这个平台上工作,因此只能转而通 过开源的Hadoop软件支持来开发云计算应用亚马逊的弹性计算云服务也和 IBM的云计算服务平台不一样,亚马逊不销售物理的云计算服务平台,没有类 似 于“蓝云”一样的计算平台亚马逊将自己的弹性计算云建立在公司内部的大 规模集群计算的平台之上,而用户可以通过弹性计算云的网络界面去操作在云 计算平台上运行的各个实例(Instance),而付费方式则由用户的使用状况决 定,即用户仅需要为自己所使用的计算平台实例付费,运行结束后计费也随之 结束弹 性计算云从沿革上来看,并不是亚马逊公司推出的第一项这种服务,它由名 为亚马逊网络服务的现有平台发展而来早在2006年3月,亚马逊就发布了简 单存储 服务(Simple Storage Service,S3),这种存储服务按照每个月类似租 金的形式进行服务付费,同时用户还需要为相应的网络流量进行付费。
亚马逊 网络服务平台使用REST (Representational State Transfer)和简单对象访问 协议(SOAP)等标准接口,用户可以通过这些接口访问到相应的存储服务2007年7月,亚马逊公司 推出了简单队列服务(Simple Queue Service,SQS), 这项服务使托管主机可以存储计算机之间发送的消息通过这一项服务,应用 程序编写人员可以在分布式程序之间进行数据传递,而无须考虑消息丢失的问 题通过这种服务方式,即使消息的接收方还没有模块启动也没有关系服务 内部会缓存相应的消息,而一旦有消息接收组件被启动运行,则队列服务将消 息提交给相应的运行模块进行处理同样的,用户必须为这种消息传递服务进行 付费使用,计费的规则与存储计费规则类似,依据消息的个数以及消息传递的 大小进行收费在亚马逊提供上述服务的时候,并没有从头开始开发相应的网络服务组件,而是 对公司已有的平台进行优化和改造,一方面满足了本身网络零售购物应用程序的 需求,另一方面也供外部开发人员使用在开放了上述的服务接口之后,亚马逊公司进一步在此基础上开发了 EC2系统, 并且开放给外部开发人员使用灵活的工作模式 亚马逊的云计算模式沿袭了简单易用的传统,并且建立在亚马逊公司现有的云 计算基础平台之上。
弹性计算云用户使用客户端通过SOAP over HTTPS协议 来实现与亚马逊弹性计算云内部的实例进行交互使用HTTPS协议的原因是为 了保证远端连接的安全性,避免用户数据在传输的过程中造成泄 露因此,从 使用模式上来说,弹性计算云平台为用户或者开发人员提供了一个虚拟的集群 环境,使得用户的应用具有充分的灵活性,同时也减轻了云计算平台拥有 者 (亚马逊公司)的管理负担而弹性计算云中的实例是一些真正在运行中的虚拟机服务器,每一个实例代表 一个运行中的虚拟机对于提供给某一个用户的虚拟机,该用户具有完整的访 问权限,包括针对此虚拟机的管理员用户权限虚拟服务器的收费也是根据虚 拟机的能力进行计算的,因此,实际上用户租用的是虚拟的计算能力,简化了 计费方式在弹性计算云中,提供了三种不同能力的虚拟机实例,具有不同的 收费价格例如,其中默认的也是最小的运行实例是1.7GB的内存,1个EC2 的计算单元(1虚拟的计算核以相关的计算单元),160GB的虚拟机内部存储容 量,是一个32位的计算平台,收费标准为每个小时10美分在当前的蓝计算 平台中,还有两种性能更加强劲的虚拟机实例可供使用,当然价格也更加昂贵 一点。
由于用户在部署网络程序的时候,一般会使用超过一个运行实例,需要很多个 实例共同工作弹性计算云的内部也架设了实例之间的内部网络,使得用户的 应用程序在不同的实例之间可以通信在弹性计算云中的每一个计算实例都具 有一个内部的IP地址,用户程序可以使用内部IP地址进行数据通信,以获得数 据通信的最好性能每一个实例也具有外部的地址,用户可以将分配给自己的 弹性IP地址分配给自己的运行实例,使得建立在弹性计算云上的服务系统能够 为外部提供服务当然,亚马逊公司也对网络上的服务流量计费,计费规则也 按照内部传输以及外部传输进行分开总而言之,亚马逊通过提供弹性计算云,减少了小规模软件开发人员对于集群 系统的维护,并且收费方式相对简单明了,用户使用多少资源,只需要为这一 部分资源付费即可这种付费方式与传统的主机托管模式不同传统的主机托 管模式让用户将主机放入到托管公司,用户一般需要根据最大或者计划的容量 进行付费,而不是根据使用情况进行付费,而且,可能还需要保证服务的可靠 性、可用性等,付出的费用更多,而很多时候,服务并没有进行满额资源使用 而根据亚马逊的模式,用户只需要为实际使用情况付费即可在用户使用模式上,亚马逊的弹性计算云要求用户要创建基于亚马逊规格的服 务器映像(名为亚马逊机器映像即亚马逊Machine Image, AMI)。
弹性计算云 的目标是服务器映像能够拥有用户想要的任何一种操作系统、应用程序、配置、 登录和安全机制,但是当前情况下,它只支持Linux内核通过创建自己的 AMI,或者使用亚马逊预先为用户提供的AMI,用户在完成这一步骤后将AMI 上传到弹性计算云平台,然后调用亚马逊的应用编程接口 (API),对AMI进 行使用与管理AMI实际上就是虚拟机的映像,用户可以使用它们来完成任何 工作,例如运行数据库服务器,构建快速网络下载的平台,提供外部搜索服务 甚至可以出租自己具有特色的AMI而获得收益用户所拥有的多个AMI可以通 过通信而彼此合作,就像当前的集群计算服务平台一样在弹性计算云的将来发展过程中,亚马逊也规划了如何在云计算平台之上帮助 用户开发Web 2.0的应用程序亚马逊认为除了它所依赖的网络零售业务之外, 云计算也是亚马逊公司的核心价值所在可以预见,在将来的发展过程中,亚 马逊必然会在弹性计算云的平台上添加更多的网络服务组件模块,为用户构建 云计算应用提供方便Amazon誤"性计算云图3 亚马逊弹性计算云使用模式。