运维干货|对象存储COS成本管理秘籍

2021-04-29 11:33:54 浏览数 (1)

简介

成本管理是业务运维的一项重要内容,我们在使用云产品时一定要熟悉其计费规则,在保证服务质量、数据安全的前提下尽可能的降低服务运营成本,下文从预防预期外成本增长、现有成本的优化、以及成本的持续运营思路来探讨对象存储COS成本管理方案。

一、预期外成本增长的监管

我们在使用对象存储COS时,最先需要关注的是安全防护,做好权限管理及安全管理,避免因恶意流量攻击导致成本放大。其次要做好监控,以便第一时间发现成本异常。

1.1 恶意流量攻击防护

1.1.1 避免放开公有读权限

公有读权限允许通过匿名身份直接访问,有些用户为了读写方便直接设置访问权限为公有读私有写,甚至公有读写,极不安全;很容易成为黑产攻击的对象,被盗刷流量,造成财产损失;

1.1.2 Policy权限设置,严格控制权限。

私有读写权限安全性高,可以有效防止流量盗刷,但是在某些场景下我们又不得放开公有读权限。那么放开公有读权限后,我们该怎么防止流量盗刷呢?一方面我们可以通过设置Policy权限进行访问控制,如限制访问来源IP,或者给某子用户授权;另一方面也可以通过防盗链来进行安全防护。

1.1.3 设置防盗链,避免流量盗刷

设置防盗链时应避免允许空referer的情况。防盗链虽然能对流量盗刷行为能起到有效防护,却也不是100%杜绝;防盗链是原理是基于HTTP Referer 来实现的,意味着攻击者可以通过伪造Referer 来实现访问,故在设置防盗链之后,我们还需要对存储桶添加必要的监控,及时发现异常请求,减小损失;

1.1.4 开启日志管理

日志管理功能能记录跟存储桶操作相关的各种请求日志。开启日志管理功能,可以帮助我们更好的管理和使用存储桶。受到攻击时,也便于我们根据日志分析攻击请求,加强防护。推荐开启日志管理功能后,将日志集中到指定目录下,然后使用生命周期来管理日志,定期对日志数据进行降冷和删除。

1.2 监控计费相关指标

监控是保证服务持续稳定运行的必要手段,我们在配置监控的时候不能仅关注请求的错误码,对于业务的请求量也需要倍加关注,及时发现异常流量。对象存储的监控可以在云监控产品进行配置,就成本管理而言,我们主要关注的对象存储监控指标 有存储量、流量、请求量;这几个计费项占据对象存储成本的大头。

1.2.1 存储量监控

目前云监控产品暂不支持直接针对存储量配置告警,但也有最解决方案。可通过云监控的拉取指标监控数据接口定时拉取监控数据,然后通过自定义监控上报数据到云监控,最后在云监控配置自定义告警。定时任务的脚本推荐放到云函数SCF上跑,方便管理;也可以直接跑在自己的云服务器CVM上。如果客户有自己的监控系统,也可以将数据上报到自建的监控系统。

1.2.2 流量监控

对象存储主要针对外网下行流量、CDN回源流量、跨区域复制流量、全球加速流量进行收费。在监控这块,我们只配置外网下行流量和CDN回源流量即可。流量监控不需要那么高的灵敏度,阈值类型推荐静态类型,统计周期按5分钟,阈值按存储桶的流量大小及波动情况合理配置即可,告警频率建议配置1小时以内。

1.2.3 请求监控

请求数的监控我们需要格外关注的是低频存储读请求、归档存储读请求、深度归档存储读请求,这几类的请求单价较高。曾经有个客户,开启生命周期将对象降冷至低频存储、归档存储后,未关注到降冷后的对象仍被读取,导致产生了巨额的请求费用。我们的存储桶在有低频存储、归档存储、深度归档存储类型的对象时,一定要加上对应类型的请求监控。我们在使用生命周期进行降冷的时候,首要需要配置的也是这些请求监控。

目前云监控暂时只支持标准存储读请求、低频存储读请求的告警配置,未支持归档存储,深度归档的存储的告警配置。针对深度归档读请求的监控,可参考上文存储量监控的方案,通过拉取对象存储监控指标再上报的方案。

二、优化现有成本

定期清理无用数据、数据降冷是优化现有存储成本的基本手段,除此之外我们还可以通过配合其他云产品来优化对象存储COS的成本。

2.1 清理无用数据

对于有时效性的数据,建议定期删除。我们可以通过配置生命周期来删除无用的数据,需要格外提醒的是,若对象开启了版本控制,清理最新版本文件时,也不要忘记清理历史版本文件。

对于有些数据没有严格的时效性,数据类型也不集中时。可以采用对数据打标签 生命周期管理的方式进行数据的清理,降冷。

对于偶发的数据清理需求,可以采用清单 批处理的方案。通过清单功能列出所有对象,然后在筛选出需要删除的对象,最后通过批处理进行批量的数据删除。

2.2 定期清理文件碎片

文件碎片也会占据存储空间,需要查看是否有过多的文件碎片,及时清理。

2.3 数据降冷

对象存储支持根据对象创建时间来进行降冷,可结合生命周期实现降冷的目的。需要格外说明的是,一旦开启降冷,一定要对降冷后的数据类型的请求数进行监控(参考上文监控管理部分),避免产生高额的请求费用。若暂时无法进行监控的存储类型,例如归档存储类型,建议开启日志管理 ,通过分析日志查看是否有请求归档存储的情况

另外根据对象存储规格与限制要求中的计费限制,低频存储、归档存储、深度归档存储都是有最低存储时间要求,例如低频存储时间不足30天,按30天计算;那么即使某低频存储对象存储了1天,而后立即删除,也会按照30天收费。故低频存储按文件修改时间大于30天后沉降即可,归档存储、深度归档存储分别按大于90、180天沉降。

2.4 采用智能分层存储

生命周期降冷的方式只能针对文件的创建时间来制定规则,并不能真正区分数据是热数据还是冷数据。若客户有沉降低频访问数据的需求,推荐使用对象存储的智能分层存储类型(INTELLIGENT_TIERING)。智能分层存储类型的对象可存放在标准存储层和低频存储层两个存储层,COS 可根据智能分层存储类型对象的访问频次自动在两个存储层之间变换,无数据取回费用,可降低用户的存储成本。

2.5 配合CDN降低外网下行流量费用

CDN流量费用比COS流量费用便宜很多,以按量计费的方式为例,大陆公有云地域COS标准存储外网下行流量是0.5元/GB,而CDN是不高于0.21元/GB,节省50%以上的

CDN 加速适用于对 COS 存储桶中的内容进行下载和分发,适用于相同内容反复下载的使用场景。对象存储支持默认的CDN加速域名,也支持自定义CDN加速域名;腾讯云CDN也支持防盗链设置,我们在接入CDN的时候,同样需要注意做好访问控制,同时添加必要的流量监控。

2.6 数据压缩,减少存储

对于图片类数据,对象存储也提供了数据压缩功能帮助用户压缩图片大小,减少存储成本。目前提供了压缩功能如下:

  1. Gueztli 压缩:Gueztli 压缩是一种视觉无损压缩,利用人眼对于部分色域及图片细节的不敏感性,在不影响视觉效果的前提下有选择地丢弃细节信息,使得在相同质量条件下比原图节省约35% - 50%的图片大小。
  2. TPG 压缩:TPG 是腾讯推出的自研图片格式,可将 JPG、PNG、GIF、WEBP 等格式图片转换为 TPG 格式,大幅减小图片大小,压缩比可达到35%以上。
  3. HEIF 压缩:针对 iOS 环境的图片使用场景,可将 JPG、PNG、GIF、WEBP 等格式图片转换为 HEIF 格式,HEIF 格式有着超高压缩率,压缩比一般在45%以上。

三、成本持续运营

上文所述仅仅是降低对象存储成本的一些方法、手段。我们在实际运营的时候,不能只追加更低的价格,而应该强调更适合,从安全风险、使用效率、维护成本、资源成本的角度来综合考量。当对象存储的成本,或者其他运维资源的成本达到一定量级的时候,我们就得建立相对于的成本运营体系,关联资源量指标与业务指标,制定成本优化的目标,严格控制成本增长。

3.1 关联业务指标与资源量指标

以周、月为周期,统计成本,持续关注成本变化趋势。将业务指标与成本映射,在成本增长的同时关注业务指标是否相应的增长,以及增长趋势是否相对应,可以让我们准确把握成本增长是否符合业务增长预期;

例如用COS作为用户图片存储,那边存储量就应该是和用户数正相关的,且用户数的增长幅度和存储量的增长幅度接近。

3.2 合理规划存储桶的使用

切忌多个业务共用存储桶的情况,不同的业务存储数据不同,业务指标也可能不同,如果多个业务混用同一个存储桶,那么在成本运营这块会带来诸多不便,也无法资源量与业务指标相关联。建议如下:

- 不同的业务使用不同的存储桶;

- 根据数据的重要程度划分不同的存储桶,例如重要数据开启版本控制,跨区域容灾,而非重要的数据则没有那么高的容错容灾要求;

3.3 成本视图建设

视图是成本分析必不可少的工具,以存储桶、存储类型、计费项等角度建立相关的视图,用以分析对象存储成本构成,确定成本增长原因,可优化的空间。

四、总结

回顾上文,我们在管理COS成本时,首先通过访问控制和监控来监管预期外的成本突增;其次通过多做手段来优化存量资源;最后结合业务对成本作持续性的运营。

0 人点赞