Skip to content

对象存储和高防CDN实现分析揭秘

对象存储和高防CDN实现分析揭秘

分享一个对象存储和高防CDN配合使用的话题,一般来讲,公有云厂商提供对象存储的服务之外,还会附带一些增值服务,这些服务是适配不同的应用场景的。什么意思?

对象存储本质上解决了海量存储的问题,但是数据不仅要可靠的存储,大部分情况数据还要处理才会有价值,所以一般公有云厂商还会有数据处理的服务,比如图像处理,类似缩略图,音视*频转码,视屏截帧。

其次,数据访问,也有特殊需求,比如一次上传,多次下载的场景,就配合使用CDN的服务,因为高防CDN的下载流量会比对象存储服务下载的成本要低。

什么是CDN?全称Content Delivery Network,本质上是部署在各地的边缘服务器,提供数据的就近访问体验,并有效降低数据服务器后端压力。

从技术实现来讲,CDN其实是后端服务器的缓存代理。

示意图:

公有云厂商提供对象存储服务的同时,还会提供cdn服务,因为这两个服务都是一家,所以自然方便协同操作。

数据上传:

数据上传走对象存储服务的域名(endpoint);

数据下载:

数据下载可以走对象存储服务的域名;

也可以走cdn域名下载;

对象存储开启cdn之后,客户端使用cdn服务的域名请求数据。如果数据不在cdn服务,cdn服务会自动使用对象存储Bucket域名回源,拉取数据到cdn的缓存下来。这样之后的压力全都卸载于cdn服务上。所以,从以上描述我们再一次体会:cdn其实就是简单的后端存储服务的缓存代理。如果业务要使用cdn的话,需要明确cdn服务的域名,对象存储的域名,将映射关系配置在cdn服务中(这一步其实是公有云厂商帮我们做好)。上传数据使用对象存储域名,读取数据使用cdn域名。

cdn回源使用方案

cdn在用户请求不命中的时候,需要回源后端拉取数据。那么不知道大家有没有思考过,CDN加速使用什么样的方案才能正确的获取数据呢?(因为S3协议是有权限校验的,也就是数字签名,S3 v4协议会把host签在数字身份校验中,也就是说,一般情况,cdn是无法直接转发的)。一般,对象存储服务和cdn配合实现有三种解决方案:

presign

授权读

公共读

presign

presign也叫预签名。这种方案是客户端把签名完全准备好,所有的签名元素和校验全都在query url里面。cdn这种场景下真的就是做一个纯粹转发代理。但presign有个限制是只能使用S3 V2版本签名,因为cdn回源时host会变,v4版本签名会签host,所以这种情况下签名校验会不通过。

Policy授权方案

这个是通用的方式,S3的Bucket支持细粒度的权限分配,也就是Policy策略。它允许把各种操作权限分配给各种指定的对象。

在公有云上,用户申请cdn服务的资源,主要做几个配置(公有云厂商帮你搞定的):

提供CDN域名与Bucket域名的映射关系

业务和CDN之间的认证方式

公有云厂商还会将业务方的Bucket授予cdn服务读权限。这样,当cdn未命中,cdn回源,就可以使用自己的账号向对象存储服务请求数据(因为开启CDN加速的时候,已经通过policy授权给cdn了,所以能读到数据)。

公共读方案

S3的Bucket是可以配置成公共读,也叫做匿名访问。随便任何客户端直接curl都能得到数据,所以cdn自然也能得到数据。这个是一个特殊方案,我们通常不会这样操作。这种方式可想而知,适用场景有限,因为数据安全是无法保证的。

相关推荐: 亚马逊有什么比较好的选品软件可以用?

厦门商城系统开发我经常使用的是卖家精灵软件进行选品,接下来我用工具来展示一下这个工具的选品功能。以及针对产品如何做出筛选。 一: 通过工具来选出利基市场和产品 首先我们打开工具,选择“选市场”页面: 图片来源卖家精灵 图片来源卖家精灵 点击展开过滤条件,通过搜…

    码刀科技(www.lekshop.cn)是国内知名企业级电商平台提供商,为企业级商家提供最佳的电商平台搭建(多种模式电商平台搭建:B2B/B2B2C/B2C/O2O/新零售/跨境等)、平台管理系统开发及互联网采购解决方案服务, 联系客服了解更多.

    电子商务网站建设的重要性和好处