CloudFront CDN简介
Amazon CloudFront是一种全球内容分发网络(CDN)服务,可以安全地以低延迟和高传输速度向浏览者分发数据、视频、应用程序和API。
那么什么是内容分发网络(CDN)呢?
CDN的全称是Content Delivery Network,即内容分发网络。基本思路是解决传统情况下用户访问网站的时候直接访问源服务器,而利用CDN你访问的是位于全球各地的分发网络(边缘站点),从而达到更快的访问速度和减少源服务器的负载。
举个不是十分恰当的例子,苹果公司的总部在美国,但它有位于全世界不同地方的苹果零售店,为就近的客户提供服务。并且每一个零售店的内容都是相近的,都是由美国总部“分发”过来的。所以每次你想去购买最新的iPhone的时候,你不需要飞到美国去购买,而去离自己最近的苹果零售店就可以了!
在没有CDN的情况下,位于全球各地的用户都需要跨越长距离的地理位置访问位于某一个地方的源服务器。一方面这样的情况下网络延迟是一个非常严重的问题,另一方面也会对源服务器的负载有很大的影响。
而在有CDN的情况下,用户不直接访问源服务器,而是访问位于全球不同地方的Edge站点。这些边缘站点都保存了源服务器的文件缓存,也离用户最近,因此能快速地提供用户所需要的信息内容。
目前基本所有大型的网站和有全球业务的企业都用到了CDN技术,国内CDN技术比较出名的是蓝讯和网宿,国际上最出名的毫无疑问是Akamai。
现在很多云计算公司也提供CDN服务,其中包括阿里云,腾讯云,当然还有亚马逊AWS。
为了以更低的延迟向最终用户提供内容,Amazon CloudFront 使用了一个包含 216 个节点(205 个边缘站点和 11 个区域性边缘缓存)的全球网络,这些节点遍布 42 个国家/地区的 84 个城市。Amazon CloudFront 边缘站点位于: (数据更新至2020年1月31日,数据如有更新请查看此页面)
Amazon CloudFront 在以下地区拥有边缘站点:
知识点
- 边缘站点(Edge Location):边缘站点是内容缓存的地方,它存在于多个网络服务提供商的机房,它和AWS区域和可用区是完全不一样的概念。截至2018年中,AWS目前一共有100多个边缘站点。
- 源(Origin):这是CDN缓存的内容所使用的源,源可以是一个S3存储桶,可以是一个EC2实例,一个弹性负载均衡器(ELB)或Route53,甚至可以是AWS之外的资源。
- 分配(Distribution):AWS CloudFront创建后的名字
- 分配分为两种类型,分别是
- Web Distribution:一般的网站应用
- RTMP (Real-Time Messaging Protocol):媒体流
- 你不只是可以从边缘站点读取数据,你还可以往边缘站点写入数据(比如上传一个文件),边缘站点会将你写入的数据同步到源上
- 在CloudFront上的文件会被缓存在边缘节点,缓存的时间是TTL(Time To Live)。文件存在超过这个时间,缓存会被自动清除
- 如果在到达TTL时间之前,你希望更新文件,那么你也可以手动清除缓存,但你将会被AWS收取一定的费用