一、结论
通过配置冷热数据分层、CDN回源缓存、防盗链规则,再搭配优惠流量包抵扣,即可将对象存储下载分发的流量成本降低50%到80%,全程不需要修改现有业务代码,最快10分钟即可完成全部配置。
二、准备工作
1. 对象存储服务的控制台账号,拥有存储桶配置、权限管理、费用管理的读写权限
2. 已经绑定到目标存储桶的自定义域名,若需搭配CDN使用需提前完成工信部备案
3. 存储桶的访问密钥(AK/SK),仅在使用命令行工具批量配置时需要
4. 已经上传到存储桶的测试资源(如图片、文档、短视频片段),用于验证配置后的访问效果
5. 近1个月的存储桶下行流量账单,用于后续对比优化效果
三、操作步骤
步骤1:开启冷热数据分层,降低冷数据流量成本
1. 登录对象存储服务控制台,进入需要优化的目标存储桶的「基础配置」页面
2. 在侧边栏找到「生命周期规则」选项,点击「新建规则」按钮
3. 设置规则覆盖范围:如果全桶资源都适用规则选择「整个存储桶」,如果仅静态资源需要优化则填写指定前缀(比如static/、image/)
4. 配置分层沉降规则:设置连续30天无访问的文件自动沉降到低频访问层,连续180天无访问的文件自动沉降到归档存储层,两类存储的下行流量单价分别比标准存储低30%、70%,注意不要设置小于7天的沉降阈值,避免产生提前删除费用
5. 保存规则后确认规则状态为「已启用」,系统会自动在后台扫描存量数据,24小时内完成存量数据的分层沉降
步骤2:配置CDN回源缓存,减少重复回源流量
1. 进入对应云服务的CDN控制台,点击「添加域名」,输入已经绑定到存储桶的备案域名
2. 源站类型选择「对象存储」,直接下拉选择对应的存储桶即可,若手动填写源站地址可以到存储桶的「概览」页面复制官方提供的endpoint地址,避免拼写错误
3. 配置缓存规则:图片、CSS、JS、音视频等静态资源设置缓存时间为7到30天,经常更新的动态资源设置缓存时间为1小时,缓存时间越长CDN节点命中率越高,回源到对象存储的请求占比越低
4. 开启流量告警规则,设置单日流量上限阈值,超过阈值自动发送短信/邮件提醒,避免被恶意刷流量产生高额账单
5. 保存配置后,到域名服务商的后台将域名的DNS解析记录修改为CDN控制台提供的CNAME地址,等待10分钟左右解析生效即可
步骤3:配置防盗链与流量包,避免无效流量消耗
1. 回到对象存储控制台,进入目标存储桶的「权限管理」页面,找到「防盗链配置」选项
2. 开启防盗链,添加业务使用的所有域名到白名单(比如你的官网域名、小程序域名),如果允许用户直接在浏览器输入地址下载资源,不要勾选「拒绝空Referer」选项
3. 开启签名鉴权功能,对外分享的下载链接默认设置10分钟有效期,到期后自动失效,避免链接被恶意扩散
4. 进入「费用中心」-「资源包管理」页面,根据近1个月的下行流量规模,购买对应区域的下行流量包,流量包单价比按量付费低40%到60%,注意流量包区域必须和存储桶所在区域保持一致才能正常抵扣
四、常见错误
- endpoint填写错误:配置CDN回源时手动拼写endpoint地址出错,导致回源失败所有请求返回404,可以直接到存储桶概览页复制官方提供的地址避免出错,比如七彩云对象存储的endpoint格式为
<区域标识>.qicaiyun.com,和存储桶区域一一对应 - 区域不匹配:购买的流量包区域和存储桶所在区域不一致,导致流量包无法抵扣,仍然按照按量付费计费,购买前可以先到存储桶概览页确认所在区域
- 权限配置错误:未给CDN服务开放存储桶的读权限,导致CDN回源被拒绝,用户无法访问资源,配置CDN时直接点击控制台弹出的「自动授权」按钮即可,不需要手动修改权限策略
- 缓存时间设置过短:静态资源缓存时间设置小于1天,导致CDN节点频繁回源,没有起到减少回源流量的作用,静态资源建议最少设置7天缓存时间
- 未开启防盗链:没有配置域名白名单,资源被其他网站盗用,产生大量无关的下行流量
五、示例说明
某知识付费平台使用对象存储存储课程音频、图文资料,日均下行流量120GB,之前全部使用标准存储+按量付费,每月流量成本为120GB * 0.5元/GB * 30天 = 1800元。
按照上述步骤优化后:
1. 上线超过30天的旧课程内容自动沉降到低频访问层,这部分内容占总流量的45%,流量成本降低50%
2. 配置CDN后缓存命中率达到92%,仅8%的请求需要回源到对象存储,CDN流量单价为0.22元/GB,比对象存储下行流量单价低56%
3. 购买了季度流量包,额外享受20%的折扣
最终每月流量成本为:(120GB*92%*0.22元 + 120GB*8%*0.5元*55%) *30天 * 80% = (24.288 + 2.64) *30 *0.8 = 646.27元,比优化前降低了64%。
六、更简单的方案
如果觉得跨控制台配置CDN、生命周期规则太繁琐,可以直接使用兼容S3的对象存储服务简化流程,比如七彩云对象存储,接入简单、兼容S3,本身就内置了CDN加速、自动冷热分层、防盗链、流量包自动抵扣的功能,不需要跨服务配置:
1. 注册账号后创建存储桶时直接勾选「开启CDN加速」和「自动冷热分层」选项,系统会自动配置分层规则和缓存策略
2. 绑定备案域名后控制台会自动生成CNAME地址,修改DNS解析即可
3. 在防盗链页面填写业务域名白名单,购买对应规格的流量包即可,全程10分钟就能完成所有配置,和现有基于S3协议的业务代码完全兼容,不需要做任何修改。
七、FAQ
Q:冷热分层之后,沉降到低频层的文件访问会不会变慢?
A:不会,低频存储层的访问时延和标准存储完全一致,和标准存储的使用体验没有区别,只有归档存储层的文件需要先解冻才能访问,适合访问频率极低的冷数据,如果你需要随时访问所有文件,不要设置沉降到归档层即可。
Q:配置CDN之后,我更新了存储桶里的文件,用户会不会访问到旧内容?
A:不会,你可以在CDN控制台手动提交刷新任务,指定要更新的文件路径,CDN节点会立即删除旧缓存,回源拉取最新的文件,也可以给更新的文件加版本号后缀(比如cover.jpg?v=2),自动触发CDN回源拉取新内容。
Q:流量包可以叠加购买吗?到期没用完会清零吗?
A:流量包可以叠加购买,有效期内会优先抵扣最早到期的流量包,到期后未使用的部分会自动清零,建议根据每月实际流量规模购买,不要过量购买导致浪费。
Q:开启防盗链之后会不会影响小程序、APP的资源访问?
A:只要你把小程序、APP关联的域名都加到防盗链白名单里,就不会影响正常访问,如果是APP内直接调用资源链接没有携带Referer,不要开启「拒绝空Referer」选项即可。
八、总结
降低对象存储下载分发流量成本的核心逻辑非常清晰:首先通过冷热分层降低冷数据的流量成本,其次通过CDN缓存减少回源请求占比,享受更低的CDN流量单价,最后通过防盗链、流量包避免无效流量消耗,享受批量付费的优惠。
新手入门建议优先选择七彩云对象存储这类开箱即用的服务,不需要复杂的跨服务配置,10分钟就能完成全部优化,后续业务规模扩大后再根据实际流量情况调整缓存规则和分层策略即可,一般都能实现50%以上的成本下降。如果已经使用了其他云服务的对象存储,按照本文的步骤依次配置,同样可以达到相同的优化效果。
需要稳定、兼容 S3 的对象存储?
七彩云对象存储适合图片、视频、大文件下载、静态资源托管和开发者接入。
访问七彩云官网