欢迎访问深圳敏捷云计算科技有限公司!

【云 · 分享】Agilewing CDN定制化服务,您的不二之选(CDN系列之四)

2020-11-25 原创文章 作者:伍航恩
Agilewing CDN

2020年初的新冠疫情改变了我们的生活习惯,居家办公、远程会议、在线上课、直播带货,这些疫情中保障我们生活正常运转的场景相信你都不陌生。在这种流量爆增的关键时刻,怎样能保证网络稳定,让用户有好的体验呢?今天让我们来告诉您正确的云应用部署。

好的用户体验可以有效地增加客户转换率和收入,Agilewing的定制化服务可帮助您推动高效率的运营模式、提升客户体验并降低运营成本。

Agilewing定制化服务

Agilewing定制化服务

Agilewing定制化服务拥有绝佳的使用者体验:CDN加速并简化图片传输,加强使用者体验。

图像优化
1图像优化

现在Agilewing为您推荐一款组合,CloudFront+Lambda@Edge+S3,可以对请求图片进行切图操作。

很多应用网站或APP都对图片有一定的格式大小要求,尤其是图片网站。当用户搜索图片时,网站会把匹配的图片以缩略图的形式返回给浏览器,当用户点击图片时浏览器才会向后端请求原图或特定大小的图片。当用户对图片的需求多时,如下载原图、下载原图百分之八十大小的缩减图、下载原图后缀为 .png 的图片、下载原图百分之五十且后缀为 .jpg 的图片、下载附有水印的原图等等。如果对每种需求的图片进行预先处理然后保存下来,那图片的数量和储存成本将会非常之大。

在此情景中CloudFront + Lambda@Edge +S3的解决方案能帮您完美解决问题,利用AWS全球内容分发服务(CloudFront)的优势,缓存用户经常访问的图片,不仅让用户缩短加载图片的时间,还能缓解服务器端对请求图片的压力,进而节省流量开销;Lambda@Edge函数可以对那些特定格式、大小的图片请求进行切图操作,转换成用户请求的图片,并把转换好的图片保存到S3中,方便下次直接使用。

架构图如下:

CloudFront+Lambda@Edge+S3架构图
CloudFront+Lambda@Edge+S3架构图
及时的日志洞察和管控
2及时的日志洞察和管控

Agilewing开发的API解决方案能帮助开发人员快速存取 CloudFront的日志与分析,帮助企业轻松获取数据洞察,做出商务决策分析。Agilewing为您推荐一个关于CloudFront日志数据收集与分析的解决方案。AWS CloudFront已经支持实时日志,解决了日志生成延迟问题,可帮助开发人员快速存取CloudFront的日志与分析。

用户访问Cloudfront所产生的日志,以流的形式传输到Kinesis Data Stream中,这里为什么使用日志流呢?

1.日志流包含了更详细的数据信息。

2.这些日志是实时地传输到 Kinesis Data Streams,使我们可以轻松地监控CDN性能并且可以快速响应一些故障事件。

Kinesis Data Streams 是一种可大规模扩展且持久的实时数据流服务,可以每秒连续捕获大量的数据。它是完全托管的,不需要关心任何基础措施。当日志流数据进入Kinesis Data Streams之后,使用Kinesis Firehose读取Data Streams里面的日志数据,以1MB或60秒为缓冲然后写入到S3 Bucket中。S3是托管的对象存储服务,可以储存任意数量的数据。Amazon S3 可达到 99.999999999%(11 个9)的持久性,保证了日志数据基本上不会丢失。而且S3费用很低,适合存放大量的数据。然后使用Glue服务爬虫程序,捕获S3中日志的数据结构并生成数据库表,有了这个表,就可以使用Athena查询想要的指标了。

Amazon Athena 是一种交互式查询服务,让我们轻松使用标准 SQL 分析 Amazon S3 中的数据。最后,利用Superset这个可视化平台,管理员可实时地查看需要的指标,并且制作图表数据,以方便分析问题。

该方案的架构图如下:

方案的架构图
及时的日志洞察和管控
3保护资产

通过Agilewing防盗链方案控制对 CDN 资源的访问,从而保护企业的资产与内容,还能防止产生不必要的流量与成本。

“盗链”是互联网用语。通常指未经源网站允许的情况下,通过超链接引用源网站内容,如图片、视频等,而盗链行为会造成受害网站数据泄露以及经济损失。

在现代互联网公司的业务中,防盗链技术扮演者已扮演着越来越重要的角色,例如:网站通常会对内容进行防盗链处理,仅对特定用户开放,而没有权限的用户即使获得链接地址,也无法访问该链接所指向的内容。

目前,互联网上常见盗链过程如下如所示:

互联网上常见盗链过程

从上图可看出在盗链过程中,盗链网站自身不提供全部网页所需内容,部分网页内容来自受害网站。在这过程中,受害网站实际承载盗链网站的部分业务流量和压力,而盗链网站则盗取该部分数据流量和计算资源甚至客户流量用以支撑自己的业务。受害网站则需要承担被盗取流量和计算资源所带来的运营成本,从而造成受害网站的经济损失。

同时,由于盗链的过程具有隐秘性,最终用户往往难以及时察觉盗链行为,造成最终用户的经济损失。

对于盗链行为的对应防盗链技术方案——基于Referer的防盗链解决方案,根据HTTP标头决定是否允许访问。

利用AWS服务实现referer检查

方案一:通过WAF实现referer检查

WAF是由AWS提供的应用防火墙功能。WAF配合CloudFront,ALB或API Gateway使用,支持通过访问控制列表对Web请求进行过滤,实现拒绝盗链请求的功能。WAF相当于在CloudFront,ALB或API Gateway前部署一套防火墙,其架构如下图所示:

架构图
方案二:使用Lamdba@Edge实现复杂条件下

在某些应用场景下,用户需要配置复杂的访问控制规则。而图形界面往往难以适应复杂访问控制规则的需要。此时Lamba@Edge与CloudFront配合使用,可以有效应对复杂访问策略带来的挑战。

Lambda@Edge是AWS利用Lambda无服务器计算服务结合CloudFront内容分发网络,在边缘站点运行Lambda代码,从而在边缘站点实现动态Web应用程序的技术。

由于Lambda@Edge通过编写代码实现对Web请求的精确过滤,因此可以为用户提供更加灵活的过滤条件和数据处理方式。

Lambda@Edge功能支持使用Lambda在CloudFront边缘节点对HTTP请求和响应进行按需调整。当CloudFront收到用户请求,CloudFront从源端请求资源,CloudFront接收到源端反馈资源和CloudFront即将向用户返回资源时,均支持调用Lambda对HTTP请求或响应进行按需处理。

下图为利用Lambda@Edge调整HTTP请求和响应:

利用Lambda@Edge调整HTTP请求和响应
方案三:利用URL验证提升数据访问安全性

使用HTTP标头字段实现防盗链可以应对常见的盗链情形。但盗链者仍然可以通过更加复杂的手段如客户端脚本去生成一个具有合法HTTP标头的请求,从而获取访问文件的能力。

为了进一步提升文件访问的安全性,可通过对请求的URL添加一个具有时效性的随机验证码作为签名。用户通过签名的地址访问相关资源,系统在后台对签名信息进行比对,确认签名正确性和时效性,从而识别当前请求是否有权访问对应文件。

AWS CloudFrontSigned URL提供一整套签名管理方案,包括签名URL生成API,与CloudFront集成的签名验证机制,从而简化资源访问控制。

AWS CloudFrontSigned URL

如上图所示,客户端在访问CloudFront资源前,需要通过签名URL生成器获取经签名的URL地址。AWS签名URL生成器支持包括Java,C#,PHP,Perl等多种开发语言。开发人员可以根据需要选择自己熟悉的语言完成签名URL生成工作。

当CloudFront收到资源请求时,会自动识别URL中签名部分是否正确,是否仍在有效期内,从而确定是否返回对应资源。

开发人员还可以选择使用签名Cookie用于简化指定用户访问CloudFront资源的过程。相比签名URL,签名Cookie可以授予制定用户访问多个资源的能力,而无需为每个独立的资源生成签名URL。

部分场景中由于实际业务需要,使得资源访问URL难以修改时,也可以使用签名Cookie实现资源访问授权。

开发人员可以通过在生产签名URL或签名Cookie时增加资源请求客户端身份验证功能来进一步提升资源访问的安全性。例如当收到生成签名URL请求时,检查资源请求客户端是否有登陆操作并对Cookie进行验证,从而使得资源访问过程更加安全。

及时的日志洞察和管控
4降低成本

AgilewingAPI预热解决方案可以与企业应用程序直接整合对接。当上线新业务时,企业提前预热相关文件到 CloudFront 边缘节点,不但能提升用户使用体验,还大大降低了存储和传输文件的成本。

相信大家对CloudFront的预热很感兴趣,Agilewing将为大家更进一步的说明。

客户使用AWS全球内容分发服务(CloudFront)进行内容缓存,一般情况下,当用户第一次访问特定文件时,CloudFront将从origin请求资源,然后把资源缓存在边缘节点,如果客户有些大文件也需要在边缘节点缓存的话,用户第一次访问需要很长时间,会造成用户体验效果不佳,甚至可能导致origin服务器上出现性能问题。

Cloudfront 预热方案能解决上面的问题,当客户有新业务需要上线,可提前预热相关文件,通过将文件预取到CloudFront边缘节点,使用户第一次访问时可以很快的下载读取文件,大大降低延迟。

架构图如下:

架构图

高效率的运维模式:易于管理,快速获得有用的数据,进行商务分析。

场景架构图

Agilewing, 您的不二之选

Agilewing, 您的不二之选
Agilewing, 您的不二之选
Agilewing, 您的不二之选
Agilewing, 您的不二之选
Agilewing, 您的不二之选
Agilewing, 您的不二之选