AWS 云
免费试用 Amazon CloudFront

Amazon CloudFront 全球边缘网络

为了以较低的延迟向最终用户分发内容,Amazon CloudFront 使用的全球网络在 26 个国家/地区的 58 个城市中部署了 119 个接入点(108 个边缘站点和 11 个区域性边缘缓存站点)。Amazon CloudFront 在以下地区拥有边缘站点:

Amazon CloudFront 全球边缘网络

边缘站点:弗吉尼亚州阿什本 (3 个);佐治亚州亚特兰大 (3 个);马萨诸塞州波士顿;伊利诺伊州芝加哥 (2 个);德克萨斯州达拉斯/沃思堡 (4 个);科罗拉多州丹佛;加利福尼亚州海沃德;佛罗里达州杰克逊维尔;加利福尼亚州洛杉矶 (3 个);佛罗里达州迈阿密 (2 个);明尼苏达州明尼阿波利斯;魁北克省蒙特利尔;纽约州纽约 (3 个);新泽西州纽瓦克 (2 个);加利福尼亚州帕洛阿尔托;宾夕法尼亚州费城;亚利桑那州菲尼克斯;加利福尼亚州圣何塞;华盛顿州西雅图 (3 个);印第安纳州南本德;密苏里州圣路易斯;安大略省多伦多

地区性边缘缓存站点:弗吉尼亚、俄亥俄、俄勒冈

边缘站点:荷兰阿姆斯特丹 (2 个)、德国柏林、爱尔兰都柏林、德国法兰克福 (6 个)、芬兰赫尔辛基、英国伦敦 (5 个)、西班牙马德里 (2 个)、英国曼彻斯特、法国马赛、意大利米兰、德国慕尼黑、意大利巴勒莫、法国巴黎 (3 个)、捷克共和国布拉格、瑞典斯德哥尔摩 (3 个)、奥地利维也纳、波兰华沙、瑞士苏黎世

地区性边缘缓存站点:德国法兰克福、英国伦敦

边缘站点:印度班加罗尔;印度金奈(2 个);中国香港(3 个);马来西亚吉隆坡;印度孟买(2 个);菲律宾马尼拉;印度新德里;日本大阪;韩国首尔(4 个);新加坡(3 个);中国台湾台北(2 个);日本东京(8 个)

地区性边缘缓存站点:印度孟买、新加坡、韩国首尔、日本东京

边缘站点:墨尔本;珀斯;悉尼

地区性边缘缓存站点:悉尼

边缘站点:巴西圣保罗 (2 个);巴西里约热内卢 (2 个)

区域性边缘缓存站点:巴西圣保罗

边缘站点:南非约翰尼斯堡

James Hamilton
3:54
re:Invent 2016: Introduction to Amazon Global Network and CloudFront PoPs with James Hamilton
James Hamilton

动态内容和自定义内容

您可以使用 Amazon CloudFront 分发所有内容,包括因最终用户而异的动态网站内容。使用 CloudFront,您可以基于网站的 URL 路径模式配置多个来源服务器和多种缓存行为。您也可以将最低有效期限 (也称为“生存时间”或 TTL) 配置为 0 秒,根据使用的设备和最终用户访问内容所在的国家/地区 (地理定位) 检测用户请求,并指定要转发到自定义 (非 S3) 来源服务器的查询字符串参数、Cookie 或标准 HTTP 请求标头。此外,借助 CloudFront 与 Lambda@Edge 的集成,您可以通过编写部署至全球 CloudFront 网络的 AWS Lambda 函数,在靠近最终用户的位置向其分发自定义或个性化内容,并执行这些函数以响应 CloudFront 事件。

安全性功能

您可以对 Amazon CloudFront 进行配置,使其执行从查看器到来源服务器的端到端 HTTPS 连接。  借助 CloudFront 和 AWS Certificate Manager 之间的集成,您可以创建免费的自定义 SSL 证书或使用自带证书,并在几分钟内完成部署。CloudFront 支持高级协议和密码以及高级 SSL 功能,如会话票据、OCSP 装订和完全正向保密。您还可以使用字段级加密进一步为 HTTPS 表单中的敏感数据加密,以便这些信息只能由您的来源基础设施中的某些特定组件和服务查看。借助 CloudFront,您还可以使用签名 URL、签名 Cookie (可信签署人) 来安全地提供私有内容,并使用来源访问标识 (OAI) 限制对 Amazon S3 存储桶的访问。此外,CloudFront 还可与 AWS WAF (Web 应用程序防火墙,可帮助保护 Web 应用程序免受常见的 Web 攻击) 和 AWS Shield (一种托管的 DDoS 保护服务,用于保护 AWS 上运行的 Web 应用程序) 集成。所有 CloudFront 客户都可以使用 AWS Shield Standard 的自动防护功能,不需要额外支付费用。CloudFront 是一种符合 PCI DSS 规定且具有 HIPAA 资格的服务,让您可以通过 AWS CloudTrail 记录对分配所做的配置更改,以进行审计。

流式处理功能

Amazon CloudFront 支持多种媒体流式处理协议 (音频和视频 – 实时和点播)。借助 CloudFront,您可以使用 HLS、MPEG-DASH 或 Microsoft Smooth Streaming 来分发实时视频流视频点播 (VOD) 流,无需设置或运行任何媒体服务器。CloudFront 与 AWS Elemental 下属的 AWS Media Services 进行了集成,后者是一系列完全托管的服务,有助于在云中轻松构建具有广播品质的可靠视频工作流。这些服务支持基于文件的视频转码 (AWS Elemental MediaConvert)、实时视频处理 (AWS Elemental MediaLive)、实时视频打包 (AWS Elemental MediaPackage)、高性能视频优化型存储 (AWS Elemental MediaStore) 以及流视频的服务器端广告插入 (AWS Elemental MediaTailor)。

报告和分析

无论您的报告需求是接收详细的缓存统计报告、使用 Amazon CloudWatch 近乎实时地监控 CloudFront 使用情况、跟踪最热门的对象、为运营指标设置警报,还是详细了解最终用户以及哪些域将最终用户引入您的站点,Amazon CloudFront 都能提出各种各样的解决方案。您也可以选择通过启用 CloudFront 访问日志来接收有关 CloudFront 分配所提供的流量的信息,无需支付额外费用。详细了解 CloudFront 报告和分析

问:什么是 Amazon CloudFront?

Amazon CloudFront 是一种 Web 服务,为企业和 Web 应用程序开发人员提供一种简单且经济高效的内容分配方法,不仅延迟低,而且数据传输速度高。与其他 AWS 服务相同,Amazon CloudFront 也是一种按用量付费的自助服务,无需长期承诺或最低费用。使用 CloudFront,您的文件将通过一个全球节点网络来传输至最终用户。

问:Amazon CloudFront 可以用来做什么?

Amazon CloudFront 提供简单的 API,让您能够:

  • 使用遍布全球的节点网络来处理请求,从而以低延迟和高数据传输速率来分配内容。
  • 无需就合同和最低承诺进行谈判,即可开始使用。

问:如何开始使用 Amazon CloudFront?

单击 Amazon CloudFront 详细信息页面上的“创建免费账户”按钮。如果您选择使用其他 AWS 服务作为通过 Amazon CloudFront 提供的文件的来源,则在创建 CloudFront 分配之前,您必须注册该服务。

问:如何使用 Amazon CloudFront?

要使用 Amazon CloudFront,您必须执行以下操作:

  • 对于静态文件,请将最终版本的文件存储在一个或多个原始服务器上。它们可以是 Amazon S3 存储段。对于动态生成的个性化或自定义内容,您可以使用 Amazon EC2 或其他任何 Web 服务器作为原始服务器。这些原始服务器将存储或生成要通过 Amazon CloudFront 分配的内容。
  • 通过简单的 API 调用在 Amazon CloudFront 上注册您的原始服务器。此调用将返回一个 CloudFront.net 域名,您可以使用该域名,通过 Amazon CloudFront 服务从您的原始服务器分配内容。例如,您可以注册 Amazon S3 存储段“bucketname.s3.amazonaws.com”作为所有静态内容的来源,注册一个 Amazon EC2 实例“dynamic.myoriginserver.com”作为所有动态内容的来源。然后,您可以使用 API 或 AWS 管理控制台来创建 Amazon CloudFront 分配,它可能返回“abc123.cloudfront.net”作为分配域名。
  • 将 cloudfront.net 域名或您创建的别名记录别名包括在您的 Web 应用程序、媒体播放器或网站中。使用 cloudfront.net 域名(或您设置的别名记录)发出的每个请求都被路由到最适合以最高性能分配内容的节点。该节点将尝试使用文件的本地副本来处理请求。如果本地副本不可用,Amazon CloudFront 将从来源获取副本。然后,此副本将能够在该节点使用,以便处理今后的请求。

问:Amazon CloudFront 如何提供更高性能?

Amazon CloudFront 采用全球边缘站点和区域性边缘缓存网络,这可缓存您的内容副本以更靠近读者。Amazon CloudFront 确保将由距离最近的节点来处理最终用户请求。由此,传输读者请求的距离变短,提升读者的性能。对于没有缓存在边缘站点和区域性边缘缓存上的文件,Amazon CloudFront 将与您的来源服务器保持永久连接,以便尽快从来源服务器提取这些文件。最后,Amazon CloudFront 使用其他优化措施(例如更广的 TCP 初始拥塞窗口),在将您的内容传输至查看者时提供更高的性能。

问:Amazon CloudFront 如何降低通过 Internet 分配内容的成本?

与其他 AWS 服务相同,Amazon CloudFront 没有最低承诺,您只需为自己的服务用量付费。与自托管相比,Amazon CloudFront 无需您运行分布在 Internet 上多个站点的缓存服务器网络,从而避免了相关开支和复杂性,也无需您过高配置容量以便处理可能出现的流量峰值。Amazon CloudFront 还运用了多种技术,例如将在一个节点上针对同一文件发出的多个同步查看者请求重叠到向原始服务器发出的单个请求中。这样可以降低原始服务器上的负载,从而减少扩展原始基础设施的需求,实现进一步成本节省。

此外,如果您正在使用的是 AWS 来源服务器 (如 Amazon S3、Amazon EC2 等),并且是 2014 年 12 月 1 日生效的,则我们不再收取向 Amazon CloudFront 传输 AWS 数据的费用。这适用于从所有 AWS 地区向全球 CloudFront 边缘站点的数据传输。

问:Amazon CloudFront 如何加快整个网站的速度?

Amazon CloudFront 使用您为文件设置的标准缓存控制标头来识别静态内容和动态内容。使用单个 Amazon CloudFront 分配来传输您的所有内容,这有助于确保将性能优化应用于整个网站或 Web 应用程序。使用 AWS 来源时,由于 AWS 能够跟踪和调节来源路由、监控系统运行状况并在出现任何问题时快速进行响应,而且 Amazon CloudFront 与其他 AWS 服务相集成,因而性能、可靠性和易用性得到了改进,让您从中受益。您可以享受到的还包括针对单个站点上的不同类型内容使用不同来源 – 例如将 Amazon S3 作为静态数据元来源、将 Amazon EC2 作为动态内容来源、将自定义来源用于第三方内容 – 而只需为实际用量付费。

问:Amazon CloudFront 与 Amazon S3 有何不同?

Amazon CloudFront 是分配经常访问的静态内容的理想之选,可从节点传输中受益 – 例如常用的网站图像、视频、多媒体文件或软件下载。

问:Amazon CloudFront 与传统内容传输解决方案有何不同?

Amazon CloudFront 让您能够快速获得高性能内容传输的优势,而无需谈判合同,也无需支付高价格。Amazon CloudFront 让所有开发人员能够在自助服务模式下享受仅按实际用量付费的低定价。它还与其他 Amazon Web Services 紧密集成,让开发人员从中受益。该解决方案能够作为原始服务器简单地与 Amazon S3、Amazon EC2 和 Elastic Load Balancing 配合使用,为开发人员提供持久化存储与高性能传输的强大结合。Amazon CloudFront 还与 Amazon Route 53 和 AWS CloudFormation 相集成,提供进一步性能优势和简单配置。

问:Amazon CloudFront 支持什么类型的内容?

Amazon CloudFront 支持可通过 HTTP 处理的所有文件。其中包括动态网页,例如 HTML 或 PHP 页面,以及作为 Web 应用程序一部分的任何常用静态文件,例如网站图像、音频、视频、媒体文件或软件下载。Amazon CloudFront 还支持通过 HTTP 分发实时或点播媒体流。

问:Amazon CloudFront 是否可与非 AWS 来源服务器配合使用?

可以。Amazon CloudFront 可与保存原始最终版本内容(包括静态和动态)的任何原始服务器结合使用。使用自定义来源不收取任何额外费用。

问:Amazon CloudFront 是否提供服务等级协议 (SLA)?

是。如果客户的月度正常运行时间百分比在任何账单周期内低于我们的服务承诺,Amazon CloudFront SLA 将提供服务补偿。有关更多信息,请访问此处

问:可以将 AWS 管理控制台与 Amazon CloudFront 配合使用吗?

可以。您可以使用 AWS 管理控制台,通过简单的点击式 Web 界面来配置和管理 Amazon CloudFront。AWS 管理控制台支持 Amazon CloudFront 的大部分功能,让您能够利用 Amazon CloudFront 的低延迟传输,而无需编写任何代码或安装任何软件。您可以免费访问 AWS 管理控制台,网址为 https://console.aws.amazon.com

问:哪些工具和库适用于 Amazon CloudFront?

我们的资源中心提供了各种用于管理 Amazon CloudFront 分配的工具和使用各种编程语言的库。

问:是否可以将我的域顶点(example.com 与 www.example.com 相比)指向我的 Amazon CloudFront 分配?

可以。通过使用 AWS 权威的 DNS 服务 Amazon Route 53,您可以配置别名记录,允许您将您的 DNS 名称的顶点或根(example.com)映射到您的 Amazon CloudFront 分配。Amazon Route 53 随后将回应每个对别名记录的请求,提供您的 CloudFront 分配的正确 IP 地址。Route 53 对映射到 CloudFront 分配的别名记录的查询不收取费用。这些查询在 Amazon Route 53 使用率报告中列为“Intra-AWS-DNS-Queries”。

问:CloudFront 区域性边缘缓存站点是什么?

CloudFront 通过全球数据中心(称作边缘站点)网络分发内容。区域性边缘缓存站点位于源 Web 服务器和全球边缘站点之间,直接向读者提供内容。这可帮助提升读者的体验,同时降低扩展来源资源的运营负担和成本。

问:区域性边缘缓存的工作原理

Amazon CloudFront 在全球靠近读者的地方新增了几个区域性边缘缓存。这些站点位于源 Web 服务器和全球边缘站点之间,直接向读者提供内容。如果对象不再那么受欢迎,各个边缘站点可以删除这些对象,从而为更热门的内容腾出空间。区域性边缘缓存站点的缓存宽度比任何单个边缘站点都要大,因此对象会在最近的区域性边缘缓存站点中保存更长时间。这有助于让更多内容更为靠近读者,减少 CloudFront 返回源 Web 服务器的需要,同时为读者提升整体性能。例如,欧洲的 CloudFront 边缘站点现在会转到法兰克福的区域性边缘缓存站点来提取对象,然后再返回您的源 Web 服务器。区域性边缘缓存站点当前仅用于需返回自定义源的请求,即发给 S3 源的请求会跳过区域性边缘缓存站点。

问:默认是否启用区域性边缘缓存功能?

可以。您无需对 CloudFront 分发进行任何更改;为所有新和现有 CloudFront 分发默认启用本功能。使用此功能不会产生额外的费用。

问:Amazon CloudFront 使用的边缘网络站点位于哪里?

Amazon CloudFront 使用全球边缘站点和区域性边缘缓存站点进行内容分发。您可在此处查看 Amazon CloudFront 站点的完整列表。

问:我可以选择向指定国家/地区提供内容(或不向其提供内容)吗?

可以,利用 Geo Restriction 功能可以指定用户可以访问您的内容的国家/地区列表。也可以指定用户不可以访问您的内容的国家/地区列表。在这两种情况中,CloudFront 均以 HTTP 状态代码 403(禁止)响应来自受限制国家/地区的查看者的请求。

问:您的 GeoIP 数据库的准确程度如何?

国家/地区查找数据库的 IP 地址准确性因地区而异。根据最近的测试,我们所提供的 IP 地址与国家/地区映射的总体准确性为 99.8%。

问:我可以向我的最终用户提供自定义错误消息吗?

可以,您可以针对各种 HTTP 4xx 和 5xx 错误响应使用您自己的品牌和内容创建自定义错误消息(例如 HTML 文件或 .jpg 图形)。之后可以对 Amazon CloudFront 进行配置,使其在您的原始服务器向 CloudFront 返回一个指定错误时向查看者返回您的自定义错误消息。

问:Amazon CloudFront 将我的文件在节点上保存多长时间?

默认情况下,如果没有设置缓存控制标头,则在上次检查来源以获取文件更改 24 小时之后,每当节点接收到请求时,都会检查该文件的更新版本。这段时间称为“过期时段”。您可以通过对来源中的文件设置缓存控制标头,将该过期时段设置为短至 0 秒或长至您需要的任意时间。Amazon CloudFront 使用这些缓存控制标头来确定检查来源中该文件的更新版本的频率。对于设置为 0 秒的过期时段,Amazon CloudFront 将向原始服务器重新验证每个请求。如果文件不经常更改,最好设置较长的过期时段,并实施版本控制系统,以管理对文件的更新。

问:如何将项目从 Amazon CloudFront 节点删除?

您可以通过多个选项将项目从 Amazon CloudFront 节点删除。只需将文件从来源删除,当节点中的内容到达在每个数据元的 HTTP 标头中定义的过期时段时,它就将被删除。如果需要在指定过期时段之前删除不良或可能有害的材料,您可以使用 Invalidation API 来将数据元从所有 Amazon CloudFront 节点中删除。您可在此处查看无效请求的费用。

问:发出无效请求的数量是否受到限制?

如果您想逐个让对象失效,则针对每个分配一次可以同时处理 3000 个对象的无效请求。一个无效请求可以支持最多 3000 个对象,或针对一个对象的 3000 个请求,或者合计不超过 3000 个对象的任何组合方式。

如果您使用 * 通配符,则一次最多可以提出 15 个无效路径请求。您一次可以为每个分配的最多 3000 个单独对象提出无效请求,而通配符无效请求的限制与个别失效对象限制无关。如果您超过此限制,额外的无效请求将收到错误响应,直至先前的某个请求完成。

无效请求应仅在意外情况下使用;如果您事先知道您的文件需要经常从缓存中删除,建议您为文件实施版本控制系统和/或设置较短的有效期限。

问:Amazon CloudFront 是否符合 PCI?

是。Amazon CloudFront 包含在符合支付卡行业数据安全标准 (PCI DSS) 商家第 1 级(服务提供商需要遵循的最高级别)的服务集中。有关详细信息,请参阅我们的开发人员指南

问:Amazon CloudFront 是否符合 HIPAA 要求?

符合,AWS 已对其 HIPAA 合规性计划进行扩展,其中已将 Amazon CloudFront 作为一项符合 HIPAA 要求的服务包括进来。如果您已与 AWS 签订商业合伙协议 (BAA),则可以使用 Amazon CloudFront 来加快交付受保护健康信息 (PHI)。有关详细信息,请参阅 HIPAA 合规性和我们的开发人员指南

问:Amazon CloudFront 是否符合 SOC 规范?

是,Amazon CloudFront 已通过 SOC(系统与组织控制)认证。SOC 报告是独立的第三方检查报告,阐明 AWS 如何达成关键合规性控制和目标。有关详细信息,请参阅 AWS SOC 合规性和我们的开发人员指南

问:如何申请一份 AWS SOC 1 或 SOC 3 报告?

AWS SOC 1 和 SOC 2 报告面向使用 AWS Artifact 的客户提供。AWS Artifact 是一个自助服务门户,借此可按照需要访问 AWS 的合规性报告。登录到 AWS 管理控制台中的 AWS Artifact,或者通过 AWS Artifact 入门了解更多信息。AWS 网站上公开提供了最新的 AWS SOC 3 报告

问:Amazon CloudFront 支持哪些类型的 HTTP 请求?

目前,Amazon CloudFront 支持 GET、HEAD、POST、PUT、PATCH、DELETE 和 OPTIONS 请求。

问:Amazon CloudFront 是否缓存 POST 响应?

Amazon CloudFront 不会缓存对 POST、PUT、DELETE 和 PATCH 请求的响应,因为这些请求会通过代理返回原始服务器。您可以缓存对 OPTIONS 请求的响应。

问:如何使用 HTTP/2?

如果您已有 Amazon CloudFront 分配,则可以使用 API 或管理控制台启用 HTTP/2。在控制台中,转到“Distribution Configuration”页面,然后转到“Supported HTTP Versions”部分。在该部分中,您可以选择“HTTP/2”、“HTTP/1.1”或“HTTP/1.0”。对于所有新的 CloudFront 分配,HTTP/2 自动处于启用状态。

问:如果我的原始服务器不支持 HTTP/2,该怎么办?

Amazon CloudFront 目前支持使用 HTTP/2 向浏览者的客户端和浏览器分发内容。Amazon CloudFront 将继续使用 HTTP/1.1 传送边缘站点与您的原始服务器之间的通信内容。

问:Amazon CloudFront 是否支持不采用 TLS 的 HTTP/2?

目前不支持。不过,大多数现代浏览器只能通过加密连接支持 HTTP/2。您可以单击此处详细了解如何结合使用 SSL 和 Amazon CloudFront。

问:是否可以将 CloudFront 分配配置为使用自己的域名通过 HTTPS 分发内容?

默认情况下,您可以在 URL 中使用 CloudFront 分配域名 (例如 https://dxxxxx.cloudfront.net/image.jpg) 通过 HTTPS 向浏览者分发内容。如果您想使用自己的域名和 SSL 证书通过 HTTPS 分发内容,可以使用我们的一项自定义 SSL 证书支持功能。了解更多

问:什么是字段级加密?

字段级加密是 CloudFront 的一项功能,使您可以安全地将用户提交的数据 (如信用卡号) 上传到您的来源服务器。使用此功能,您可以在将 PUT/POST 请求转发到您的源之前,使用特定于字段的加密密钥 (由您提供) 对 HTTPS 表单中的敏感数据进行进一步加密。这可确保敏感数据只能被应用程序堆栈中的某些组件或服务解密和查看。要了解有关字段级加密的更多信息,请参阅我们文档中的字段级加密

问:我已经在使用 CloudFront 的 SSL/TLS 加密,是否还需要使用字段级加密?

许多 Web 应用程序会从用户那里收集信用卡号等敏感数据,然后交由在来源基础设施上运行的应用程序服务处理。所有这些 Web 应用程序都在最终用户和 CloudFront 之间以及 CloudFront 和您的源之间使用 SSL/TLS 加密。您的源可能有多个微服务,它们根据用户输入执行关键操作。然而在通常情况下,这些微服务中仅有一少部分需要访问敏感信息,这意味着大多数组件都是没有任何缘由便直接访问这些数据。一个简单的编程错误 (如将错误的变量记录在日志中) 便可能会导致将客户的信用卡号写到一个文件中。 

使用字段级加密,CloudFront 的边缘站点可以对信用卡数据进行加密。从那时起,只有拥有私钥的应用程序才能解密敏感字段。因此,订单履行服务只能查看加密的信用卡号,但付款服务可以解密信用卡数据。这确保了更高的安全性,因为即使其中一个应用程序服务泄露了密文,数据仍然受到密码保护。

 

问:SNI 自定义 SSL 与 Amazon CloudFront 的专用 IP 自定义 SSL 之间有什么区别?

专用 IP 自定义 SSL 分配专用 IP 地址来服务于每个 CloudFront 节点处的 SSL 内容。因为 IP 地址与 SSL 证书之间是一对一映射,所以专用 IP 自定义 SSL 使用的是不支持 SNI 的浏览器和其他客户端。根据当前的 IP 地址成本,专用 IP 自定义 SSL 的费用按小时分配是每月 600 USD。

SNI 自定义 SSL 依赖于传输层安全性协议的 SNI 扩展,允许多个域通过相同的 IP 地址提供 SSL 流量,具体方法是包含查看器试图连接的主机名。与专用 IP 自定义 SSL 一样,CloudFront 也是从每个 Amazon CloudFront 边缘站点分发内容,同时具备与专用 IP 自定义 SSL 功能相同的安全性。SNI 自定义 SSL 可使用大部分现代浏览器,包括 Chrome V 6 和更高版本(运行于 Windows XP 和更高版本或 OS X 10.5.7 和更高版本上之上)、Safari V 3 和更高版本(运行于 Windows Vista 和更高版本或 Mac OS X 10.5.6. 和更高版本之上)、Firefox 2.0 和更高版本,以及 Internet Explorer 7 和更高版本(运行于 Windows Vista 和更高版本之上)。不支持 SNI 的较老浏览器无法与 CloudFront 建立连接以加载您的内容的 HTTPS 版本。除了标准 CloudFront 数据传输和请求费用外,SNI 自定义 SSL 不收取额外费用。

问:什么是服务器名称指示?

服务器名称指示 (SNI) 是安全传输层 (TLS) 协议的延伸。该机制识别相关 SSL 请求相关的域(服务器名称)以便在 SSL 握手时使用适当的证书。这允许单个 IP 地址用于多个服务器。SNI 要求浏览器支持添加服务器名称,尽管大部分现代浏览器都支持,但是还有一些老式浏览器不能支持。想要了解更多详细信息,请参阅 CloudFront 开发人员之南 的 SNI 部分或 SNI Wikipedia 文章

问:CloudFront 是否与 AWS Certificate Manager 实现了集成?

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

请注意,CloudFront 仍然支持使用您从第三方证书机构获得并上传至 IAM 证书存储的证书。

问:Amazon CloudFront 是否支持付费内容或私有内容的访问控制?

是,Amazon CloudFront 具有一项针对私有内容的可选访问控制功能。启用此选项时,Amazon CloudFront 将对您的请求进行安全签名,仅在您允许时才传输文件。阅读 CloudFront 开发人员指南,了解此功能的详细信息。

问:如何保护通过 CloudFront 分发的 Web 应用程序免受 DDoS 攻击?

作为一名 AWS 客户,您可以免费获得 AWS Shield Standard。AWS Shield 是一项托管服务,用于保护 AWS 上运行的 Web 应用程序免受 DDoS 攻击。AWS Shield Standard 可以保护所有 AWS 客户免受常见的、最为频繁的基础设施层 (第 3 层和第 4 层) 攻击 (如 SYN/UDP 泛洪、反射攻击和其他攻击),确保 AWS 上的应用程序具有较高的可用性。

AWS Shield Advanced 是一项可选的付费服务,面向 AWS Business Support 和 AWS Enterprise Support 客户提供。AWS Shield Advanced 能为 Elastic Load Balancing (ELB)、Amazon CloudFront 和 Route 53 上运行的应用程序提供额外保护,使其免受更大型、更复杂的攻击。

问:如何保护通过 CloudFront 分发的 Web 应用程序?

您可以将您的 CloudFront 分配与 AWS WAF 相集成,AWS WAF 是一个 Web 应用程序防火墙,让您能够根据 IP 地址、HTTP 标头和自定义 URI 字符串配置规则,从而有助于 Web 应用程序受到攻击。借助这些规则,AWS WAF 能够阻止、允许或监控 (统计) Web 应用程序的 Web 请求。要了解更多信息,请参阅 AWS WAF 开发人员指南

问:是否可以添加或修改转发到源的请求标头?

可以,对于转发到源的请求,您可以配置 Amazon CloudFront 以添加自定义标头,也可以覆盖现有标头的值。您可以使用这些标头帮助确认对源的请求发自 CloudFront;您甚至可以将自己的源配置为仅允许包含指定自定义标头值的请求。此外,如果要对同一个源使用多个 CloudFront 分配,您可以使用自定义标头来区分每个不同分配所发送的源请求。最后,自定义标头可用来帮助确定为您的请求返回的正确 CORS 标头。您可以通过 CloudFront API 和 AWS 管理控制台来配置自定义标头。此功能不会产生额外的费用。要详细了解如何设置自定义标头,您可在此处阅读更多内容。

问:Amazon CloudFront 如何处理 HTTP Cookie?

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

问:Amazon CloudFront 如何处理 URL 中的查询字符串参数?

您可以选择将查询字符串配置为缓存键的一部分,以便识别 Amazon CloudFront 缓存中的数据元。这有助于您构建可在节点上缓存特定时间的动态网页(例如搜索结果)。

问:能否在缓存键中指定使用哪些查询参数?

可以。借助查询字符串白名单功能,您可以轻松地将 Amazon CloudFront 配置为在缓存键中仅使用特定参数,同时仍将所有参数转发到相应源。

问:可列入白名单的查询参数是否有数量限制?

是的。配置 Amazon CloudFront 时,您最多可将 10 个查询参数添加到白名单。

问:支持哪些参数类型?

Amazon CloudFront 支持 URI 查询参数(如 RFC3986 的 3.4 节中所定义)。具体而言,它支持嵌入在 HTTP GET 字符串中“?”字符后并通过“&”字符分隔的查询参数。

问:CloudFront 是否支持 Gzip 压缩?

支持。CloudFront 可以自动压缩文本或二进制数据。要使用此功能,只需在您的缓存行为设置中指明您希望 CloudFront 自动压缩对象,并确保您的客户端在请求标头中添加“Accept-Encoding: gzip”(大多数现代 Web 浏览器默认执行此操作)。有关此功能的更多信息,请参阅我们的开发人员指南

问:什么是流式处理? 为什么要进行流式处理?

通常情况下,流式处理指的通过 Internet 向最终用户分发音频和视频,而无需在播放前下载媒体文件。用于流式处理的协议包括那些使用 HTTP 进行分发的协议,如 Apple 的 HTTP Live Streaming (HLS)、MPEG Dynamic Adaptive Streaming over HTTP (MPEG-DASH)、Adobe 的 HTTP Dynamic Streaming (HDS) 和 Microsoft Smooth Streaming。这些协议与网页和其他在线内容的分发不同,因为流式处理协议是实时分发媒体内容,查看者可在内容传输的同时进行观看。流式处理内容可为您和最终用户提供多种潜在优势:

  • 流式处理让查看者能够更多地控制观看体验。例如,与使用传统下载分发相比,使用流式处理让查看者能够更轻松地在视频中向前和向后搜寻。
  • 流式处理让您能够更好地控制内容,因为在查看者看完视频之后,其客户端或本地驱动器上不会留存任何文件。
  • 流式处理能够帮助您降低成本,因为它只分发查看者实际观看的那部分媒体文件。相反,传统下载通常会向查看者分发整个媒体文件,即便他们仅观看文件的一部分也是如此。

问:Amazon CloudFront 是否支持视频点播 (VOD) 流式处理协议?

支持。Amazon CloudFront 会为您提供多种选项,方便您分发点播视频内容。如果您的媒体文件在存储到 Amazon S3 (或自定义源服务器) 之前已经使用 AWS Elemental MediaConvert 等工具转换为 HLS、MPEG-DASH 或 Microsoft Smooth Streaming 格式,则您可以使用 Amazon CloudFront Web 分配以该格式流式传输此文件,无需运行任何媒体服务器。

另外,您还可以在 Amazon EC2 上运行第三方流式处理服务器 (例如,AWS Marketplace 上提供的 Wowza Media Server),它会将媒体文件转换为所需的 HTTP 流格式。然后,可以将该服务器指定为 Amazon CloudFront Web 分配的原点。 

请访问 Video on Demand (VOD) on AWS 页面,了解更多信息。

问:Amazon CloudFront 是否支持将实时流传输到多个平台?

是。您可以将 Amazon CloudFront 实时流与任何可输出基于 HTTP 的流的实时视频创作服务结合使用,例如 AWS Elemental MediaPackageAWS Elemental MediaStore。MediaPackage 是一种视频创作和即时打包服务,支持视频分销商使用多种交付和内容保护标准,以安全可靠的方式大规模分发流内容。MediaStore 是一种 HTTP 创作和存储服务,可提供实时媒体所需的高性能、即时一致性和可预测的低延迟,以及安全持久的 Amazon 存储。

请访问 AWS Live Video Streaming 页面,了解更多信息。

问:如果预期使用峰值将会高于 10Gbps 或 15000 RPS,我可以使用 Amazon CloudFront 吗?

可以。请在此处填写请求以提高限制,我们将在两个工作日之内为您的账户添加更多容量。

问:我的 Amazon CloudFront 账户可以传输的分配数量是否受到限制?

要了解您能为每个 AWS 账户创建的分配数量的当前限制,请参阅 Amazon Web Services General Reference 中的 Amazon CloudFront Limits。要申请更高的额度,请填写 CloudFront Limit Increase Form

问:通过 Amazon CloudFront 最多能够传输多大的文件?

通过 Amazon CloudFront 最多能够传输 20GB 大小的单个文件。此限制适用于所有 Amazon CloudFront 分配。

问:我可以访问通过 Amazon CloudFront 传输的内容的请求日志吗?

可以。当您创建或修改 CloudFront 分配时,您可以启用访问记录。启用后,此功能将自动以 W3C 扩展格式将详细日志信息写入您指定的 Amazon S3 存储段。访问日志包含有关对您内容的每个请求的详细信息,包括请求的数据元、请求的日期和时间、处理请求的节点、客户端 IP 地址、引用网站、用户代理、Cookie 标头以及结果类型(例如缓存命中/未命中/错误)。

问:Amazon CloudFront 是否提供直接可用的报告,方便我了解与使用量、观者和当前服务内容有关的更多信息?

是的。Amazon CloudFront 提供多种解决方案满足您对报告功能的需求,包括接收详细缓存统计报告,监控 CloudFront 使用量,了解客户从何处查看内容,以及对可操作指标设置几乎实时的警报。在 AWS 管理控制台中访问 Amazon CloudFront Reporting & Analytics 控制面板,即可使用全部报告选项。查看 Amazon CloudFront 的 Reports & Analytics 页面,还可以了解关于各种报告选项的更多信息。

问:我能否标记分配?

可以。Amazon CloudFront 支持成本分配标记。标签通过对 AWS 资源进行分类和分组,从而让您能够轻松分配成本和优化支出。例如,您可以使用标签按管理员、应用程序名称、成本中心或特定项目对资源进行分组。要了解有关成本分配标记的更多信息,请参阅使用成本分配标签。如果您已准备好向 CloudFront 分配添加标签,请参阅 Amazon CloudFront 添加标签页面

问:我能否获得我账户上所有的 Amazon CloudFront API 调用历史记录,以用于安全性、操作性或合规性审核?

能。要获得由您的账户发起的所有 Amazon CloudFront API 调用历史记录,只需在 CloudTrail 的 AWS 管理控制台中打开 AWS CloudTrail 。有关更多信息,请访问 AWS CloudTrail 主页

问:你们是否提供对指标进行实时监控和警报的选项?

您可以使用 Amazon CloudWatch 在浏览者发出请求的几分钟内监控、发出报警并接收有关 Amazon CloudFront 分配运行性能的通知。CloudFront 自动向 Amazon CloudWatch 发布六个运行指标,每次都以 1 分钟间隔。然后,您可以使用 CloudWatch 对 CloudFront 流量的任何异常情况设置报警。要了解如何开始通过 CloudWatch 监控 CloudFront 活动和设置报警,请在 Amazon CloudFront 开发人员指南中查看我们的操作步骤,或只需导航到 Amazon CloudFront 管理控制台并在导航窗格中选择“监控和报警”。

问:什么是 Lambda@Edge?

Lambda@Edge 允许您在全球的 AWS 边缘站点运行代码,无需预置或管理服务器,以最低的网络延迟响应最终用户。您仅需上传 Node.js 代码到 AWS Lambda,将功能配置为响应 Amazon CloudFront 请求(即发出查看器请求、转发请求到或来源收到,以及在响应回最终用户之前)。然后,可在收到请求内容后于每个 AWS 边缘站点执行本代码,同时随着请求数量的增加跨 CloudFront 边缘站点扩展。 在我们的文档中了解更多。

问:如何使用 Lambda@Edge 自定义内容?

一旦确定内容交付决策,您可能希望在 CloudFront 边缘做出,确定缓存行为,以及应用逻辑到的请求流量中的点(即发出查看器请求、转发请求到或来源收到,以及在响应回最终用户之前)。接下来,使用 Lambda 控制台或 API 编写 Node.js Lambda 功能,并将其与分发的选定 CloudFront 触发事件关联。保存后,下次对分发进行适用请求时,该功能将传播到 CloudFront 边缘,并在必要时扩展和执行。 在我们的文档中了解更多。

通过 Amazon CloudFront,可以触发哪些事件?

在响应以下 Amazon CloudFront 事件时,会自动触发您的函数:

  • 查看者请求 – 当 Internet 上的最终用户或设备向 CloudFront 发出 HTTP(S) 请求,且请求到达离该用户最近的边缘站点时,将触发此事件。
  • 查看者响应 – 当边缘站点处的 CloudFront 服务器已准备好响应发出请求的最终用户或设备时,将触发此事件。
  • 来源请求 – 当 CloudFront 边缘服务器尚未将所请求的对象置入其缓存,且查看者请求已准备好发送给后端来源 Web 服务器 (如 Amazon EC2、Application Load Balancer 或 Amazon S3) 时,将触发此事件。
  • 来源响应 – 当边缘站点处的 CloudFront 服务器收到后端来源 Web 服务器的响应时,将触发此事件。

问:什么是 IPv6?

连接到 Internet 的每个服务器和设备必须拥有的数字 Internet 协议 (IP) 地址。随着 Internet 的发展和使用 Internet 的用户呈指数增长,对 IP 地址的需求也随之增长。IPv6 是新版 Internet 协议,与其前身 IPv4 相比,IPv6 使用更大的地址空间。在使用 IPv4 时,每个 IP 地址的长度为 32 位,这允许存在 43 亿个唯一的地址。这里有一个 IPv4 地址的例子:192.0.2.1。相比之下,IPv6 地址的长度为 128 位,这允许存在大约 340 万亿个唯一的地址。这里有一个 IPv6 地址的例子:2001:0db8:85a3:0:0:8a2e:0370:7334

问:IPv6 可以用来做什么?

使用适用于 Amazon CloudFront 的 IPv6 支持,应用程序无需任何 IPv6 到 IPv4 转换软件或系统即可连接到 Amazon CloudFront 边缘站点。您可以满足政府 (包括美国联邦政府) 针对 IPv6 的采用所设的要求,并可以从 IPv6 的扩展性、在网络管理方面的简洁性以及针对安全性的额外内置支持中受益。

问:使用 IPv6 时,Amazon CloudFront 的性能预计是否会出现变化?

不会,不论是使用 IPv4 还是 IPv6,Amazon CloudFront 的性能都相同。

问:Amazon CloudFront 是否有功能不适用于 IPv6?

尽管在为您的分配打开 IPv6 之前可能需要对内部 IPv6 地址处理程序进行两处更改,但 Amazon CloudFront 的所有现有功能将继续适用于 IPv6。

  1. 如果已经打开了 Amazon CloudFront 访问日志功能,您一开始将在“c-ip”字段中看到您的查看者的 IPv6 地址,并且可能需要验证您的日志处理系统是否继续适用于 IPv6。
  2. 为 Amazon CloudFront 分配启用 IPv6 后,您将在发送到您的原始系统的“X-Forwarded-For”标题中获取 IPv6 地址。如果您的原始系统只能处理 IPv4 地址,则您可能需要验证您的原始系统是否继续适用于 IPv6 地址。

此外,如果您针对可信签署人使用了 IP 白名单,应针对 IP 白名单上的可信签署人 URL 仅使用 IPv4 分配,但可对所有其他内容使用 IPv4/IPv6 分配。该模型可避免发生以下问题:如果签名请求是通过 IPv4 地址到达并也通过该地址进行签署,则只能让内容请求通过不在白名单上的不同 IPv6 地址到达。

要了解有关 Amazon CloudFront 中 IPv6 支持的更多信息,请参阅 Amazon CloudWatch 开发人员指南中的“Amazon CloudFront 上的 IPv6 支持”部分。

问:这是否意味着,如果我想一直使用 IPv6,就无法使用 IP 白名单上的可信签署人 URL?

不能。如果您想同时使用 IPv6 和 IP 白名单上的可信签署人 URL,您应使用两种独立的分配方法。您应该为 IP 白名单上的可信签署人 URL 专门指定分配,并针对此分配禁用 IPv6。然后,您将针对所有其他内容使用另一种同时适用于 IPv4 和 IPv6 的分配。

问:如果我启用 IPv6,IPv6 地址会显示在访问日志中吗?

会,如果您已经启用了 Amazon CloudFront 访问日志功能,您的查看者的 IPv6 地址现在将在访问日志的“c-ip”字段中显示。在为您的分配打开 IPv6 之前,您可能需要验证您的日志处理系统是否继续适用于 IPv6 地址。如果您对 IPv6 流量影响工具或软件处理访问日志中 IPv6 地址的能力有任何问题,请联系开发人员支持。有关更多详细信息,请参阅 Amazon CloudFront 访问日志文档。

问:我是否可以为我所有的新分配禁用 IPv6?

可以,对于新分配和现有分配,您可以使用 Amazon CloudFront 控制台或 API 来按分配启用/禁用 IPv6。

问:我为什么要禁用 IPv6?

在与客户的讨论中,我们听到的唯一一个常见案例就是内部 IP 地址处理。为 Amazon CloudFront 分配启用 IPv6 后,您除了可以在详细的访问日志中获取 IPv6 地址外,还可以在发送到您的原始系统的“X-Forwarded-For”标题中获取 IPv6 地址。如果您的原始系统仅能处理 IPv4 地址,则在为您的分配打开 IPv6 之前,您可能需要验证您的原始系统是否继续适用于 IPv6 地址。

问:我已经为我的分配启用了 IPv6,但 DNS 查找没有返回任何 IPv6 地址。发生了什么?

虽然 Amazon CloudFront 在全球拥有非常多的连接,但仍然有一些网络还没有普及 IPv6 连接。虽然从长远来看,很显然 IPv6 才是 Internet 的未来,但在可预见的未来,Internet 上的每个终端节点将仍然使用 IPv4 连接。当我们发现 Internet 的部分终端节点使用 IPv4 连接的效果比 IPv6 好时,我们当然更愿意使用前者。

问:如果我使用 Route 53 来处理我的 DNS 需求,并且已经创建了指向一个 Amazon CloudFront 分配的别名记录,我是否需要更新我的别名记录,以启用 IPv6?

需要,您可以创建指向您的 Amazon CloudFront 分配的 Route 53 别名记录,以分别使用“A”和“AAAA”记录类型来支持 IPv4 和 IPv6。如果您想仅启用 IPv4,则您仅需要一个“A”类型的别名记录即可。有关别名资源记录集的详细信息,请参阅 Amazon Route 53 开发人员指南。 

问:使用 Amazon CloudFront 如何收费?

Amazon CloudFront 根据以下四个方面的服务实际使用量进行收费:数据传出、HTTP/HTTPS 请求、失效请求,以及与 CloudFront 分配相关联的专用 IP 自定义 SSL 证书。

借助 AWS 免费使用套餐,您可以免费开始使用 Amazon CloudFront。注册后,新的 AWS 客户在一年内每个月均将收到 50GB 的数据传出和 2000000 个针对 Amazon CloudFront 的 HTTP 和 HTTPS 请求。

  • 数据传出到 Internet
    对于您从 Amazon CloudFront 节点传出的数据容量,我们将进行收费,以 GB 为单位计量。如果您使用其他 Amazon Web Services 作为文件的来源,我们将对您使用这些服务单独收费,包括存储、计算小时数、GET 请求以及将数据从该服务传输到 Amazon CloudFront 的节点。数据传输的使用套餐针对每个区域单独计量。您可以在此处查看 Amazon CloudFront 数据传输到 Internet 的费用。
  • 数据传出到原始服务器
    对于您从 Amazon CloudFront 节点传出到原始服务器(包括 AWS 原始服务器和其他原始服务器)的数据量,我们将进行收费,以 GB 为单位计量。您可以在此处查看 Amazon CloudFront 数据传输到原始服务器的费用。
  • HTTP/HTTPS 请求
    对于您向 Amazon CloudFront 发出的对您内容的 HTTP/HTTPS 请求,我们将进行收费。您可在此处查看 HTTP/HTTPS 请求的费率。
  • 无效请求
    您需要为无效请求中的每个路径支付费用。无效请求中的路径代表您希望从 CloudFront 缓存中失效的对象的 URL(如果路径包含通配符,则为多个 URL)。您每月可从 Amazon CloudFront 请求让最多 1000 个路径失效,而无需支付额外费用。前 1000 个路径的数量到达后,您需要对无效请求中列出的每个路径支付费用。您可在此处查看无效请求的费率。
  • 专用 IP 自定义 SSL
    请使用自定义 SSL 证书支持的专用 IP 版为与一个或多个 CloudFront 分配关联的每个自定义 SSL 证书每月支付 600 USD。该月度费用按小时比例收取。例如,如果您在六月将您的自定义 SSL 证书与至少一个 CloudFront 分配相关联,时长仅为 24 小时(即 1 天),那么您在六月对自定义 SSL 证书功能的使用将被收取的费用总额为:(1 天 / 30 天)* 600 USD = 20 USD。要使用专用 IP 自定义 SSL 证书支持,请上传 SSL 证书并使用 AWS 管理控制台,将其关联到您的 CloudFront 分发内容。如果您需要将两个以上的自定义 SSL 证书与 CloudFront 分配相关联,请将与使用案例有关的详细信息和您要在 CloudFront Limit Increase Form 中使用的自定义 SSL 证书的号码包含在内。

数据传输的使用套餐针对每个区域单独计量。除非另行说明,否则上述价格不包括适用税费、费用或类似政府收费(如果存在)。

问:你们的价格含税吗?

除非另行说明,否则我们的价格不包括适用的税费和关税 (包括增值税和适用销售税)。 使用日本账单地址的客户若要使用 AWS,则需缴纳日本消费税。了解更多

问:304 响应是如何收费的?

304 是对条件 GET 请求的响应,将导致对 HTTP/HTTPS 请求和向 Internet 传输的数据进行收费。304 响应不包含消息正文,但是 HTTP 标头会消耗一些带宽,从而会向您收取标准 CloudFront 数据传输费。数据传输量取决于与对象相关的标头。

问:我可以选择仅处理来自价格较低的 Amazon CloudFront 地区的内容吗?

是的,“价格分级”让您能够选择以较低的价格将内容传输到 Amazon CloudFront 以外的地方。默认情况下,Amazon CloudFront 会通过其全球节点网络传输内容,以便尽量降低终端用户的延迟性。但是,因为在成本高的地区我们的收费也更高,这意味着在某些地区您需要支付更多费用才能以较低的延迟性传输您的内容。价格分级能让您将 Amazon CloudFront 的高价节点排除在 Amazon CloudFront 服务分配范围之外,从而节省传输费用。此类情况下,Amazon CloudFront 将从属于您所选价格级别的地区内的节点传输您的内容,并根据传输内容的实际地区的数据传输和请求定价进行收费。

如果您最关注性能,则无需进行任何操作;您的内容将通过我们的整个节点网络传输。但是,如果您希望使用其他价格级别,可以通过 AWS 管理控制台或 Amazon CloudFront API 配置您的分配。如果您选择了没有包括所有地区的价格级别,则某些查看者(特别是所在位置不属于您所选价格级别的查看者)遇到的延迟性可能高于从所有 Amazon CloudFront 节点传输内容的延迟性。

请注意,Amazon CloudFront 偶尔还会从没有包括在您所选价格级别中的地区的节点处理您的内容请求。发生此类情况时,我们只按照您所选价格级别中最低费率的地区向您收费。

您可在此处查看每个价格级别包括的地点列表。

免费试用 Amazon CloudFront