基于成本的工艺优化(成本优化COS对象存储方案)
作者:wainsun,CSIG技术专家服务组员工
| 导语 使用COS对象存储产品时有哪些技巧,省钱妙招,优化方案介绍,感兴趣请往下阅读吧。
1.流量成本优化措施1:COS-CDN方式架构图费用组成
COS 作为 CDN 源站时产生的流量
计费项 |
计费项说明 | ||||
CDN 回源流量 |
| ||||
存储桶访问权限 |
是否开启 CDN 回源鉴权 |
是否开启 CDN 鉴权配置 |
通过 CDN 加速域名是否 可访问源站 |
通过 COS 源站域名是否 可访问源站 |
适用场景 |
公有读 |
关闭 |
关闭 |
可访问 |
可访问 |
全站公共访问 |
公有读 |
开启 |
关闭 |
可访问 |
可访问 |
不推荐 |
公有读 |
关闭 |
开启 |
需使用 URL 鉴权 |
可访问 |
不推荐 |
公有读 |
开启 |
开启 |
需使用 URL 鉴权 |
可访问 |
不推荐 |
私有读 CDN 服务授权 |
开启 |
开启 |
需使用 URL 鉴权 |
需使用 COS 鉴权 |
全链路保护 |
私有读 CDN 服务授权 |
关闭 |
开启 |
需使用 URL 鉴权 |
需使用 COS 鉴权 |
不推荐 |
私有读 CDN 服务授权 |
开启 |
关闭 |
可访问 |
需使用 COS 鉴权 |
源站保护 |
私有读 CDN 服务授权 |
关闭 |
关闭 |
不可访问 |
需使用 COS 鉴权 |
不推荐 |
私有读 |
关闭 |
开启或关闭 |
不可访问 |
需使用 COS 鉴权 |
无法使用 CDN |
控制台操作方法
存储桶--域名与传输管理--自定义CDN加速域名--添加域名
保存后大约10分钟,配置生效,可登陆CDN控制台进行详细配置
https://console.cloud.tencent.com/cdn/domains
配置完成。
使用CDN域名,相关费用包括:CDN公网流量费;COS回源流量费 COS请求量费用
推荐建议
费用对比
假如某个用户,国内一个月的业务流量有1TB,客户端请求量200W。
按仅使用COS的场景计费
流量费用:1TB*1024*0.5 = 实际流量*转GB*每GB流量费用 = 512元
请求量费用:200W*0.01 = 2元
共计512 2 = 514元
按使用CDN-COS的场景计费,假设CDN缓存率为99%
CDN流量费用:1TB*1024*0.21 = 实际流量*转GB*CDN流量单价 = 215.04元
COS流量费用:1TB*1024*0.15*1% = 实际流量*转GB*CDN回源COS单价*回源率 = 1.5元
请求量费用:200W*0.01*1% = 0.02元
共计约为215.04 1.5 0.02 = 217元
总费用共计节省 (514-217)/514 = 57.8%
措施2:文件类型转换(图片)图片压缩功能满足 PC、App 等多终端图片压缩需求,适用于电商、传媒等业务场景,有效降低图片传输链路及加载耗时,降低带宽及流量成本。
目前主要支持以下几类压缩格式,兼容强度见下表:
功能 |
支持格式 |
支持的浏览器和系统 |
兼容性 |
压缩效果 |
压缩速度 |
WebP 压缩 |
支持将 jpg、png、bmp、gif、heif、tpg、avif 格式图片转换为 webp 格式。 |
支持 Edge、Firefox、Chrome、Safari、Android、iOS、微信等95%以上的浏览器及系统 |
强 |
一般 |
快 |
HEIF 压缩 |
支持 jpg、png、bmp、webp、avif 格式图片转换为 heif 格式。 |
不支持浏览器打开,在 iOS 11以上及 Android P 系统上原生支持 |
弱 |
强 |
快 |
TPG 压缩 |
支持 jpg、png、bmp、gif、heif、webp、avif 格式图片转换为 tpg 格式。 |
需特殊的解码器,仅 QQ 浏览器等少数浏览器支持 |
弱 |
强 |
快 |
AVIF 压缩 |
支持 jpg、png、bmp、gif、heif、webp、tpg 格式图片转换为 avif 格式。 |
支持 Firefox、Chrome、Android 等少数浏览器及系统 |
弱 |
极强 |
慢 |
多种图片的压缩比如下表
格式 |
大小 |
png(原图) |
465 KB |
jpeg |
114KB(减小75.5%) |
webp |
64 KB(减小86.2%) |
heif |
54 KB(减小88.4%) |
tpg |
56 KB(减小88.0%) |
avif |
32 KB(减小93.1%) |
同时数据万象还支持Guetzli视觉无损压缩模式(开放体验),算法利用人眼对于部分色域及图片细节的不敏感性,在不影响视觉效果的前提下有选择地丢弃细节信息,在相同质量条件下处理后的图片比原图节省约35% - 50%的图片大小。
架构图费用组成
图片高级压缩费用
输出格式 |
价格 |
webp |
基础图片处理费用 |
TPG |
0.1元/千次 |
HEIF |
0.1元/千次 |
AVIF |
0.3元/千次 |
Guetzli 图片压缩费用
压缩次数 |
价格 |
≤ 3000 |
免费 |
> 3000 |
1元/千次 |
基础图片处理费用
数据处理量 |
价格 |
≤ 10TB |
免费 |
> 10TB |
0.025元/GB |
原图(446KB)
https://ci-avif-demo-1258125638.cos.ap-guangzhou.myqcloud.com/test-png.png
转换为 jpeg 图片(114KB)
https://ci-avif-demo-1258125638.cos.ap-guangzhou.myqcloud.com/test-png.png?imageMogr2/format/jpeg
转换为 webp 图片(64.1KB)
https://ci-avif-demo-1258125638.cos.ap-guangzhou.myqcloud.com/test-png.png?imageMogr2/format/webp
转换为 heif 图片(54KB)
https://ci-avif-demo-1258125638.cos.ap-guangzhou.myqcloud.com/test-png.png?imageMogr2/format/heif
转换为 tpg 图片(55KB)
https://ci-avif-demo-1258125638.cos.ap-guangzhou.myqcloud.com/test-png.png?imageMogr2/format/tpg
转换为 avif 图片(40.2KB)
https://ci-avif-demo-1258125638.cos.ap-guangzhou.myqcloud.com/test-png.png?imageMogr2/format/avif
注:压缩大小和实际图片有很大关系,会根据图片的色阶,亮度,质量,算法等多重因素有关联,实际压缩效果请以真实结果为准,以上是提供了一个demo的压缩效果示例。
CDN-COS自动转换- Webp 自适应
HTTP 请求头中 accept 头部包含 image/webp。
图片后缀为 jpg、jpeg、bmp、gif、png。
- Guetzli 自适应
HTTP 请求头中 accept 头部包含 image/guetzli。
图片后缀为 jpg、jpeg。
- TPG 自适应
HTTP 请求头中 accept 头部包含 image/tpg。
图片后缀为 jpg、jpeg、bmp、gif、png、webp
推荐建议webp,控制台操作
请求CDN域名,带有accept为webp类型
回源COS后会带上转换参数
Guetzli,控制台操作
客户端请求:
CDN回源COS请求
这里注意,Guetzli为异步操作,首次请求后会返回原图大小。
图片处理完毕后再次访问,则会看到压缩效果
TPG,控制台操作
客户端请求
CDN回源COS请求
注意:带有accept头部,CDN会缓存处理后图片内容;而accept头部不指定会请求原图并将原图缓存在CDN,最终CDN会缓存多份图片。
措施3:编码压缩(视频)架构图费用组成
媒体处理按照使用次数、文件大小、视频时长等进行计费,计费周期为月。
因收费项分类较多,详见说明文档数据万象 媒体处理费用 - 购买指南 - 文档中心 - 腾讯云
视频转换操作方法- 任务方式(单次任务)
为针对于已上传到COS的音视频文件,进行指定的处理任务,任务执行后处理结果会保存至目标路径。
- 工作流方式(多次方式)
为针对于一个转换模式,设置一个“模版”方式,对于符合条件的文件对象,进行统一处理,无需单独任务执行,自动处理并输出至指定目录。
推荐建议
建议根据视频实际使用场景,进行极速,标清,高清,超高清等码率转换,以节省视频文件的整体尺寸。
例如
- 视频网站:根据网络自动切换码率不影响用户观看。
- 短视频终端:根据网络自动切换码率不影响用户观看。
- 在线会议、在线教育:适应网络情况提升通讯质量。
测试效果
原视频:HDR测试视频.ts (分辨率3840*2160,大小1GB)
MP4-SD:(720 * 等比例高 1024 Kbps,23.33MB)
MP4-HD:(2000 * 等比例高 1280 Kbps,28.63MB)
MP4-FHD:(1920 * 等比例高 3500 Kbps,72.67MB)
MP4-2K:(2048 * 等比例高 4800 Kbps,98.51MB)
MP4-FLU:(640 * 等比例高 512 Kbps,13.17MB)
措施4:跨园区流量走云联网方案架构图费用组成
云联网计费说明
云联网两种计费模式说明如下:
计费模式 |
付款方式 |
计费单位 |
适用场景 |
月预付费 |
先付费再使用 |
元/月,至少使用一个月,带宽超过购买值则丢包 |
适用于带宽稳定或大带宽场景。 |
月95后付费 |
先使用再付费 |
元/月,根据当月实际使用带宽的月95带宽峰值及有效使用天占比计费 |
适用于小带宽或有爆发业务的场景。月95后付费模式目前在灰度中,若需使用,需提工单 |
1.通过架构师发起对VPC - COS专线配置
格式举例:
北京园区
账号ID: XXX
APPID: XXX
专线网关: 云联网 ccn-XXXXXX
cos存储区域: 北京
专线带宽: 1G(双向)
VPC ID: vpc-XXXXXX (北京 vpc | 10.0.0.0/27)
VPORT: 80 和 443
广州园区
账号ID: XXX
APPID: XXX
专线网关: 云联网 ccn-XXXXXX
cos存储区域: 广州
专线带宽: 1G(双向)
VPC ID: vpc-XXXXXX (广州 vpc | 172.16.0.0/16)
VPORT: 80 和 443
2.创建两个园区的云联网实例。
3.创建私有域解析,将域名解析到对端内网VPC IP。
注:一级域名为myqcloud.com,并需要开启递归解析。
4.通过对端园区的CVM发起请求测试,正常会解析到对端内网IP并成功访问到COS服务。
推荐建议云联网是按照带宽进行计费,当需要带宽复用或者需要跨园区大文件吞吐性能的场景,可以参考此策略,可线路复用,节省成本。
措施5:全球加速域名海外加速,国内直连方案架构图费用组成
公有云外网下行流量费
公有云国内加速流量费 (上下行相同)
公有云海外加速流量费 (上下行相同)
具体参考:对象存储 流量费用-购买指南-文档中心-腾讯云-腾讯云
配置操作方法步骤1:开启存储桶全球加速
存储桶>>域名与传输管理>>全球加速
步骤2:绑定自定义域名
存储桶>>域名与传输管理>>自定义源站域名
步骤3:设置DNSPOD
DNS解析>>我的域名
步骤4:设置线路解析
设置自定义域名分别cname到国内和国外两个COS域名,例如
国内 test.xxx.com cname wainsun-1XXX5742.cos.ap-beijing.myqcloud.com
国外 test.xxx.com cname wainsun-1XXX5742.cos.accelerate.myqcloud.com
这样我们就将国内请求和海外解析进行了分离。国内直接请求到北京集群域名,海外走全球加速域名。
全球各地域名解析测试验证
源站访问的是北京集群的bucket桶。在如下地点测试访问
步骤1:从重庆访问自定义域名
看到自定义域名cname到cos.ap-beijing.myqcloud.com域名,且访问的IP为北京地域IP(120.53.196.26),说明是直接访问到北京bucket桶。
步骤2:从美国访问自定义域名
看到自定义域名cname到cos.accelerate.myqcloud.com域名,且访问的IP为美国地域IP(49.51.43.170),说明是先访问到COS美国节点,然后从美国节点走专线到北京的bucket桶。
步骤3:从日本访问自定义域名
看到自定义域名cname到cos.accelerate.myqcloud.com域名,且访问的IP为日本地域IP(150.109.201.88),说明是先访问到COS日本节点,然后从日本节点走专线到北京的bucket桶。
推荐建议通过dnspod的能力,可以实现国内访问直接解析到桶域名,海外解析通过全球加速方式访问。同时既保障了跨境访问的效果,又节省国内访问的加速费用,更均衡合理的利用了加速资源并优化成本。
2.存储量成本优化措施1:生命周期清理碎片碎片:文件碎片是业务在上传大文件过程中,因为网络中断等意外情况导致传输失败,从而产生的不完整文件分块信息,如果业务数据中存在大量的时间较长的文件碎片,可以通过生命周期规则对文件碎片进行过期删除。
费用组成国内储存容量价格一览
对象存储 存储容量费用-购买指南-文档中心-腾讯云
配置操作方法控制台操作方法
控制台生命周期配置方法:
存储桶--基础配置--生命周期--添加规则--设置 删除碎片
COSCLI工具操作方法:
./coscli abort cos://[bucket1]
当一个桶内存在碎片,存在的碎片在补齐后依然可以整合成为一个完整的文件,只需上传缺少的分片数据和完成合并动作。所以这里可以根据应用上是否支持断点续传以及失败上传文件的保留时间,来设置清理碎片的时间。这样及可保证业务上的续传,也可以最大限度的节省碎片占用的空间费用。
例如:碎片保留两天,业务层面2天内可断点续传。2天后碎片删除,业务清理此资源。
措施2:生命周期删除冗余数据费用组成国内储存容量价格一览
对象存储 存储容量费用-购买指南-文档中心-腾讯云-腾讯云
配置操作方法控制台生命周期配置方法:
存储桶--基础配置--生命周期--添加规则--设置 文件修改XX时间后删除
推荐建议
建议历史文件清理时间要久于当前版本的清理时间1天以上,这样可以保证误删除后的历史版本找回。
措施3:数据降“冷”,数据分层费用组成各地不同类型的存储费用见
对象存储 存储容量费用-购买指南-文档中心-腾讯云-腾讯云
配置操作方法推荐建议
1.使用频率低,对资源访问时延不敏感:可降为低频存储类型。
例如:数据库备份文件,低频查询的历史文件。
2.长时间不使用,使用前需要回热时间:可降为归档存储。
例如:存档数据,合规数据。
3.频率极低,但需要长期保留的场景:可降为深度归档存储。
例如:长期备份的合规文件,长期的存留数据。
4.资源访问不均衡,冷热数据分布明显:可降为智能分层存储。
例如:企业网站资源,下载资源等。
3.安全策略保护措施1:合理设施ACL和referer防盗链功能说明访问控制列表(ACL)是基于资源的访问策略选项之一 ,可用来管理对存储桶和对象的访问。使用 ACL 可向其他主账号、子账号和用户组,授予基本的读、写权限。
与访问策略有所不同的是,ACL 的管理权限有以下限制:
- 仅支持对腾讯云的账户赋予权限
- 仅支持读对象、写对象、读 ACL、写 ACL 和全部权限等五个操作组
- 不支持赋予生效条件
- 不支持显式拒绝效力
ACL为私有,需要客户端通过请求签名的方式访问,同时确保访问akid具备访问权限。是一种严格安全的鉴权手段。
标准 ACL |
含义 |
(空) |
此为默认策略,其他人无权限,资源继承上级权限 |
private |
其他人没有权限 |
public-read |
匿名用户组具备 READ 权限 |
public-read-WRITE |
匿名用户组具备 READ 和 WRITE 权限,通常不建议在存储桶赋予此权限 |
防盗链:
通过referer头的方式验证请求的正确性。方式:
- 黑名单:拒绝名单内的域名访问存储桶的默认访问地址,若名单内的域名访问存储桶的默认访问地址,则返回403。
- 白名单:允许名单内的域名访问存储桶的默认访问地址,若名单外的域名访问存储桶的默认访问地址,则返回403。
- 空 referer:HTTP 请求中,header 为空 referer(即不带 referer 字段或 referer 字段为空)。
Referer:支持设置最多10条域名且为相同前缀匹配,每条一行,多条请换行;支持域名、IP 和通配符
使用方式ACL控制台
防盗链控制台
推荐建议
防盗刷等级高:私有访问方式
防盗刷等级低:防盗链方式
措施2:通过policy保护对象访问权限和范围功能说明访问策略可用于授予访问 COS 资源的权限。访问策略使用基于 JSON 的访问策略语言。您可以通过访问策略语言授权指定委托人(principal)对指定的 COS 资源执行指定的操作。
使用方式典型使用场景介绍
授权子账号对特定目录内文件的读权限
{
"version": "2.0",
"statement":[
{
"effect": "allow",
"action": [
"cos:List*",
"cos:Get*",
"cos:Head*",
"cos:OptionsObject"
],
"resource": "qcs::cos:ap-shanghai:uid/1250000000:Bucket1-1250000000/dir1/*"
}
]
}
授权子账号对特定目录下所有文件的读写权限并禁止对该目录下指定文件的读写权限
{
"version": "2.0",
"statement":
[
{
"effect": "allow",
"action": "cos:*",
"resource": "qcs::cos:ap-shanghai:uid/1250000000:Bucket1-1250000000/dir1/*"
},
{
"effect": "deny",
"action": "cos:*",
"resource": "qcs::cos:ap-shanghai:uid/1250000000:Bucket1-1250000000/dir1/Object1"
}
]
}
授权子账号对指定前缀的文件的读写权限
{
"version": "2.0",
"statement":[
{
"effect": "allow",
"action": "cos:*",
"resource": "qcs::cos:ap-shanghai:uid/1250000000:Bucket1-1250000000/dir1/test*"
}
]
}
原则上以最小使用范围的授权执行,控制访问者的访问范围和行为,才是最佳的权限管理手段。
措施3:通过STS 临时账号授权访问权限(推荐)功能说明Web、iOS、Android 使用 COS 时,通过固定密钥计算签名方式不能有效地控制权限,同时把永久密钥放到客户端代码中有极大的泄露风险。如若通过临时密钥方式,则可以方便、有效地解决权限控制问题。使用方式推荐建议
客户端访问COS服务优先建议使用临时密钥,具备一下好处。
- 使用临时密钥,减少长期访问密钥泄露的风险。
- 临时密钥具有时效性,可以自定义有效期,到期后将自动失效,无需定期轮换。
- 可以为临时账号绑定自定义权限策略,提供更加灵活和精细的云资源授权。
标签是腾讯云提供的用于标识云上资源的标记,是一个键值对(Key-Value)。您可以根据各种维度(例如业务,用途,负责人等)使用标签对云服务器资源进行分类管理,也可以通过标签非常方便地筛选过滤出对应的资源。
- 使用标签管理腾讯云资源
- 使用标签控制对资源的访问
- 使用标签进行分账
特点:通过修改标签项,可以灵活的授权实例资源,避免了频繁修改策略的麻烦。同时标签也便于管理。
使用方式控制台操作方法:
新建标签
绑定资源
资源授权
推荐建议
标签是一种清晰灵活的资源授权方式,可以避免策略授权带来的复杂和冗余参数,减少误授权的概率,减少资源外泄(盗刷,权限设置过大等操作),建议优先通过标签授权和管理,降低管理成本。
4.成本运营监控措施1:流量及QPS监控功能特点针对实时流量进行常态化监控。
根据配置阈值,对流量及QPS进行通知告警。
快速排查隐患,避免损失。
操作方法云监控--对象存储--监控
推荐建议
针对实时流量进行常态化监控。
根据配置阈值,对流量及QPS进行通知告警。
快速排查隐患,避免损失。
措施2:业务突增占比告警配置功能特点及时处理异常场景:配置云监控相关配置,在监控数据达到告警阈值时发送告警信息,及时获取异常通知,查询异常原因。
操作方法推荐建议
针对于公网流量,建议配置流量告警,避免密钥泄漏或盗刷场景带来的损失。
措施3:实时日志分析功能特点操作方法
存储桶--日志管理--日志检索
CLS控制台会联动创建日志主题cos-log-store
实时日志信息
推荐建议
实时日志分析是对时效性要求高的通用记录检索、分析场景使用。
存储日志分析是对长期日志的统计,聚合,排序等一系列更复杂的算法的分析结果。
开启日志分析功能,可立体化的对行为数据进行定期分析。对业务数据变化,流量变化,客户行为异常等典型场景进行更全面的掌控。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com