分发个人化动态 Web 内容,无需额外花费,也无需写入新代码

一般的网站通常由静态内容和动态内容组成。静态页面包含图像或样式表;动态页面或应用程序生成的内容则包含您网站中针对每个浏览者提供的个性化元素。以前,开发人员需要提升动态内容的性能和可靠性使,选择有限,因为传统 CDN 提供的解决方案费用昂贵、难以配置并且管理困难。


earth-networks-thumbnail
video-thumb-dynamic-content-02

使用 Amazon CloudFront 服务动态内容时,除现有 Amazon CloudFront 数据传输和请求廉价费用外,不存在额外费用,也无需长期使用承诺。既不需要预付费与月度平台使用费,也无需高价雇佣顾问来帮助完成配置。

开始免费使用 AWS

创建免费账户

AWS 免费套餐包括 50GB 的数据传出以及 2000000 个针对 Amazon CloudFront 的 HTTP 和 HTTPS 请求。

查看 AWS 免费套餐详细信息 »

下载 AWS 赞助发布的 Frost & Sullivan 白皮书,了解 amazon.com 选择 Amazon CloudFront 来交付绝大部分全球 CDN 流量的原因。下载 Amazon CloudFront CDN 白皮书

Amazon CloudFront 提供了简单且经济划算的方法,用于提升整个网站的性能、可靠性和全球覆盖率,适用于静态内容和网站中因最终客户而异的动态部分。

Amazon CloudFront 可与 Amazon EC2 中的动态 Web 应用程序或在 AWS 外部运行的来源服务器无缝配合,无需任何自定义编码或专有配置,因而使得这项服务非常易于配置和管理。您可以通过单个 Amazon CloudFront 分配提交您的整个网站,同时包含静态内容和动态(或交互)内容在内。这意味着,您可以继续对您的整个网站使用一个域名(如 www.example),而无需区分静态和动态内容,或在您网站上管理多个域名。

Amazon CloudFront 能让您包含查询字符串参数或 Cookie,以助于能针对每个浏览者来自定义网页。您还可以根据您网站上的 URL 样式,针对您的 Web 分配来配置多个缓存操作。这些缓存操作使您能够粒度化控制 Amazon CloudFront 如何缓存网站的不同部分。

以下更详细地描述了这些功能:

缓存行为是您根据文件扩展名、文件名或网站上 URL 路径的任意部分(如 *.jpg)为给定 URL 模式配置的规则集。您可以为 Web 分配配置多种缓存行为。Amazon CloudFront 会将传入的浏览者请求与您的 URL 模式列表进行比对;若匹配,该服务将遵循您为这一 URL 模式配置的缓存行为。每一缓存行为可以包含下列 Amazon CloudFront 配置参数值:原始服务器名称、浏览者连接协议、最短有效期、查询字符串参数,Cookie、以及私有内容的可信签署人。

Amazon CloudFront 节点可以取到用户代理标头的值,用来检测所有入站请求的设备类型。Amazon CloudFront 可以确定终端用户请求的来源是桌面电脑、平板电脑、智能电视还是移动设备,然后将该信息以新 HTTP 标头的形式发送给原始服务器,即 Amazon EC2、Elastic Load Balancing 或自定义原始服务器。原始服务器可以使用设备类型信息根据新的标头来生成不同版本的内容。Amazon CloudFront 还会在该节点缓存不同版本的内容。

Amazon CloudFront 还可以检测出终端用户访问内容时所在的国家/地区。然后 Amazon CloudFront 可以将与国家/地区相关的信息放在新的 HTTP 标头中发送到自定义原始服务器。原始服务器可以为不同国家/地区的用户生成不同版本的内容,同时在节点缓存这些不同的版本,以便之后服务于来自相同国家/地区访问网站的用户。

可以对 Amazon CloudFront 进行配置,使其可以转发源标头值,这样一来源服务器(Amazon S3 或自定义源)可以通过 CORS(跨源资源共享)支持跨源访问。CORS 定义在一个域中加载的客户端 Web 应用程序与另一个域中的资源交互的方式。

您可以为 Amazon CloudFront 下载分配来配置一或多个原始服务器。原始服务器可以是 AWS 资源,如 Amazon S3、Amazon EC2 或 Elastic Load Balancing,或者 AWS 以外的原始服务器。Amazon CloudFront 将浏览者请求的 URL 与您为分配来配置的规则进行比对,以得出使用那些原始服务器应答请求内容。使用该功能您可以按照其设计初衷灵活使用各种 AWS 资源(例如,将 Amazon S3 用于存储,将 EC2 用于计算等),无需创建多个分配,也无需在网站上管理多个域名。您还可以继续使用已设置的来源服务器,而不必移动数据或重新部署应用程序代码。

Amazon CloudFront 利用您对文件设置的有效期(通过缓存控制标头),确定是否检查原始服务器上有无该文件的更新版本。如果您认为您的文件将频繁更新,可以为文件设置较短的有效期。Amazon CloudFront 可以接受最短为 0 秒的有效期(此时 Amazon CloudFront 会与原始服务器重新验证每个浏览者请求)。Amazon CloudFront 还遵循特殊的缓存控制指令,如 private 和 no-store 等;在分发无法在边缘站点缓存的动态内容时,这些指令往往非常有用。

查询字符串参数通常用于返回来源服务器上运行的脚本所生成的自定义内容。您可以选择配置查询字符串,转发该字符串到原始服务器,并在缓存数据元的唯一标识中包含该字符串。您可为配置每一种特定缓存行分别启用此功能。因此,查询字符串参数可以帮助您为各个浏览者自定义网页,同时又能充分利用 Amazon CloudFront 节点上缓存内容提高性能并扩大规模效益。

Amazon CloudFront 支持分发用 HTTP cookie 自定义或个性化的动态内容。要使用此功能,您需要指定是否希望 Amazon CloudFront 将您的部分或全部 Cookie 转发到自定义原始服务器。您还可以将通配符用于指定 cookie 名称,以转发匹配一种字符串格式的多个 cookie。然后,Amazon CloudFront 会在识别缓存中的唯一数据元时考虑到转发的 Cookie 的值。这样,您的最终用户既可以通过 Cookie 享受专为他们个性化的内容,又能享用 Amazon CloudFront 带来的性能优势。

您可以使用 Amazon CloudFront 转发所有(或白名单中的)请求标头给原始服务器。这些标头包含的信息包括访客使用的设备或者访问内容时访客所在的国家/地区。您可以配置 CloudFront 根据标头中的值来缓存内容,因此可以将自定义的内容交付给观看者。例如,如果您在相同的 Web 服务器上托管了多个网站,就可以配置 Amazon CloudFront 将托管标头转发给您的源。当您的源根据托管标头中的值返回了不同版本的相同对象,Amazon CloudFront 将根据这些值分别缓存各个对象。

自定义 SSL 证书支持允许您使用您自己的域名和您自己的 SSL 证书通过 HTTPS 传输内容。除了更低的延迟性和更高的可靠性以外,还通过使用您自己域名的 SSL 连接为访问您的网站访客提供 CloudFront 的安全优势。您也可配置 CloudFront 来使用针对原始提取的 HTTPS 连接,这样您的数据就会从您的起点到您的最终用户实现端对端加密。配置自定义 SSL 证书支持很简单;您无需学习任何专用代码或者雇佣顾问为您配置。首先访问 CloudFront Custom SSL 详细信息页面并选择最符合您要求的自定义 SSL 功能。

您可以预置 SSL/TLS 证书,并在几分钟内将其与 CloudFront 发布版关联起来。只需使用全新的 AWS Certificate Manager (ACM) 预置证书,然后单击几下鼠标将其部署到您的 CloudFront 发布版,之后让 ACM 为您管理证书更新即可。借助 ACM,您可以预置、部署并管理证书,且无需支付额外费用。

您可以通过 CloudFront 从根域(即您的网站的“域顶点”)传输内容。例如,您可将 http://www.example.com 和 http://example.com 配置为指向同一 CloudFront 分配,却不会遭受管理重定向服务的性能惩罚或可用性风险。若要使用此功能,您需要创建 Amazon Route 53 别名记录以将您的根域映射到 CloudFront 分配中。

您可以配置 Amazon CloudFront 使其包含终端用户请求的协议(HTTP 或 HTTPS),此项目作为缓存键的一部分用于唯一识别缓存中的对象。这允许您根据终端用户访问内容时使用的协议来自定义内容。

Amazon CloudFront 支持以下 HTTP 方法:GET、HEAD、POST、PUT、DELETE、OPTIONS 和 PATCH。这意味着您可以改进具有以下元素的动态网站的性能:Web 表单、评论框和登录框、“添加到购物车”按钮,或者其他从最终用户上传数据的功能。还意味着您现在可以使用一个域名通过 CloudFront 交付您的整个网站,从而加快网站各部分的下载和上传速度。在默认情况下,对 GET 和 HEAD 方法的响应会缓存在 CloudFront 边缘节点。您可以选择配置 Amazon CloudFront 分配,以缓存 OPTIONS 请求的响应。其他 HTTP 方法(POST、PUT、DELETE 和 PATCH)不会被缓存,只会按 Amazon CloudFront 边缘节点代理到原服务器。您可能需要使用 AWS 管理控制台或 CloudFront API 针对您的现有 CloudFront 分配启用其他 HTTP 方法的支持。

此外,当您配置 Amazon CloudFront 以分发动态网站时,可使用全套的 Amazon CloudFront 功能。包括服务私有内容、确保内容的安全分发、对象版本控制和缓存失效、使用报告和监控的访问日志等。要了解更多有关所有 Amazon CloudFront 功能的信息,请参阅 Amazon CloudFront Developer Guide

Amazon CloudFront 还提供服务等级协议 (SLA),其中规定,如果在一个计费周期内,客户的月度正常运行时间百分比低于我们的服务承诺,我们将按协议退还差额。更多信息,请查阅 Amazon CloudFront SLA 页面。

除此页面外,您可能有兴趣的页面包括 Amazon CloudFront 产品页面和 Amazon CloudFront Developer Guide

Amazon CloudFront 已实施多个性能优化选项,加速从原点向最终用户交付整个网站(包括动态内容和静态内容)。这些性能改进包括维持与原点一致性连接以及其他加速动态内容交付的网络路径优化选项。每个最终用户的访问请求都被路由到离他们最近的 Amazon CloudFront 节点(从降低互联网传输延迟角度而言)。而后,他们的请求会转发回您在 AWS 中运行的来源服务器,并且 Amazon 会监控这一连接并优化其性能。

Amazon CloudFront 也会重用 Amazon CloudFront 节点和源服务器之间的现有连接,来降低所有原始请求连接过程延迟。另外,也会采取其他连接优化措施,避免互联网性能瓶颈,并充分利用边缘站点和浏览者之间的可用带宽。这意味着 Amazon CloudFront 可以加速您的动态内容分发,让您的网站浏览者获得一致可靠而又个性化的 Web 应用程序浏览体验。Amazon CloudFront 还会将应用到下载动态内容请求上的性能优势也应用到上传请求。

有关 Amazon CloudFront 性能的 Frost & Sullivan 白皮书AWS 最近委托 Frost & Sullivan 撰写 Amazon CloudFront 性能与其他顶级 CDN 相比较的白皮书。此白皮书由 CDN 专家 Dan Rayburn 撰写,其中提供了性能比较数据,最终结论是在数次延迟性能测试中,Amazon CloudFront 在顶级 CDN 中都是最快速的,并且在所有测试中,其平均延迟性能都高于其他等级 CDN。此白皮书还提供了在 Amazon.com 站点上运行的测试结果(其他几个顶级 CDN 上也运行了性能测试),并解释 Amazon.com 站点上的大部分 CDN 流量目前都由 Amazon CloudFront 进行处理的原因下载白皮书

Amazon CloudFront 与 Amazon EC2 中的动态 Web 应用程序或 AWS 外运行的原点无缝配合,无需任何自定义编码或专用配置,从而使此服务易于配置和管理。您可以通过单个 Amazon CloudFront 分发您的整个网站,其中包含静态内容和动态或交互内容。这意味着,您可以继续对您的整个网站使用一个域名(如 www.example),而无需区分静态和动态内容,或在您网站上管理多个域名。

您可通以过 AWS 管理控制台便捷的图形用户界面与 Amazon CloudFront 互动。此外,通过简单的 API 调用,您就能开始通过 Amazon CloudFront 网络从 Amazon S3 存储段或 Amazon EC2 实例或者其他原始服务器分配内容。任何现有配置更改,几分钟内就能传遍整个全球网络,并即刻生效。此外,Amazon CloudFront 免除您与销售人员商议之烦恼,您全部网站内容启动分发过程迅捷高效。

在 AWS 管理控制台中配置 Amazon CloudFront

console

Amazon CloudFront 也是专为与其他 Amazon Web Services 配合使用而设计的。将 Amazon EC2 用作 Amazon CloudFront 来源服务器,您可以在配置和管理整个 Web 应用程序的分发时使用相同工具集,免除多余开销。此外,与 Amazon CloudFront 相同,Amazon EC2 也提供按需付费定价模式。持续监控 Amazon CloudFront 节点和 Amazon EC2 数据中心之间的传输路径,优化性能和可用性。要么快速检测和修复这些网络路径上的任何问题,要么自动路由浏览者到其他 Amazon 受控网络通道,由此而大大降低问题通道对用户浏览应用的影响。

这里的 Web 应用程序都是高度个性化的(例如,推荐项目),且快速发现产品(通过搜索和浏览)具有重要意义。在这里,应用程序性能的改进会直接转化为收益和最终用户忠诚度。

因最终用户的关注面较窄,新闻和体育应用程序需根据每一名最终用户进行定制。不过,此内容可以短时间缓存(例如,几秒钟),以便帮助最终用户提升可扩展性和性能。

这里的 Web 应用程序需要关注某一个地理区域,以便根据最终用户定制内容。因内容类型的不同,在节点缓存的时间长短各异。例如,每个小时一次的天气更新可以缓存一小时,而紧急天气警报可缓存几秒钟,从而确保最终用户始终掌握最新信息。

目标广告是基于 cookie 或查询字符串数据即时计算的,广告商一般需要以低延迟性投放广告。Amazon CloudFront 可帮助满足此类应用程序所需的性能和个性化需求。

这里的应用程序也拥有个性化和交互性的内容,融合了用户简介、偏好、好友以及活动等。这些特性带来的是需要经常访问原始服务器的长尾内容。CloudFront 的网络和路径优化选项有助于更快地分发此类内容,从而帮助社交媒体应用程序运行得更加流畅。

Earth Networks 向消费者和企业提供天气和大气数据。数百万用户使用该公司的 WeatherBug 产品,其中包括移动和桌面应用以及网站 www.weatherbug.com

Earth Networks 使用内容分发网络 (CDN),所以他们能够以极低的延迟性与高性能响应时间,快速向用户提供基于个性化网页的动态内容。尤其,他们需要能够向最终用户提供当地信息,并且需要一个可让他们实时地调整存活期、查询字符串以及 cookie 信息等内容的 CDN,以便将所有信息返回原始服务器而只抽取用户需求的信息。

“作为社区层级的气象信息提供商,我们绝不会考虑使用无法为我们提供动态内容和优化能力的 CDN,诸如查询字符串、cookie 和低 TTL 等。我们的使用案例涵盖了 CloudFront 提供的整组功能”,Earth Networks 的 WeatherBug 部 Web 和桌面开发主管 Andy Rosenbaum。“我们使用之前的 CDN 时遇到的其中一个难题是,我们需要特别针对该 CDN 编写代码,这使我们的开发成本更高。我们能够达到相同的性能水平,且无需编写自定义代码。我们看到基于同等的性能来跟之前的 CDN 做比较,成本应能减少 50%,并且我们预期,使用 CloudFront 支持的 Amazon EC2 原始实例时,成本还将下降 20%。

您可以访问 Earth Networks 网站,网址为:www.earthnetworks.com,或查看公司的 WeatherBug 产品,网址为:www.weatherbug.com

2012 年 8 月 5 日,美国宇航局的好奇号火星探测器在这个红色星球上着陆,整个着陆经过是通过 mars.jpl.nasa.gov 网站提供给观众的。NASA JPL (喷气推进实验室)使用 Amazon CloudFront 分发整个着陆信息。这包括常规的带有博客和状态更新的 HTTP 网站内容、来自火星的静态图片以及交互式实用游戏引擎下载内容,访客可以在家中驱动火星探测器并与来自火星的实时数据实时交互以参与其中。

性能和可扩展性对于 JPL 非常重要,他们采用了多个 Amazon CloudFront 功能,如查询字符串、低 TTL、多原点和多存储操作,来协助分发整个 http://mars.jpl.nasa.gov/ 网站,同时继续将其他 AWS 服务作为网站上其他类型内容的原始服务器。

NASA/JPL 的首席技术官 Tom Soderstrom 告诉我们,因为存在太多的未知性,他们最终使用了 CloudFront 的许多可扩展性和实时调整功能。他进一步告诉我们,在着陆期间,好奇号的着陆比奥林匹克运动会更受关注,服务的使用流量也更大,因此调整功能确实非常必要,并且效果非常好。

您可以访问该网站,网址为:http://mars.jpl.nasa.gov/

Amazon CloudFront 正在使其他 CDN 以高价出售的高级创新型内容分发功能变得更廉价、更容易使用。除现有 Amazon CloudFront 数据传输和请求廉价费用外,不存在额外费用,也无需长期使用承诺。既不需要支付预付费和月度平台使用费,也无需高价雇佣顾问来帮助完成配置。

您只需在此网站上注册并在几分钟内创建一个服务于您的静态和动态内容的 Amazon CloudFront 分配就可以立即开始使用。如果您希望,还可以与 Amazon CloudFront 销售团队的成员交流,讨论您使用量和使用承诺 12 个月或更长时期的月度用量等级这一选项来进一步节省资金的方法。您通过提交以下网站上的表格来联系 Amazon CloudFront 销售团队,网址为:http://aws.amazon.com/cn/contact-us/aws-sales/。

Amazon CloudFront 还提供服务等级协议 (SLA),其中规定,如果在一个计费周期内,客户的月度正常运行时间百分比低于我们的服务承诺,我们将按协议退还差额。更多信息,请查阅 Amazon CloudFront SLA 页面。

仅按使用情况付费。没有最低收费。使用 AWS 简单月度成本结算器估算每月的账单。

您可以在我们的定价页面查看 Amazon CloudFront 定价,网址为:http://aws.amazon.com/cn/cloudfront/pricing/。