作者 Craig Wickesser译者 孙涛 发布于 2008年12月11日 上午12时1分
利用Internet将IT能力提供为服务的思想虽然相对来说比较新,但是最近人们对其的关注却达到了高潮。InfoQ也发表了好几篇有关的文章,例如“虚拟化导论”和一篇有关虚拟化安全的文章,但是目前还缺少有关不同云计算提供商之间比较。这篇文章将对三个云计算提供商进行比较,它们都提供服务器为中心的解决方案,首先将分别介绍如何启动三个云计算服务,然后再对三个服务商提供服务的性能、价格和可用性进行比较。
云计算定义
人们接触一项新技术的时候,一开始很容易忽略对最基本层面的理解,后来往往又会回头从新学习这些东西。为了避免陷入这个误区,很有必要先给出一个云计算的简单定义。维基百科的定义是:
“云计算是一种将IT相关能力提供为服务的计算风格。由于利用了互联网技术,云计算外部用户数量一般非常庞大。用户在享受服务的同时甚至可能对支撑云的技术基础设施没有任何了解和专业认知,当然更不需要对其有掌控能力了。
被访资源一般由第三方提供商提供和运作,提供商往往拥有数个基础牢固的数据处理中心。云计算的用户按需购买计算能力,他们一般对完成服务器容量增长的底层技术不是特别关心。不过对于非常关心底层技术的开发人员来说,云计算也在平台服务方面也提供了越来越多的选择。
大体情况便是如此,虽然有些提供商也提供底层控制功能,但是大部分的思路是让云变得尽可能的简单。
应用云计算的原因
个人或者商业团体需要云计算的原因非常多,其中包括:
这些只是云作为可行性选项的一小部分理由,但是有一点是肯定的,选择哪个云服务可不是一件省心的事情。
Amazon EC2
亚马逊官方网站对其服务的描述如下:
“亚马逊弹性计算云(Amazon Elastic Compute Cloud, EC2)是一项在云里提供可变大小计算能力的web服务。设计此云是为了使开发人员进行Web范围内的计算更容易。
Amazon EC2的Web服务接口非常简单,您不费多大力气就能取得和配置计算能力。您将能对计算资源做到完全的控制,并使其运行在亚马逊久经考验的计算环境中。获得和启动Amazon EC2新服务器实例需要的时间已经减少到数分钟内,并且在计算容量发生变化时,不管是变大还是变小,您都能快速进行计算能力的调整。Amazon EC2改变了计算经济学,使您能对计算能力进行按需支付。开发人员可以利用Amazon EC2构造拥有灾难恢复能力的应用,并且使其免除诸多常见灾难的困扰。
亚马逊建议在运用Amazon EC2时候,首先建立Linux环境,熟悉Web服务,安装SSH客户端和Java 5(或者更新的版本)。在以下这段简要介绍的最后,会给出一个Amazon EC2的文档链接,此文档中对此有详细的指导步骤。
首先,你必须建立三个有关的亚马逊账户,它们分别是Amazon Web Services(AWS)账户,Amazon Simple Storage Service(Amazon S3)账户和Amazon EC2账户。不过在你建立好AWS账户后,其他两个账户的建立只需点击几次鼠标即可。
账户建立后,接下来就是设置命令行工具。你可以用Amazon EC2提供的命令行工具或者API来管理你的云。命令行工具被打包成zip文件(点击下载),解压后就可以直接使用,不过之前还必须设置好几个环境变量(EC2_HOME、EC2_PRIVATE_KEY和EC2_CERT)。
安装和配置完成后,下一步工作就是启动Amazon Machine Image(AMI)。你可以利用命令行创建你自己的映像,也可以看到Amazon公开的一些映像。当选定一个映像以后,需要生成一个SSH keypair用以登录此映像实例。如果你使用的是PuTTY,还需要将个人密钥转换成PuTTY的格式,具体的做法可以到这里找到。
启动映像的命令是“ec2-run-instances”,随后映像将进入“运行”状态,状态检查可以用“ec2-describe- instances”命令。在访问映像前,请确保需要的端口都已经打开。为了使用SSH和HTTP,可以用“ec2-authorize”工具分别打开 22和80端口。
只要在浏览器中访问站点的网址即可(地址会在“ec2-run-instances”命令执行后给出,例如:ec2-67-202-51-223.compute-1.amazonaws.com)即可验证操作是否正确。基本的安装和设置完成后,你就可以进行内容部署,从而顺利地使用你的新云了。
大量更细节的指导信息请参见Amazon EC2技术文档站点。下面我们将接着介绍GoGrid的安装和设置方法。
GoGrid
GoGrid宣称其是唯一一个提供真正控制功能的云服务商。他们提供多服务器控制面板,通过此面板可以在数分钟内对需要负载平衡的云服务器进行部署和管理。服务的启动比Amazon EC2简单,时间上自然也节省不少。在GoGrid的站点上注册一个账户,数分钟后接收到确认邮件,然后就可以开始服务器设置了。
用你的帐户登录后是首先会进入一个简单的用户首页,点击其中的“Add”按钮会出现几个选项(见下图):
根据所需的web服务器的类型,点击相关按钮,将出现的一个新的窗口,在其中输入必要参数:
首先为你的服务器选择一个名字和描述,这里名字和描述分别是“simple”和“a simple web server”。随后选择一个IP地址,其显示在屏幕左侧,当在IP输入框输入时会有自动的提示。IP地址由GoGrid提供,并且与实体机器绑定。另外你还可以选择RAM大小(512MB、1GB、 2GB),操作系统(CentOS、Red Hat、Windows 2003 Server)和映像类型(Apache、LAMP、IIS)。
配置完成后,您就可以立即访问此服务器了。打开浏览器,输入选定的IP地址,一个确认信息就会出现在屏幕上。
网络相关的事务都是由GoGrid负责完成的,但是它也允许用户另加IP地址和配置DNS信息,例如你拥有自己的域名的时候,就可以配置这个域名指向你的GoGird服务器。
添加负载平衡和数据库也非常简单,几个点击加上些简单的配置,一分钟内就建立好可以运行了。另加服务器可以通过Web界面(见上图)或者GoGrid的 API完成。此API是一个REST风格的Web服务API,Java、PHP、Python和Ruby都可以对其进行调用,此API提供了通过Web界面可以完成的所有功能。
下面我们将讲到的是Mosso,它是一项由Rackspace提供的云服务。
Mosso
Mosso另辟蹊径,它将云计算的思想与Web接入中心通常会提供的独享/共享服务器环境结合起来。Mosso并没有提供服务器的root访问,而是为服务器安装了操作系统并预装软件,这一点上和一个标准的Web接入中心没什么区别。这使得Mosso按需对其服务进行监控和调节非常容易,终端客户也不用再为操作系统、设备和负载平衡等事务操心。
启动服务的第一步仍然是在Mosso网站注册一个账户,然后接收确认邮件。登录成功后,首先来到控制面板页面。
Mosso的一个目标是尽可能做到简化,只用几下点击就能运转,这一点跟GoGrid类似。要建立起一个互联网站点,并且让其指向某个已存在的或者刚刚注册的域名,你只需点击“Websites & Email”按钮即可。
配置页面可以进行一些基本的操作,其中包括一些数据库的操作和Web服务器的操作。
Mosso的服务指南写得也非常简单直接,简单的几个点击就会出现简要的报价介绍,让你能明确所需。初始配置完成后就能利用FTP的方式来上传站点内容了。在控制面板中很方便就能进行加入SSL认证、修改用户帐户和email设定、更改底层使用的技术(即可从Linux/Apache改为Ruby on Rails)、查看站点统计数字等等操作。
在完成对Amazon EC2、GoGrid和Mosso的介绍之后,下一节将对三者提供的服务进行比较。
功能
Amazon EC2 | GoGrid | Mosso | |
Windows Support | Yes (see Qemu) | Yes | Yes |
Linux Support | Yes | Yes | Yes |
Open Solaris Support | Yes | No | No |
Graphical User Interface | No | Yes | Yes |
Command Line | Yes | No | No |
API | Yes | Yes | No |
Root Access | Yes | Yes | No |
SSH | Yes | Yes | No |
FTP | Yes | Yes | Yes |
Hardware Configurable | Yes | Yes | No |
到目前为止只有亚马逊允许在服务中部署客户自己提供的系统映像。亚马逊官方站提供了如何部署Open Solaris映像的相关信息,其他一些网站还有文章介绍如何部署Windows Server 2003映像。GoGrid未来也打算提供生成各式服务器映像的功能,理论上意味着其服务将能支持多种操作系统。
这三个服务商都提供了FTP访问支持,其中Mosso没有完全的根访问权限。Mosso也是唯一一个没有提供硬件配置能力的服务商,虽然其是有意这么设计的。
价格
Amazon EC2
价格由三个方面因素决定,包括实例类型(标准 vs High-CPU)、数据传送和弹性IP地址。
一个标准的实例的价格从每小时$0.10 到$0.80不等,High-CPU则为$0.20 - $0.80。数据传送的价格根据数据来源和去向的不同(因特网、可用区域(Availability Zone)和Regional等),价格从$0.00到$0.17。
最后是IP地址,它的价格范围是从免费到每个弹性IP地址重映射$0.10,这要看IP地址在整个月是怎样用了。
GoGrid
GoGrid根据服务器的RAM使用小时数(Server RAM Hour,)、传入数据量和传出数据量三个因素定价。价格策略非常简单,每个服务器RAM每小时0.19美元,传出数据量价格是每GB 0.50美元,传入数据量免费。
Mosso
Mosso提供标准收费为100美元每月,包括:
对每月访问人数大约在100,000左右的大型应用,Mosso根据规模有一套增量价格策略。对于增加部分,硬盘空间为每GB 0.50美元,带宽为每GB 0.20美元,每个计算周期为0.01美元。
可用性
三个服务商中只有Mosso进入了“产品”阶段。Amazon EC2 和GoGrid 的服务还处于“Beta”状态,虽然它们的应用范围和成熟度增长很快。
随着云计算的流行,一夜间也出现了许多云计算提供商。服务商的选择并非易事,因为每个提供商都有提供有独特的功能、定价策略、灵活性和控制措施。这篇文章首先对Amazon EC2、GoGrid和Mosso的服务做了简要介绍,然后要对此三个服务商服务的功能、定价和可用性等方面做了比较。更多详细的信息可以访问以下链接:
阅读英文原文:Comparing the Cloud: EC2, Mosso, and GoGrid。