AWS CloudFront可配合一些其他的服务一起使用,其中就包括了EC2和S3。遵循以下步骤可从一个S3存储段中设置一个CloudFront分布。
AWS CloudFront是一个用户用于加速静态或动态内容发布的内容发布服务,这里所谓的静态或动态内容主要包括媒体(图像或视频)文件、HTML、Java脚本程序、CSS文件以及其它。它的简洁用户界面可以帮助管理员设置CloudFront发布。但是,这一过程并不只是指向和点击那么简单。下面,就让我们来看看CloudFront的工作原理以及应当如何来部署它。
在CloudFront中,每一片的内容都被组织成为具有独特URL并可从网络被访问的发布。该服务可从边缘加速节点数据中心发布这一内容;目前,AWS在全球部署着52个边缘加速节点数据中心以供内容缓存使用。
AWS CloudFront支持两种形式的发布:流形式与下载方式。当一名用户使用CloudFront URL来请求静态内容时,该服务就会根据发出请求的IP以及缓存这一内容的数据中心的位置来找到距离这个IP最近的边缘加速节点数据中心。这样一来,所有来自于相同位置的请求就会减少延迟时间。
CloudFront可配合多个AWS服务使用,其中包括了简单存储服务(S3)、弹性计算云(EC2)、弹性负载平衡(ELB)以及Route 53。CloudFront的主要功能包括:
- 支持动态内容(减少未来请求的延迟时间)
- 支持自定义域名
- 设备检测(移动设备和网络设备)
- 支持Post/PUT以及其它的HTTP协议
- 自定义错误响应
- 支持cookies、查询字符串以及其它
链接一个CloudFront发布至S3
为了从一个S3建立一个CloudFront网络发布,你将需要一个S3存储和一个可公开访问的对象(如图1)。
图1 S3存储段以及一个可公开访问的对象
然后,可遵循以下步骤:
1. 转至CloudFront并创建一个网络发布
图2 选择初始域名存储段
2. 在初始域名栏位,选择存储段名称,并在限制存储段访问中选择“No”。这样做可以限制只能从CloudFront访问对象,所以就没有人可以从S3访问这个存储段了(如图2)。
3. 使用以下参数配置缓存设置:
- 路径模式:默认。针对特定对象应用缓存处理。如果选择了默认值(*),它就会把所有请求发送到选中的存储段中。
- 浏览器协议策略:HTTP 和 HTTPS。如果用户想要求CloudFront允许浏览器使用HTTP或HTTPS协议来访问用户的网络内容。
- 允许的HTTP方法:GET,HEAD。选择用户希望这一缓存操作所允许的HTTP方法列表。
- 转发头文件:None。如果用户希望根据请求中发送的头文件来缓存内容,那么就可以使用它。理想情况下,保持“None”项是可以提高性能的。
- 对象缓存:使用初始缓存头文件。当你的初始服务器将增加一个缓存控制头文件以便于控制对象被保存在CloudFront缓存中多长时间时,可选择这一选项。
- 转发cookies:无。如果用户希望CloudFront在它发送给初始服务器的请求中囊括所有的用户cookies,那么就可以指定“None”。否则,可指定你希望包含在内的cookies。选择“None”,就可配置CloudFront不要发送cookies。
- 转发请求字符串:不。为了根据URL中的请求字符串获得不同版本的对象;设置“Yes”选项以便于在发送给初始服务器的请求URL中包含请求字符串。
- 限制浏览器访问:No。在理想情况下,选择“yes”以提高安全性。选择“no”可让每个人都能够查看内容。限制浏览器访问意味着要求使用者为安全访问而创建一个签名的URL(如图3)。
图3 限制浏览器访问
4. 接下来,是设定发布设置
- 价格类别:使用所有的边缘加速节点数据中心。这一操作可以让用户自行选择愿意为CloudFront服务支付的***价格。
- CNAMEs:空白。这一操作可以允许用户为对象使用URL而不是CloudFront分配的域名。因此,用户可以指定一个自定义URL,而不是CloudFront发布。
- SSL证书:默认CloudFront。这一项可以让管理员上传他们自己的证书。用户还可以保留其它的选项作为默认值,并创建发布(如图4)。
图4 默认的CloudFront设置。
一旦创建了发布,那么你将有一个CloudFront URL,例如:"http://d3ptzllcr53x1i.CloudFront.net"。然后,就可以使用这个URL来访问对象了。