随着上云企业越来越多,企业对用云成本问题也越发重视。业务的发展会产生海量存储需求,在云端存储数据时,如何进行成本优化,减轻业务负担呢?
在进行成本优化之前,首先需要了解腾讯云对象存储(Cloud Object Storage,COS)的成本构成。对象存储的计费项主要包括存储容量费用、流量费用、请求费用、数据取回费用和管理功能费用等五大项。
对于大部分企业来说,存储容量费用和流量费用是其云存储成本的主要组成部分。在存储费用方面,腾讯云对象存储服务对外提供了标准存储、低频存储、归档存储、深度归档存储等多种存储类型,各个存储类型的产品规格和价格均存在差异,企业可以根据自己的业务模式选择性价比最匹配的存储类型。在流量费用方面,存在外网下行流量、CDN 回源流量、跨地域复制流量和全球加速流量等流量类型,业务模式的差异会导致流量费用的构成存在差异。例如,某企业的业务主要以电商网站为主,存在大规模图片分发,这类业务的 CDN 回源流量较多,因此消耗的流量费用主要以 CDN 回源流量费用为主。
优化一:选择存储类型和业务地域
根据业务模式选择合适的存储类型和业务地域能够较大幅度地优化企业的存储成本。
对象存储为企业提供了丰富多样的存储类型,企业可以根据对性能、数据持久性、业务可用性的要求选择不同的存储类型,同时花费不同的成本。标准存储的存储费用相对较高,但提供了最低的读取延迟;低频存储、归档存储、深度归档存储这三种存储类型的存储容量费用较低,但是在下载数据时,会额外产生数据取回费用,并且需要消耗较长的取回时间,因此更适合于少量读取数据的存储场景。
下表以在广州地域存储100TB业务数据为例,展示了数据以不同存储类型存储一个月需支出的存储成本:
对比项 | 标准存储 | 低频存储 | 归档存储 | 深度归档存储 | 标准存储(多 AZ) | 低频存储(多 AZ) |
存储单价(元/GB/月) | 0.118 | 0.08 | 0.033 | 0.01 | 0.15 | 0.1 |
流量单价(元/GB) | 0.5 | 0.5 | 0.5 | 0.5 | 0.5 | 0.5 |
请求单价(元/万次,以100万次为例) | 0.01 | 0.05 | 0.01 | 读写请求:0.5 标准取回请求:7 | 0.01 | 0.05 |
取回单价(元/GB) | 0 | 0.02 | 标准取回:0.06 | 标准取回:0.14 | 0 | 0.02 |
总费用(存储100TB+无下载) | 12083.20 | 8192.00 | 3379.20 | 1024 | 15360.00 | 10240.00 |
总费用(存储100TB+下载100T+请求100万次+取回100TB) | 62084.20 | 60245.00 | 59524.20 | 66110.00 | 65361.00 | 62293.00 |
总费用(存储100TB+下载500T+请求100万次+取回500TB) | 262084.20 | 268437.00 | 284100.20 | 323454.00 | 265361.00 | 270485.00 |
说明
从表中可以看到,如果业务数据下载量较低,则选择归档存储甚至深度归档存储能有效降低存储成本,最冷的深度归档存储相较标准存储可节省90%存储费用;但如果业务数据需要频繁下载,则低频存储、归档存储、深度归档存储的取回费用会带来额外的成本开销,导致整体费用反而更高。
具体到业务场景中,我们推荐:
1. 频繁读写场景:例如 UGC 场景、电商图片等读多写少的业务,可使用标准存储类型。如果业务对可用性和数据持久性有高要求,则可以考虑使用标准存储(多 AZ)。
2. 少量读场景(一个月读一次):例如日志数据分析、网盘数据等业务,读取频率较低,但读取时对性能要求高,可使用低频存储类型。对可用性和数据持久性有高要求的业务可以使用低频存储(多 AZ)。
3. 极少量读场景(三个月读一次):例如视频监控、日志数据归档等业务,读取频率极低,对读取性能要求较低,可使用归档存储类型。
4. 基本不读取场景(半年读一次):例如医疗影像、档案资料等业务,日常仅做长期备份用途,对读取性能几乎无要求,可使用深度归档存储类型。
此外,在选择不同存储类型时,我们建议企业留意部分存储类型有最短存储时间和最小存储单元的限制,并且不同存储类型其性能表现有差异。下表提供了一个简单的对比。
对比项 | 标准存储 | 低频存储 | 归档存储 | 深度归档存储 | 标准存储(多 AZ) | 低频存储(多 AZ) |
首字节延迟 | 毫秒级 | 毫秒级 | 最少1分钟恢复 | 最少12小时恢复 | 毫秒级 | 毫秒级 |
最小存储单元 | 无限制 | 64KB | 64KB | 64KB | 无限制 | 无限制 |
最短存储时间 | 无限制 | 30天 | 90天 | 180天 | 无限制 | 30天 |
数据持久性 | 11个9 | 11个9 | 11个9 | 11个9 | 12个9 | 12个9 |
业务设计可用性 | 99.99% | 99.90% | 99.00% | 99.00% | 99.995% | 99.95% |
说明
最短存储时间:文件被存储在对应存储类型时,需要存储的最短时间,不满足最短时间按照最短时间计算。例如低频存储最少存储30天,如果一个低频文件只存储了1天就删除,也会按照30天计算费用。
最小存储单元:文件被存储在对应存储类型时,需要存储的最小文件容量,不满足最小文件容量按照最小文件容量算。例如低频存储最少存储64KB,如果一个低频文件只存储了1KB,也会按照64KB计算费用。
优化二:分析访问模式并进行数据沉降
1. 定期通过清单和访问日志功能分析数据访问模式
分析数据的访问模式能够为选择合理的存储类型提供数据支撑。对象存储 COS 提供了清单功能和访问日志功能,分别用于记录存储的文件元数据信息和文件访问记录,并将这些信息转存到用户的存储桶中。
对象存储提供了 COS Select 功能,可对文件中的内容进行检索,如果您生成的清单文件或者日志记录过多,您也可以购买弹性 Map Reduce 集群,搭建 Presto 集群进行数据分析。
以检索分析清单文件中的数据为例,当清单报告投递到指定存储桶后,您可以进入控制台对指定的清单报告进行分析,分析操作指引如下:
1. 登录 对象存储控制台。
2. 单击需要配置的存储桶名称,进入存储桶列表页面。
3. 找到对应的清单报告,在其右侧操作一列下,选择更多 > 检索。


4. 在对象检索页面,配置相应入参,输入检索语句,单击运行SQL,即可在检索结果卡片页查看检索结果。

以下是几种常见的检索清单报告的检索语句:

查询某一天某类存储类型有多少文件:
select count(*) from cosobject s where s._7 = <storage_class>select count(*) from cosobject s where s._7 = 'Standard'
查询某一天某类存储类型有多少MB容量:
select SUM(CAST(s._4 AS FLOAT))/1024/1024 from cosobject s where s._7 = <storage_class>select SUM(CAST(s._4 AS FLOAT))/1024/1024 from cosobject s where s._7 = 'Standard'
查询某类存储类型小于64KB的文件数量:
select count(*) from cosobject s where s._7 = <storage_class> and CAST(s._4 AS FLOAT) < <SIZE>select count(*) from cosobject s where s._7 = 'Standard_IA' and s._4 < 64*1024
查询桶内跨地域复制失败的文件数量:
select count(*) from cosobject s where s._9 = 'Failed'
注意
清单报告中不包含表头信息,因此只能输入对应字段的序列号进行检索。清单报告的表头和序列号对应信息如下:
Appid | Bucket | Key | Size | LastModifiedDate | ETag | StorageClass | IsMultipartUploaded | ReplicationStatus |
s._1 | s._2 | s._3 | s._4 | s._5 | s._6 | s._7 | s._8 | s._9 |
2. 通过生命周期和批量处理沉降数据
业务发展过程中,数据的访问模式始终在动态变化。定期通过清单和访问日志功能分析数据访问模式后,可根据分析报告对业务数据进行降冷。
对于大部分数据而言,其访问热度一般随着存储时间延长而降低,因此,企业需要根据业务数据访问模式的变化,调整数据存储类型,以便控制业务成本达到最佳状态。
对象存储提供了生命周期功能帮助企业定期地转换存储类型,企业可以通过清单和访问日志分析业务数据的访问模式,根据业务访问模式制定合理的生命周期转换规则。
以某经营社区平台的客户为例,使用对象存储服务存储用户上传的图片数据。一般而言,图片数据在刚上传后的一段时间里会被频繁访问,经过一段时间传播后,大部分数据会逐渐”变冷“,访问频次逐渐减少。假设这一客户大部分图片数据在经过90天后数据访问频次已经低于1次/月,在365天后基本无人访问,我们可以对比在设置生命周期和不设置生命周期时的成本情况:
对比项 | 只使用标准存储 | 使用标准存储热数据,90天后沉降到低频 | 使用标准存储热数据,90天后沉降到低频,365天后沉降到归档 |
存储单价(元/GB/月,以广州地域为例) | 标准存储:0.118 | 标准存储:0.118 低频存储:0.08 | 标准存储:0.118 低频存储:0.08 归档存储:0.033 |
存储时间 | 24个月 | 24个月 (3个月标准+21个月低频) | 24个月 (3个月标准+9个月低频+12个月归档) |
总存储费用(元) | 289996.80 | 208281.60 | 150528.00 |
可以看到,使用生命周期规则管理存储桶中的对象能够较大幅度地降低数据存储费用。对于长期存储的数据,合理配置生命周期规则能帮助业务降低50%以上存储成本。
除了管理业务数据存储类型外,生命周期功能还可以用来管理存储桶中的 文件碎片 和 历史版本文件。文件碎片是业务在上传大文件过程中,因为网络中断等意外情况导致传输失败,从而产生的不完整文件分块信息,如果业务数据中存在大量文件碎片,可以通过生命周期规则对文件碎片进行过期删除。历史版本文件则是开启版本控制功能后产生的旧文件信息,历史版本文件可以用于数据误删后的恢复和回滚,但会占用存储空间,业务同样可以设置一个过期删除时间,将不再使用的历史版本文件进行清理,以实现数据安全和成本均衡。
对于个别业务,仅只需要一次性将大批量文件转换为更冷的存储类型,并且没有固定的规则(例如指定的前缀或者标签),则用户可以使用 COS 批量处理(Batch) 功能,使用批量复制功能将数据修改为其他存储类型,此外您也可以为业务数据 添加对象标签 以便设置生命周期规则进行批量删除。操作步骤如下:
1. 导出待处理文件列表,整合成 csv 格式文件。
2. 创建 COSBatch 批量处理任务,导入文件列表。
3. 执行批量处理任务,等候任务完成即可。
优化三:通过文件压缩减少存储容量
对于图片类数据,对象存储也提供了数据压缩功能帮助用户压缩图片大小,减少存储成本。目前提供了压缩功能如下:
1. Guetzli 压缩:Guetzli 压缩是一种视觉无损压缩,利用人眼对于部分色域及图片细节的不敏感性,在不影响视觉效果的前提下有选择地丢弃细节信息,使得在相同质量条件下比原图节省约35% - 50%的图片大小。
2. TPG 压缩:TPG 是腾讯推出的自研图片格式,可将 JPG、PNG、GIF、WEBP 等格式图片转换为 TPG 格式,大幅减小图片大小,压缩比可达到35%以上。
3. HEIF 压缩:针对 iOS 环境的图片使用场景,可将 JPG、PNG、GIF、WEBP 等格式图片转换为 HEIF 格式,HEIF 格式有着超高压缩率,压缩比一般在45%以上。
以某客户图片存储业务为例,下表对比了100TB图片存储采用不同压缩方式后的成本支出情况:
对比项 | Guetzli 压缩 | TPG 压缩 | Webp 压缩 | HEIF 压缩 |
原始存储费用 | 12083.20 | 12083.20 | 12083.20 | 12083.20 |
压缩比示例值 | 40% | 35% | 20% | 45% |
压缩单价 | 1元/千次 | 0.1元/千次 | 0.025元/GB | 0.1元/千次 |
压缩后存储费用 | 4833.28 | 4229.12 | 2416.64 | 5437.44 |
压缩前总费用(存储100T+下载500T) | 262083.20 | 262083.20 | 262083.20 | 262083.20 |
压缩后总费用 | 117233.28 | 94829.12 | 56176.64 | 121637.44 |
压缩比范围 | 30% - 50%,图片越大效果越好 | 35%以上,压缩比较稳定 | 20%左右 | 45%以上 |
视觉损失 | 视觉无损 | 几乎无损 | 部分色域损失明显 | 几乎无损 |
从表中可以看到,使用图片压缩功能进行压缩后,尽管会付出一定压缩成本,但存储成本大幅度降低,实际总支出也降低了。此外,业务后续使用中会产生大量的流量,通过压缩也能极大地节约流量成本。
进行成本回顾
成本优化需要贯穿业务的全流程,而不仅仅只在业务上云时进行成本规划,业务需要不定时进行成本回顾。一方面,随着业务发展,业务对存储的需求在动态变化,业务数据的访问模式也在实时变化;另一方面,腾讯云对象存储服务也致力于为用户提供更低成本的存储服务,帮助用户降本增效。因此,不定时进行成本回顾,按照业务需求合理规划业务的云存储架构,有利于业务降低存储成本。
除此之外,您还可以:
1. 前往费用中心的 用量明细下载 页面,下载腾讯云计费账单了解您的云存储用量明细账单,分析您的云存储消耗情况并针对性优化。
2. 关注腾讯云存储公众号或者进入 对象存储控制台概览页,了解对象存储新品发布情况,关注对您成本优化有关的资讯。