本文介绍使用 CDN/TOS 作为源站/伪源的解决方案,包括业务场景、方案架构及实施步骤等。
业务场景
源站
互联网应用大多采用动静分离架构,将视频、音频、图片、JS脚本等静态资源放在对象存储中,并使用 CDN 进行访问加速,存放静态资源的地方我们称之为CDN的“源站”。
使用 CDN+TOS 这种架构的优势主要包含:
- 提高资源的加载速度。通过将站点内容分发至就近的 CDN 缓存节点,使用户可就近快速获取所需资源,有效解决公网拥塞、网络延迟等问题,优化访问体验。
- 可以节省流量费用。通过火山引擎 CDN 回源到火山引擎 TOS 的流量,在 TOS 侧视为 CDN 回源流量(刊例价 0.15元/GB),相比 TOS 的公网流出流量(刊例价0.5元/GB)单价更低。
- 实现更加灵活地访问控制。火山引擎 CDN 支持回源到 TOS 私有桶,同时 CDN 侧支持 Referer 防盗链、Origin 防盗链、IP 黑白名单、IP 访问限速、URL 鉴权等功能。
- TOS支持丰富的数据处理功能(图片处理、视频处理、文档预览等)以及联动豆包的AIGC能力(文生图、图生图),通过 TOS+CDN 可实现多模态数据的一站式存储、处理、分发流程。
伪源
基于商务价格、CDN 线路质量、资源调度灵活性等考虑,互联网类客户往往使用多家 CDN 厂商 + 云厂商对象存储源站/IDC 自建源站的模式,内容分发的整体成本组成如下:
- CDN + 云对象存储源站:
- CDN 流量/带宽费用
- 对象存储-CDN 回源流量费用(CDN 和对象存储为同一厂商时)
- 对象存储-公网流出流量费用(CDN 和对象存储为不同厂商时))
- 对象存储容量费用
- CDN + IDC自建源站:
- CDN流量/带宽费用
- IDC自建源站出向公网带宽费用
- IDC自建源站存储费用
当业务模型中 CDN 命中率偏低时,会产生大量的回源流量 ID 公网带宽费用,所以“伪源”就有了价值:
- 通过增加一层“伪源”,减少回源到真实源站的请求,实现以存储换带宽,只要存储的成本能够低于可节省的回源带宽/流量费用,就能实现正向收益。
- “伪源”到真实源站如果在物理距离上较近,可以考虑设置专线,从而进一步降低源站的出口带宽费用。
- 同一家 CDN/云厂商的对象存储和 CDN 节点一般为内部链路,CDN 回源请求耗时更低,从而能够提高用户体验。
解决方案
本文主要聚焦伪源方案,源站场景使用 CDN+对象存储,为常见方案,本文不做过多说明。
技术架构
- 客户端访问静态资源时请求火山 CDN 加速域名,火山 CDN 回源到火山 TOS 桶。
- 基于TOS的镜像回源/重定向回源功能构建“伪源”,如果只希望存储热点数据可在桶上配置生命周期规则。
- 火山 TOS 回源到客户源站,该链路默认为公网,在具备专线条件时可单独调度到专线线路。
客户收益
- 通过构建“伪源”存储热点数据,减少对源站的回源请求,降低源站带宽或流量费用。
- CDN回源到同厂商的对象存储,一般为内部链路,可降低数据分发的请求耗时,提升用户体验。
- “伪源”可以起到屏蔽和保护真实源站的作用,“伪源”和源站可组合构建冗余或降级策略。
典型案例
某互联网 APP,有大量的图片/视频数据通过 CDN 进行分发,当前源站分别在 A 云和 B 云的对象存储上,在使用火山 CDN 的同时,将火山引擎 TOS 对象存储作为火山 CDN 的热数据缓存站点,用专线打通客户在其他云厂商的源站,整体降低了 CDN 跨云厂商回源的网络成本。
业务痛点
- 在没有“伪源”的情况下,火山 CDN 需要直接回源到 A 云和 B 云的对象存储,在 CDN 命中率不够高时会在友商源站产生大量的公网流出流量费用。
- 火山 CDN 直接回源友商源站只能走公网链路,回源请求耗时较高,影响 CDN 加速效果。
方案架构
客户价值
- TOS “伪源”通过跨云专线到友商对象存储拉取热点数据,使得火山 CDN 原先要走公网回源到友商存储所产生的源站公网流量降为 0,整体上为业务节省了内容分发的成本。
- 在火山 CDN 和友商源站之间的 TOS “伪源”,作为中间缓存层,可大幅降低客户源站数据被请求的频次,从而降低了源站的压力。
- 火山 CDN->火山 TOS->友商源站,全链路端到端请求时延低,能够带来更好的CDN加速效果,提升用户体验。
配置指南
本文以伪源场景为例。
- 在TOS控制台配置回源规则(假设源站地址为https://source.com)。
回源规则的详细介绍,请参见回源概述。
- 在TOS控制台配置生命周期规则(假设所有拉取到 TOS 桶的数据保留 30 天)。
生命周期规则的详细介绍,请参见生命周期概述。
- 在 CDN 控制台配置 CDN 源站为 TOS 桶。