首页 > 其他随笔 > 微软Azure平台的计费模型

微软Azure平台的计费模型

其他随笔

微软的Azure平台在今年也就是2010年开始投入商用,很多公司也在尝试着基于Azure平台开发或者移植自己的应用程序到云平台上。在这过程中,计费是大家非常关注的一个问题,毕竟涉及到钱的问题。微软官方Portal上面列出了Azure平台各类服务的收费标准,不过很杂乱,也有很多细节不清楚的地方,很多人看了之后还是会比较晕。在这里我会从另一个视角来介绍这些费用,希望对你有所帮助。

Azure平台的计费模型可以分为以下几个方面:

  • 计算费用
  • 存储费用
  • 请求事务费用
  • 连接费用
  • 带宽费用

在开始介绍之前需要说明一下,下面我提到的"Azure平台",是笼统的包括整个云平台提供的所有服务,而当我提到"Windows Azure"的时候,则不包括Sql Azure和AppFabric服务的。

计算费用

在Windows Azure中创建的Hosted Service就是一个计算服务(Compute Service)。每个计算服务提供了两个部署平台插槽,Production和Stage,Production平台通常用于生产环境,对外地址是固定的,在创建Service的时候就已经确定了。而Stage一般用于测试开发,地址随每次部署变更。

一般的开发流程是先将应用程序部署到Stage平台上,测试完毕之后将其切换到Production平台。

但是Production和Stage平台的收费标准没有任何区别

每个计算服务由若干个角色(Role)组成,每个角色由若干个计算实例(Compute Instance)组成。每个计算实例都运行在单独的VM中,我们可以把VM理解为一台单独的机器,它拥有独立的CPU数目,内存以及本地存储。VM有不同规格的配置,依次为Small,medium,large,extralarge,如下表所示。

image

计算服务的计费公式:

使用小时数 * 实例数(也就是VM的数目) * 计费基准(也就是0.12 x 不同规格VM使用的CPU数目)

或者这个公式可能更好理解: 使用小时数 * 使用的CPU总数 * 0.12

这里需要注意两点:

1. 使用小时数是从一部署就开始计算,除非删除应用,否则一直算钱。不足一小时以一小时计算。

2. 实例数包括了Production和Stage两个平台。

存储费用

Azure平台的存储费用包括两个部分,一个是Windows Azure存储,另一个是Sql Azure数据库存储。

Windows Azure提供的存储服务包括Table、Queue和Blob存储。以月作为一个周期,统计一个月内上传的容量,然后平摊到每一天得到平均值。根据这个日平均值来收费。

Windows Azure存储费用为$0.15 /GB

而Sql Azure根据创建的数据库大小不同,收费也不同,和Windows Azure存储服务类似,也是统计每个月创建的数据库总容量,然后平摊到月内每一天,最后按照日平均值收费。

Sql Azure数据库存储费用为$9.99 /GB

以11月份(30天)计费周期为例,你在1号的时候创建了一个10G的数据库,但是只用了15天,接下来的15天你已经删除这个数据库了,那么11月份的日均存储为(10*15+0*15) / 30 = 5G。和你创建一个5G的数据库然后用上整月的收费是一样的。

请求事务(Transaction)费用

向Azure平台服务发起的HTTP请求称为事务(Transaction)。包括以下几个方面:

  • 应用程序访问Windows Azure存储服务(Blob、Table、Queue)
  • CDN节点访问Windows Azure存储服务(Blob、Table、Queue)
  • 应用程序向Access Control访问控制服务(AppFabric的一个组件)发起请求

其中:

应用程序向Windows Azure存储服务发起的事务的费用为$0.01 /10K,即1万次事务0.01美元;

CDN发起的事务为$0.01 /10K

应用程序向Access Control发起的事务为$1.99 /100K

连接收费(Service Bus)

Azure平台的AppFabric提供了两个服务,一个是Access Control访问权限控制,另外一个就是Service Bus。Service Bus允许你将企业内部的应用通过Azure平台发布到互联网上,以便和第三方应用程序通讯。注意,应用程序本身并没有部署到Azure平台,Service Bus只是起一个数据转接的作用。下面是一个简单的示意流程:

企业应用=>企业防火墙=>AppFabric Service Bus服务=>暴露通讯端点

第三方应用程序就通过Azure平台上Service Bus暴露的互联网唯一通讯地址来和企业应用进行通讯。

这个过程会产生一些网络连接,包括第三方应用程序和Service Bus端点之间的连接,以及Service Bus和企业应用程序之间的连接。

Azure会按照一个月内平均的每天最大并发连接数目来进行计费

那么这个每天最大并发连接数怎么计算出来的呢?

Azure每天以5分钟为间隔,统计当前时刻的并发连接数,这样一天下来就可以得到当天的最大并发连接数了。将一个月内每天的最大并发连接数累加起来,再平摊到每一天上就得到当前计费周期的日平均最大并发连接数,按此数值收费。

你可以选择按需计费,也可以选择购买固定最大连接数。这两种资费标准不同。

按需计费,每个连接为$3.99,而购买固定连接数,每个连接只需花费$1.99。Azure提供了5, 25, 100 或者500个连接的这几种套餐。

如果你的网站并发数不确定,那么你可以选择按需支付,这样每天的并发连接数再大也不会有问题(尽管如此,Azure自身还是限制了最大的并发数),只不过你需要多付一些钱而已。但对于那些能够预先估计自己的日最大并发连接数的客户来说,他可以选择购买固定连接数套餐,这样一个月的花费就是确定的了。当然,这样的坏处就是,一旦超过购买的峰值连接数,就无法接受新的连接。

例如某个小型网站,预计每天最大并发数不超过20个连接,那么他可以购买25个连接的套餐,这样一个月就固定花费49.75美元。

带宽费用

一旦数据中心节点内外之间发生任何数据传输,均需要计入带宽费用。包括上面提到的存储请求、事务请求以及与AppFabric服务之间产生的数据交互,都需要计入带宽费用范畴。但是,同一个数据中心内的数据传输不收费。这也是为什么微软建议你尽量把应用都部署在同一个数据中心里头的缘故。

微软的数据中心可以分为主节点和CDN节点,这两种节点的带宽收费标准是不同的。

主节点的计费标准为:

亚洲数据中心 $0.30 in / $0.45 out 每GB

北美欧洲地区 $0.10 in / $0.15 out 每GB

需要注意的是,当用户第一次从CDN节点读取资源的时候,这个时候由于资源尚未缓存到该CDN节点,因此CDN节点需要从主节点获取该资源,这个数据传输也会按照上面的主节点带宽费用标准来计算。

CDN节点只会供用户下载资源,因此没有上行带宽费用。计费标准:

北美以及欧洲地区费用 $0.15 每GB

其他地区 $0.20 每GB

以上是我研究Azure计费模型的结果,写得不对的地方还请你指出。当然,这里头涉及到的具体计费标准未来肯定有所变动,但是基本的计费模型个人感觉应该已经比较完善了。更细节的计费问题以及最新的计费标准,请参考Windows Azure Platform Consumption以及Windows Azure Pricing

——Kevin Yang

本博客遵循CC协议2.5,即署名-非商业性使用-相同方式共享
写作很辛苦,转载请注明作者以及原文链接~
如果你喜欢我的文章,你可以订阅我的博客:-D点击订阅我的文章

  1. | #1

    坦白说,不太懂……针对集团电话的计费还略知

  2. | #2

    根本没看懂。

  3. | #3

    寫的很詳細
    就是完全的使用者付費

    帶寬、儲存、應用服務、資料變更,通通要收錢

  1. 暂时没有trackbacks.