为云计算服务定价既可能被有效地管理,也可能是场未知的冒险。注意一下Amazon网站对Elastic Compute Cloud的定价,你会发现在标准实例和高性能CPU、预留、按需和现货实例之间一长列的选项。最好还是让技术专家弄清楚这些选项间的差异吧。作为CTO如何才能准确地选择EC2服务,以及如何一次性从冗长的选项中制定出经济灵活的账单呢?
第一个要问的就是什么类型的计算要跑在Amazon EC2上。这里有三种通用类型,每种都有自己的定价方案。三种中最明显的就是按需实例(On-Demand Instance)。很像你在数据中心看到的典型Windows或Linux服务器,只不过按需实例可以被托管到他处。按需实例最大的不同就是你只需支付所使用的服务器时间(实例资源的使用最大可达限制值)。
举个例子,“小型”Windows实例在100%使用率的情况下每月将花费87.84美元。这样的实例逻辑上等价于配有1.78GB内存和160GB硬盘的单处理器x86服务器。
特别值得一提的是,该价格是假设服务器使用过程满负荷下每月的总花费。服务器很少有全天操作,所以你的实际账单很可能比想象的要便宜的多。
月末87.84美元的支出是对Windows服务器按照每小时0.12美元的标准按需实例收取的。这个值乘以服务器的实际负荷得出每月的费用。注意这点很重要:在不监视数据的情况下,估算每小时使用量是很困难的。工作人员不应该指望在没有测量假设基础前预先估计出数据。
有协助该工作的服务器实例基本监控服务,该服务不产生额外费用。每五分钟收集一次统计数据用来估算费用(但只针对欠款)。可另外付费使用详细监控,此项监控可达每分钟一次。
当可能长时间操作计算资源时,可购买预留实例(Reserved Instances)。这些实例最初按每小时较低使用率的价格一次性交易。举个例子,同样的小型服务器按预留实例购买超过三年其价格是每月36.60美元。这种价格同样是假设服务器全天满负荷工作。这项350美元的选项结果是第一年386.80美元的花费相当于一次性支付了三年的服务。当你需要长期使用云服务时,该选项所节约出的花费将是相当可观的:每小时费用从0.12美元大幅降至0.05美元。
可以想象像EC2这类灵活的系统经常会有低使用时期。Amazon通过现货实例(Spot Instances)价格化这些低使用时期。这种实例可使不需实时访问的负荷在低系统使用时被操作,并按动态方式定价。
现货实例请求按每实例小时最高价格被提交。当请求超过当前现货实例价格,请求被完成,实例会运行直到终止或是现货价格增长超过请求的最高价格。
现货实例不太可能用在在线、单服务器场景中,他们适用于需要过剩性能的分布式系统。这种定价模式使你的业务可以内部决定服务估价,在定价低于估价的前提下通过增加实例弹性扩张服务。
利用现货实例不规则属性的服务很明显需要被重构,但在适当的技术补偿后他们较低的成本优势令他们也成为不错的选择。
另外的服务像IP地址和地址管理和服务器负荷平衡都是不错的,此外还有两款服务值得额外关注。第一个是Amazon Elastic Block Store(EBS),它本质上是基于块的SAN,可使分布式系统操作数据单视图。
Amazon EBS卷对供应存储的定价是每GB每月0.1美元,外加0.1美元的每月每百万次I/O请求。这种定价模型意味着高性能,高使用的存储将会增加存储支出;然而,GB级的增长意味着所供应的存储可以非常接近实际使用的存储。另外可以支付额外费用来使用存储快照。
第二款服务是有关数据在EC2上的传入传出。创建任何新服务或是收集来自现有服务的数据都需要将数据移出EC2系统。这种数据按照每GB定价,数据传入系统为固定价格,数据传出系统为分层定价。在EC2系统内部所有数据的传输是不收费的。要十分注意你所构建系统对于传入传出数据的需求,这种花费是不受虚拟化硬件最大值限制的,可能导致花费的巨额增加。Amazon提供计算器来帮助估算费用;但要注意所有没有验证的断言,例如不适当地减少预计支出。Amazon EC2云服务的定价可能很复杂,但规则是公平的。不要低估了服务器的使用,除非你不想在月末得到一份健康的账单。