(一篇博文分两段发,系统限制请原谅)
在讨论云计算成本构成之前,首先通过Amazon EC2的计费项目,分析典型的IaaS云计算的成本构成 [2]。
· 计算实例的费用
首要的计费对象是按需使用的计算实例,即服务器资源。这本来是需要花费巨大的IT资源,通过实例可以灵活的按需支付的方式进行计费。计算实例的费用包括了绑定的操作系统的费用,即硬件+操作系统的价格,如表1,计费方式从实例建立到终止进行全时计费。
Standard On-Demand Instances |
Linux/UNIX Usage |
Windows Usage |
Small (Default) |
$0.10 per hour |
$0.125 per hour |
Large |
$0.40 per hour |
$0.50 per hour |
Extra Large |
$0.80 per hour |
$1.00 per hour |
High CPU On-Demand Instances |
Linux/UNIX Usage |
Windows Usage |
Medium |
$0.20 per hour |
$0.30 per hour |
Extra Large |
$0.80 per hour |
$1.20 per hour |
|
表1 计算实例的计费
EC2同时提供另一种计费方式,即包租实例,同样的计算实例,预付一定的包租费用,之后按照每实际工作小时进行计费,费用远低于上一种租用模式,如表2。
Linux/UNIX |
One-time Fee |
|
Standard Reserved Instances |
1 yr Term |
3 yr Term |
Usage |
Small (Default) |
$227.50 |
$350 |
$0.03 per hour |
Large |
$910 |
$1400 |
$0.12 per hour |
Extra Large |
$1820 |
$2800 |
$0.24 per hour |
High CPU Reserved Instances |
1 yr Term |
3 yr Term |
Usage |
Medium |
$455 |
$700 |
$0.06 per hour |
Extra Large |
$1820 |
$2800 |
$0.24 per hour |
|
表2 计算实例的包租计费
· 数据传输的费用
对于通过Internet网络传输的数据,数据的上载“in”和下载“out”分别进行计费,如表3。
Data Transfer In |
|
All Data Transfer |
$0.10 per GB |
Data Transfer Out |
|
First 10 TB per Month |
$0.17 per GB |
Next 40 TB per Month |
$0.13 per GB |
Next 100TB per Month |
$0.11 per GB |
Over 150 TB per Month |
$0.10 per GB |
表3 数据上载/下载计费
同一地区内部(如欧洲或者北美)的两个AWS(Amazon Web Service)之间的数据传输不进行计费,跨地区,如欧洲和北美之间,则进行双向Internet传输计费。此外,Amazon还定义了有效区域(Availability Zone)的概念,有效区域内部的数据传输不计费,相同地区的不同有效区域之间的数据传输则按照每GB $0.01对上载和下载数据进行计费。如果使用用户自己的公开或者弹性 IP地址,或者在EC2网络内部使用弹性负载均衡,则也需要按照跨地区方式计费,无论是否运行于有效区域内,为了解决这个问题,如果有可能,有效区域内部的数据传输可以采用私有IP。
· 存储的费用——Amazon Elastic Block Store
如果需要额外的数据存储,可以采用EBS,计费标准为每月每GB数据$0.10,以及每1M(百万次)I/O请求$0.10。
· 弹性IP地址的费用——Elastic IP Addresses
正在使用的弹性IP地址不计费。未使用的IP地址每小时$0.01。每个月的头100次IP的Remap不计费,额外的Remap每次$0.10。
· 系统监测的费用——Amazon CloudWatch
EC2系统监测的费用是每实例小时$0.015。
· 弹性负载均衡的费用
每个弹性负载均衡工作小时计费$0.025。通过弹性负载均衡处理的每GB数据计费$0.008。
从上面Amazon EC2计费情况可以看出,计算实例的费用,以及数据传输的费用是云计算费用或者说成本的最主要也是最基础的部分。计算资源的费用主要涉及到硬件设备,如服务器,以及与之相关的散热成本。数据传输的成本主要是需要分担带宽的成本。可见,计算资源和带宽是最核心的组成部分。
计算实例本身附带了存储空间,但是用户仍然有可能需要更多的存储空间,或者用户的主要需求就是存储空间,因此就会涉及到Amazon S3的使用,在EC2中提供简单的存储云服务,EBS,来提升EC2的弹性。
此外,IP资源也可以作为收费项目。EC2还提供增值服务,例如系统监测和负载均衡,这些高附加值的服务,一方面提升了云计算平台的服务质量,另一方面提升了云运营商的利润空间。
三、 带宽与硬件的均衡对成本的影响
根据在该文前面部分的论述,云计算的三个必要条件是网络带宽、大规模硬件资源以及成本。网络带宽和大规模的硬件资源会反映到成本上,本小节将分析论述通过带宽与硬件资源的性能均衡,来节省成本的必要性。
以典型的Web访问类型的云计算为例,影响云中Web类应用用户体验的因素,也是衡量Web效用的因素,包括:
o 用户连接数
o 响应时间
o 页面平均大小
而限制云计算平台服务能力的主要因素包括:
o 计算能力(CPU)
o 网络能力(带宽)
o 如果是存储服务器,还包括存储能力(容量,速度)
网页理论平均最大处理量:平均页面大小300KB(2008年数据[22]),网页平均载入时间2.8秒,1000Mbps网口,则可以得到平均每秒9000个点击。
o (1000Mbps/8bit)*2.8s/300KB≈9000次/s
在上面的举例情况中,从单台服务器的角度,如果达到网络流量的峰值,设典型的业务逻辑中,300K的页面处理需要CPU指令1MOps条,可以推算出所需的计算能力为:
o 9000次/s*1Mops=9Gops
则每秒9Gops的处理能力,即可以与网络带宽的峰值相匹配。考虑到CPU占用率不宜超过30%,则9Gops/30%=30Gops的CPU处理能力,可以满足需求。当前的CPU,每个时钟周期平均可以处理4个指令,则1个1.7GHz的四核处理器,即可满足要求。当然,不同的应用对计算资源的要求不同,不同的SLA或者用户需求,对于网络带宽和计算能力的要求也不相同。但是通过上面的计算可知,单纯的提升某种能力,都将面临另一种能力的制约,这将造成投资的浪费。
对于最主要的网络带宽和计算能力这二者来说,达到一个均衡的性能,比单纯的性能提升更为科学。随着用户的增加,以及新业务的加入,保持均衡的性能提升,将有助于提升云计算平台的成本效用。
三、不同SLA对成本的影响
无论云计算资源在哪里提供,对于用户来说,都期望有明确的服务质量保证。服务等级协议(SLA)可以明确指出用户能够对云供应商报有一个什么样的实际的服务质量期望,以及决定和某种服务质量(QoS)相联系的付费模式。
SLA包含了对服务有效性的保障,譬如对故障解决时间、服务超时等的保证。在互联网与云计算领域,可用性和性能的要求更高,响应时间、正常服务时间比率等指标更常被使用。例如,Amazon EC2的SLA承诺每个服务年度的正常运行时间在99.95%以上,没有满足SLA则需要对用户进行赔偿。
SLA中约定的服务质量QoS的主要实现方法是超量部署,也就是提供比平均应用量或者最高应用量还要多的容量。许多资源一般都采用超量部署,如计算机CPU和磁盘空间等。超量部署会带来额外的成本支出。例如前文GFS为了满足存储可靠性的要求,则采用了3份冗余数据,这样,云计算平台的部署规模需要是实际数据规模的3倍。国内一些IaaS运营商,在一定SLA约束下,为了保证用户虚拟机的可靠性,也需要定期对虚拟机快照进行备份,这些都是由于为了满足QoS而带来的额外的成本指出,而这些成本支出最终会由用户支付。当然,如果用户使用自己的数据中心,为了满足QoS的需求,可能需要付出的成本还会更高。
参考文献
[1] GRAY, J. Distributed Computing Economics. Queue 6, 3 (2008), 63–68.
[2] Amazon. Amazon Elastic Compute Cloud (Amazon EC2). 2009. http://aws.amazon.com/ec2/