方案概述
背景介绍
现在越来越多的行业使用OBS桶存储图片、视频、软件包等静态资源文件,并将OBS桶作为网站、论坛、APP、游戏等业务的存储源。在需要获取这些静态资源时,用户通过URL直接从OBS桶请求数据。OBS桶能够很好的解决本地存储不够用的难题,但一般情况下文件只存储在一个区域,不同区域的用户访问OBS桶的响应速度存在差异。在需要频繁访问的场景下,直接访问OBS桶来获取相应文件,还会消耗大量的流量费用。
CDN加速OBS文件方案
华为云CDN可以有效加速网站,为用户提供良好的体验,而OBS桶提供海量文件存储。将数据存放在OBS桶中然后通过配置CDN加速,这样构造的业务系统可以在降低成本的同时,提高终端用户使用感受。当终端用户发起访问请求时,会首先通过CDN查找对此域名响应速度较快的CDN节点,并查询此节点是否有缓存终端用户请求的内容。如果CDN节点有缓存用户所需资源,直接将资源返回给用户;如果CDN节点无缓存,则回源请求资源返回给用户,同时将资源缓存到CDN节点。
资源与成本规划
本实践所需资源请见下表。
方案优势
- 低成本
- CDN加速OBS桶文件后,资源缓存在CDN节点,用户请求无需回源,而CDN加速的费用较低,二者配合使用可以节约50%到57%的带宽成本,详见通过CDN减少OBS公网带宽费用。
- OBS桶提供CDN回源流量包折扣方式,使CDN从OBS桶获取数据时流量费用更低,计费详情请见CDN加速OBS计费规则。
CDN加速OBS桶不支持走内网。
- 高效率
- 华为云CDN具有加速资源丰富、节点分布广泛优势,保证将用户请求精准调度至较优边缘节点,提供有效且稳定的加速效果。
- 自动刷新
- 通过OBS控制台为您的桶绑定加速域名后,支持自动刷新配置,您可以参考配置CDN自动刷新完成相关配置。
适用场景
- 通过OBS桶提供文件下载业务的应用或服务。例如:通过HTTP/HTTPS提供文件下载业务的网站、工具下载、游戏客户端、APP商店等。
- 通过OBS桶提供音视频点播业务的应用或服务。例如:在线教育类网站、在线视频分享网站、互联网电视点播平台、音乐视频点播APP等。
- 通过OBS桶提供图片素材等的网站。例如:包括门户网站、电商平台、资讯APP、UGC应用(User Generated Content,用户原创内容)等
约束与限制
- 只有版本号为3.0及以上的桶支持此方案。桶版本号可以在OBS控制台上,进入桶概览页面后,在“基本信息”中查看。
- 当OBS配置了镜像回源且CDN侧开启Range回源时,如果镜像源站未遵循RFC Range Requests标准,对range请求响应非206 ,CDN会回源失败。如需支持该场景,请提工单申请。
- 当CDN源站类型为“OBS桶域名”且接入的是OBS私有桶时,不支持文件上传操作。如果您需要通过CDN将文件上传到OBS私有桶,需要以“源站域名”的形式将OBS私有桶接入CDN,同时,客户端携带鉴权请求头上传文件。
OBS私有桶以源站域名接入CDN后,因CDN无私有桶上传权限,此时客户端无法正常访问加速域名。使用GET/HEAD等方式通过此加速域名请求资源时,也需携带鉴权请求头。
KMS加密文件配置
- 如果您的OBS桶是公有桶,CDN将无法读取桶中的KMS加密文件,从而导致回源失败,用户无法访问到加密文件。
- 如果您的OBS桶是私有桶,需要为“CDNAccessPrivateOBS”委托配置“kms:cmk:get”和“kms:dek:crypto”权限。如此,CDN才能读取OBS私有桶中的KMS加密文件并加速,配置过程详见OBS委托授权。