这几天Nasuni公司出了一份报告,分析了各个云厂商的云存储的性能,包括Amazon S3,Azure Blob Storage, Google Drive, HP以及Rackspace。其中性能上Azure排名第一,在各种大小的文件读写上性能都很优秀,有兴趣可以参考他们完整的白皮书:http://www6.nasuni.com/the-state-of-cloud-storage-in-2013-nasuni-industry-report.html
今天我们来看一下Azure Blob Storage和Amazon Simple Storage Service的一些功能和指标上的不同。
Amazon Simple Storage Service (S3)是Amazon的王牌存储服务,提供了强大的可扩展性,高可用性和灾难恢复。它主要提供以下功能:
1, 读,写,删除数据对象,从1个字节到5TB都可以,数据对象数量没有限制。
2, 每个数据对象被放在一个数据块(bucket)中,通过唯一的密钥访问。
3, 数据块存储在亚马逊不同的区域。
4, 存储在某个区域的数据永远不会离开这个区域。
5, 身份验证机制旨在确保数据安全,以防未授权访问。数据对象可以设置为私有或公有,也可以向特定用户授予权限。
6, 另外还提供了安全数据上传/下载及静态数据加密的选项以便进一步保护数据。
7, 使用基于标准的 REST 和 SOAP 接口,它们可与任何 Internet 开发工具包搭配使用。
8, 默认的下载协议是 HTTP。提供 BitTorrent™ 协议接口,以便降低大规模分配的成本。
9, 相关的管理功能,包括按数据块分割数据,监视和控制成本,以及使用去冗余存储(Reduced Redundancy Storage)等等。
基本上,Amazon的存储在特定年度内为数据提供 99.999999999% 的持久性和 99.99% 的可用性,能够承受2个设施的数据同时丢失。当然如果使用RDS,那么在特定年度内为数据提供 99.99% 的持久性和 99.99% 的可用性。这种持久性水平对应的平均年数据损失率预计为 0.01%。
S3一个比较有意思的功能是静态网站托管,甚至可以做一些简单的Redirect,S3由于价格便宜,特别适合托管包含静态内容(包括 html 文件、图片、视频以及 JavaScript 等客户端脚本)的网站。
此外,S3还支持一个叫DevPay的功能,支持开发者通过Amazon向客户存储在他们S3账户里的数据进行收费。
存储的价格通过三方面,存储,请求和数据传输,对于不同机房有所不同,这里我们复制了美国机房的价格:
标准存储 |
降低冗余存储 |
|
第一个 1 TB/月 |
$0.095 每 GB USD |
$0.076 每 GB USD |
下一个 49 TB/月 |
$0.080 每 GB USD |
$0.064 每 GB USD |
下一个 450 TB/月 |
$0.070 每 GB USD |
$0.056 每 GB USD |
下一个 500 TB/月 |
$0.065 每 GB USD |
$0.052 每 GB USD |
下一个 4000 TB/月 |
$0.060 每 GB USD |
$0.048 每 GB USD |
5000 TB 以上/月 |
$0.055 每 GB USD |
$0.037 每 GB USD |
定价 |
|
PUT、COPY、POST 或 LIST 请求 |
$0.01 每1,000 个请求 |
删除请求 |
免费 |
GET 及所有其他请求 |
$0.01 每 10,000 个请求 |
|
定价 |
传入Amazon S3的数据 |
|
所有传入数据 |
免费 |
传出Amazon S3的数据到 |
|
到北弗吉尼亚区域的EC2服务器 |
免费 |
其他AWS区域或者Amazon CloudFront |
$0.020 每 GB USD |
传出Amazon S3的数据到互联网 |
|
第一个 1 GB/月 |
$0.000 每 GB USD |
最多 10 TB/月 |
$0.120 每 GB USD |
下一个 40 TB/月 |
$0.090 每 GB USD |
下一个 100 TB/月 |
$0.070 每 GB USD |
下一个 350 TB/月 |
$0.050 每 GB USD |
下一个 524 TB/月 |
|
下一个 4 PB/月 |
|
大于 5 PB/月 |
此外,Amazon还提供更便宜的备份存储服务,成为Amazon Glacier,这个已经超出了这一篇的范围。以后我们可以专门讨论一下。
Amazon S3提供了完整的REST API,可以从任何代码进行操作,此外对Bucket也提供了大量的安全性策略,可以对不同的各种操作进行允许和禁止等等。
Azure的Blob Storage是用于存储大量非结构化文本或二进制数据(如视频、音频和图像)的最简单方式,功能上和S3大同小异。主要提供如下功能:
1, 读,写,删除数据对象,从1个字节到1TB都可以,数据对象数量没有限制。
2, 每个数据对象被放在一个容器(Container)中,通过两个互相备份的密钥访问。
3, 存储在不同的区域。
4, 存储在某个区域的数据,如果使用地理冗余存储,会从欧洲备份到美洲。
5, 身份验证机制旨在确保数据安全,以防未授权访问。数据对象可以设置为私有或公有,也可以向特定用户授予权限。
6, 使用基于标准的 REST 和 SOAP 接口,它们可与任何 Internet 开发工具包搭配使用。
7, 默认的下载协议是 HTTP。
8, 相关的管理功能,包括通过容器分割数据,监视存储账户。
9, Blob的对象可以被安装为驱动器
我在Azure的文档中没有找到关于持久性百分比,或许微软认为这些数据只要进了Azure,就肯定不会丢失,也没有必要提供那么多9了。
在Azure中,存储被分为本地冗余存储和地理冗余存储。本地冗余存储 (LRS)是在单个子区域内提供高度持久且高度可用的存储。地理冗余存储 (GRS)是通过将您的数据另外存储在同一区域内的另一个子区域中来提供最高级别的持久性。默认情况下,存储帐户设置为地理冗余。如果客户不需要这一额外级别的持久性,则可以关闭其存储帐户中默认的地理冗余设置。
对于不同的存储方式,价格也有所不同:
存储费用按照根据下表选择的冗余级别的分级费率来计算。
存储容量 |
地理冗余 |
本地冗余 |
前 1 TB / 月 |
每 GB $0.0950 |
每 GB $0.0701 |
后 49 TB / 月 |
每 GB $0.0800 |
每 GB $0.0650 |
后 450 TB / 月 |
每 GB $0.0701 |
每 GB $0.0600 |
后 500 TB / 月 |
每 GB $0.0650 |
每 GB $0.0550 |
后 4,000 TB / 月 |
每 GB $0.0600 |
每 GB $0.0450 |
后 4,000 TB / 月 |
每 GB $0.0550 |
每 GB $0.0370 |
超过 9,000 TB / 月 |
定价 |
|
所有请求 |
$0.01每 100,000 个请求 |
所有传入Azure数据中心的数据都是免费的,而传出到Internet或其他区域的数据的美国价格如下:
出站数据传输 |
区域1价格 |
区域2价格 |
前 10 TB / 月* |
每 GB$0.12 |
每 GB$0.19 |
后 40 TB / 月 |
每 GB $0.09 |
每 GB $0.15 |
后 100 TB / 月 |
每 GB $0.0701 |
每 GB $0.13 |
后 350 TB / 月 |
每 GB $0.05 |
每 GB $0.12 |
大于 500 TB / 月 |
其中区域1包括了欧洲和美洲,区域2包括了亚洲。
在功能上, S3的功能比Azure要略强大一些,参见下表:
|
Azure |
S3 |
最大文件大小 |
1TB |
5TB |
文件数量 |
没有限制 |
没有限制 |
最大账户大小 |
100TB |
不确定 |
Page Blob |
支持,用于VHD |
不支持 |
存储对象容器 |
Container |
Bucket |
支持协议 |
HTTP/HTTPS |
HTTP/BitTorrent |
访问控制 |
支持权限,各种策略 |
支持权限,各种策略 |
REST API |
支持 |
支持 |
托管静态网站 |
不支持 |
支持重定向,索引,错误页面等 |
地理冗余备份 |
支持 |
不支持 |
降低冗余备份 |
不支持 |
支持 |
开发者支付 |
不支持 |
支持 |
直接大量数据导入导出 |
不支持 |
支持 |
自动删除 |
不支持 |
支持 |
服务器端加密 |
不支持 |
支持 |
客户端加密 |
支持 |
支持 |
价格上,两者定价模型稍微有点不同,不过价格上Azure稍微便宜些,下面同是美国的价格比较。
|
|
Amazon S3 |
Azure Blob Storage |
||
存储价格 |
|
标准存储 |
降低冗余存储 |
地理冗余 |
本地冗余 |
第一个1TB/月 |
$0.095/GB |
$0.076/GB |
$0.0950/GB |
$0.0701/GB |
|
下一个49TB/月 |
$0.080/GB |
$0.064/GB |
$0.0800/GB |
$0.0650/GB |
|
下一个450TB/月 |
$0.070/GB |
$0.056/GB |
$0.0701/GB |
$0.0600/GB |
|
下一个500TB/月 |
$0.065/GB |
$0.052/GB |
$0.0650/GB |
$0.0550/GB |
|
下一个4000TB/月 |
$0.060/GB |
$0.048/GB |
$0.0600/GB |
$0.0450/GB |
|
下一个4000TB/月 |
$0.055/GB |
$0.037/GB |
$0.0550/GB |
$0.0370/GB |
|
9000TB以上/月 |
$0.055/GB |
$0.037/GB |
|||
请求价格 |
|
请求 |
请求 |
||
PUT/COPY/POST/LIST |
$0.01 每1,000 个请求 |
$0.01每 100,000 个请求 |
|||
删除请求 |
免费 |
$0.01每 100,000 个请求 |
|||
GET 及所有其他请求 |
$0.01 每 10,000 个请求 |
$0.01每 100,000 个请求 |
|||
流量价格 |
|
欧美价格 |
亚洲价格 |
欧美价格 |
亚洲价格 |
第一个1GB/月 |
免费 |
免费 |
暂时免费 |
暂时免费 |
|
后4GB/月 |
$0.120/GB |
$0.201/GB |
暂时免费 |
暂时免费 |
|
最多 10 TB/月 |
$0.120/GB |
$0.201/GB |
$0.120/GB |
$0.19/GB |
|
下一个 40TB/月 |
$0.090/GB |
$0.158/GB |
$0.090/GB |
$0.150/GB |
|
下一个100TB/月 |
$0.070/GB |
$0.137/GB |
$0.0701/GB |
$0.130/GB |
|
下一个350TB/月 |
$0.050/GB |
$0.127/GB |
$0.050/GB |
$0.120/GB |
|
下一个524TB/月 |
我们可以看出,在存储价格上,S3和Azure的标准存储和地理冗余存储价格基本一致,而Azure的本地冗余价格还要比降低冗余存储更便宜。对请求来说,S3区分了不同的请求而出现不同的价格,而Azure统一了所有的请求,但是价格非常便宜。十万个请求才一美分,几乎可以忽略。对于流量而言,微软的前5G流量免费,而S3的前1G流量免费。其他的价格,欧美的价格基本一样,而亚洲价格微软比较有竞争力。