作为云产品开发,玩好云产品、理解云产品的底层逻辑,也是重要功课之一。
本系列对 Amazon CloudFront 产品做一下基础配置体验与使用分析。

太长不看

  • CloudFront 是什么
  • CDN 原理与解决的问题
  • CloudFront 基础配置流程
  • tcpdump 抓包与分析
  • 结语

01/CloudFront 是什么

这里摘录一段亚马逊云科技官网的说明。CloudFront 是一项网络服务,它可以加快向用户分发静态和动态网页内容的速度,例如 html、css、js、image 文件。它通过一个遍布全球的数据中心网络(称为边缘节点)来传递您的内容。

当用户请求您通过 CloudFront 提供的内容时,请求会被路由到提供最低延迟(时间延迟)的边缘节点,以便以最佳性能交付内容。

CloudFront 直译过来是 “云前端”,它是一个 CDN 产品。

02/CDN 原理与解决的问题

原理
关于 CDN 原理,下述有一张比较形象的图用于解释(外部引用)

2024-05-14T14:49:00.png

从上述流程图可知:

  • 用户发起请求:用户向 http://www.test.com/1.jpg 请求资源。
  • DNS 解析:浏览器向 DNS 服务器发起域名解析,域名解析发现配置 CNAME 到 CDN 的调度域名,DNS 递归查询到 CDN 调度系统。
  • 调度决策:调度服务会将最佳接入节点(边缘节点)IP 返回。
  • 缓存判断:浏览器向 IP 发起请 1.jpg 访问请求,此时进入 CDN 接入节点,接入节点会检查其缓存是否有用户请求内容。
  • 缓存命中:如果内容存在于缓存中,接入节点直接将内容返回给用户。
  • 缓存未命中:如果内容不在缓存中,接入节点向源服务器发起请求,获取内容(其中可能会经过多层中间源节点,这里涉及请求收敛策略,进一步降低源站压力)。
  • 缓存并传输内容:接入节点将从源服务器获取的内容存储在缓存中,并将内容传输给用户。
  • 浏览器渲染:用户设备接收到内容,浏览器开始渲染页面。

解决的问题
概要的说,CDN 服务是为了降低服务提供方成本(资源成本、运营成本),提高用户体验。
因为其能通过大量就近接入节点,提供快速请求响应和资源缓存,并提供访问控制、边缘计算、安全等增值能力。

费用案例:
2024-05-14T16:49:59.png
2024-05-14T16:49:26.png
2024-05-14T16:54:29.png
以 100G 流量为例月消费,优惠后大约为 96.89 人民币,这通常比带宽费用要实惠,且比非 CDN 方案投入去运营服务器和带宽人工、技术成本要低,只需做一些配置接入即可。

03/CloudFront 基础配置流程

创建分配
2024-05-14T18:19:22.png

源站配置
2024-05-14T17:14:28.png

缓存配置
2024-05-14T17:14:57.png
2024-05-14T17:15:24.png

函数、WAF、备用域名等(都按默认不配置)
2024-05-14T17:16:15.png
2024-05-14T17:16:36.png

配置完毕后,分配了一个域名 d37z7ecg72nt7t.cloudfront.net(本篇直接使用该域名,后续篇章再配置自定义域名)
2024-05-14T18:10:58.png

04/tcpdump 抓包与分析

登录源站 sg.lukachen.work 所在服务器,抓包并写入 test.pcap 文件(把网卡出入的包全抓了,用 wireshark 再做过滤重组。注意!抓包会消耗大量 CPU 和硬盘资源,如果在现网服务器,需在负载低峰或经过较为合理的过滤参数与评估决策后执行)

tcpdump -i eth0 -w test.pcap

本地浏览器访问资源(也可以用 curl),发现响应 404,翻车了。。。排查原因

curl https://d37z7ecg72nt7t.cloudfront.net/1.txt

2024-05-14T17:49:46.png

登录服务器,终止抓包,并将抓包文件发送到本地 wireshark 分析

sz test.pcap -y

wireshark 包定位,1.txt 关键字过滤并使用 Follow TCP Stream 进行 TCP 包重组
2024-05-14T17:57:01.png

重组后可看到,请求头,通过分析根因是请求头中的 Host,我服务器并没有配
2024-05-14T18:02:44.png

去配置上,重载 nginx 配置
%0A.png

再请求,通啦!
2024-05-14T18:12:36.png

重复上述抓包动作,再看一下相关头部信息
2024-05-14T18:14:50.png

05/结语

好了,上述就是本次开篇的内容,并涉猎了 tcpdump 服务端抓包与 wireshark 重组分析。

CDN 是现代互联网基础设施的重要组成部分,尤其对于需要全球分发内容的大型网站和服务来说,CDN 是提高性能和用户满意度的关键技术。

在本章中,我们已经探讨了亚马逊云科技 CloudFront 基本概念、工作原理和基础配置。
在接后续章节中,我们将更深入了解 CloudFront 每个配置项的用法和抓包分析,进一步探讨如何针对不同的业务需求进行优化,并通过测试案例展示。

PS

加速原理图引用 https://cloud.tencent.com/document/product/228/2939

文章目录