**发布时间:** 2025-11-25
**厂商:** AWS
**类型:** BLOG
**原始链接:** https://aws.amazon.com/blogs/networking-and-content-delivery/snap-inc-uses-amazon-cloudfront-origin-shield-to-improve-download-and-upload-latency/
---
<!-- AI_TASK_START: AI标题翻译 -->
[解决方案] Snap 公司使用 Amazon CloudFront Origin Shield 优化下载和上传延迟
<!-- AI_TASK_END: AI标题翻译 -->
<!-- AI_TASK_START: AI竞争分析 -->
# 解决方案分析
## 解决方案概述
Snapchat 作为一个全球性的视觉通信应用,其内容(如照片、短视频、AR滤镜)主要存储在 **Amazon S3** 源站。为了解决全球用户,特别是地理位置远离源站的用户,在上传和下载内容时遇到的高延迟问题,Snap 采用了 **Amazon CloudFront Origin Shield** 解决方案。
该方案在标准的 **Amazon CloudFront** CDN 架构之上,增加了一个额外的集中式缓存层。Origin Shield 被部署在靠近源站的 AWS 区域,作为所有区域性边缘缓存(REC)回源请求的统一入口。其技术核心在于通过 **请求合并 (Request Collapsing)** 将多个对同一内容的重复请求合并为一个,并利用与源站的 **持久化TCP连接 (Persistent Connections)** 减少连接建立的开销和往返时间(RTT),从而显著提升缓存命中率,降低源站负载,并为终端用户(尤其是远距离用户)优化网络性能。
## 实施步骤
1. **启用 Origin Shield 功能**
- 在 AWS 管理控制台中,进入 CloudFront 分发配置页面,选择 **编辑 (Edit)** 或 **创建分发 (Create Distribution)**。
- 在源站设置部分,找到 Origin Shield 选项并选择 **是 (Yes)** 以启用该功能。
2. **选择最佳的 Origin Shield 区域**
- 在 **Origin Shield 区域 (Origin Shield Region)** 下拉菜单中,选择与源站(本案例中为 Amazon S3 存储桶)物理位置最接近的 AWS 区域。
- Snap 将其 S3 源站部署在 `US East (N. Virginia)` 区域,因此也选择了该区域作为 Origin Shield 的部署区域,以实现最佳性能。
> 该方案的实施过程极为简化,被描述为 **“零代码、零架构变更”**,仅需在控制台进行几次点击即可完成部署。
## 方案客户价值
- **显著提升全球用户体验**
- 为远离源站的用户提供了近乎即时的性能改善。
- 上传延迟最高降低了 **30%**。
- 缓存未命中(Cache-miss)情况下的下载延迟最高降低了 **15%**。
- **优化源站性能与成本**
- 通过作为全局缓存层,大幅提高了缓存命中率,显著减少了直接访问 **Amazon S3** 源站的请求数量。
- 降低了源站的负载压力和数据传出成本,同时提升了源站的可用性。
- **极高的实施效率**
- _无需任何代码开发或架构调整_,即可快速集成并生效。
- 是一种高性价比的解决方案,能够以最小的投入获得显著的性能回报。
## 涉及的相关产品
- **Amazon CloudFront**
- AWS 的内容分发网络(CDN)服务,是整个解决方案的基础,通过其全球边缘节点(PoP)和区域性边缘缓存(REC)加速内容分发。
- **CloudFront Origin Shield**
- CloudFront 的一项高级缓存功能,作为部署在源站前的额外缓存层,是本次性能优化的核心组件。
- **Amazon S3**
- AWS 的对象存储服务,在此方案中作为 Snapchat 内容的 **源站 (Origin)**。
## 技术评估
- **优势**
- **性能优化精准**: 该方案精准地解决了 CDN 架构中“最后一公里”回源的延迟痛点,特别是对于源站集中但用户分散的全球化业务,效果立竿见影。
- **部署简便**: “零代码”和“几次点击”的部署方式,极大地降低了技术门槛和实施成本,使企业能够快速验证和应用。
- **高可用性**: Origin Shield 服务本身跨多个可用区(AZ)构建,具备高可用性,为内容交付链路增加了额外的可靠性。
- **强大的源站保护**: 它有效地充当了源站的“盾牌”,整合了来自全球的缓存回源请求,避免了源站因突发流量而过载。
- **适用范围与限制**
- **最佳适用场景**: 对于源站部署在单一 AWS 区域,但需要服务全球用户的应用,此方案价值最大。
- **成本因素**: Origin Shield 是一项增值服务,会产生额外费用(按请求数计费或包含在高级套餐中),企业需评估其性能收益与成本之间的平衡。
- **配置关键性**: 性能优化的效果强依赖于正确选择 Origin Shield 区域,必须确保其与源站的地理位置尽可能接近。
<!-- AI_TASK_END: AI竞争分析 -->
<!-- AI_TASK_START: AI全文翻译 -->
# Snap Inc. 使用 Amazon CloudFront Origin Shield 改善下载和上传延迟
**原始链接:** [https://aws.amazon.com/blogs/networking-and-content-delivery/snap-inc-uses-amazon-cloudfront-origin-shield-to-improve-download-and-upload-latency/](https://aws.amazon.com/blogs/networking-and-content-delivery/snap-inc-uses-amazon-cloudfront-origin-shield-to-improve-download-and-upload-latency/)
**发布时间:** 2025-11-25
**厂商:** AWS
**类型:** BLOG
---
*本博客由 Snap Inc. 的主任软件工程师 (Staff Software Engineer) Manchun Yao 联合撰写。*
Snapchat 是一款备受欢迎的应用程序,全球数亿用户通过它与亲朋好友进行交流。Snapchat 专注于通过构建增强现实 (AR) 滤镜、地图、Bitmoji 和 Spotlight 等功能,提供一种快速有趣的沟通方式。其内容主要以视觉形式呈现,例如照片和短视频,并通常会使用 AR 特效和滤镜进行增强。本文将介绍 Snapchat 如何使用 [Amazon CloudFront](https://aws.amazon.com/cloudfront/) 和 [CloudFront Origin Shield](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html) 来改善距离 Amazon S3 内容源较远用户的下载和上传体验。
CloudFront 是 AWS 的内容分发网络 (CDN) 服务,能够以低延迟和高传输速度,在全球范围内安全地为您的应用程序分发数据、图像、视频和 API。CloudFront 使用边缘站点 (也称为接入点 (PoP)) 在全球范围内缓存内容并将其更近地交付给最终用户。CloudFront 区域性边缘缓存 (REC) 在 CloudFront PoP 和您的源服务器之间提供了另一层缓存。这有助于为那些访问频率不够高、无法保留在边缘站点的内容提升性能。CloudFront Origin Shield 是托管在 [Amazon Elastic Compute Cloud (Amazon EC2)](https://aws.amazon.com/ec2/) 上的另一个缓存层,它通过将多个缓存请求合并为单个源站请求,帮助最大限度地减少源站负载、提高可用性并降低运营成本。
只需几次点击,Snap 就创建了一个无需任何编码的高性能解决方案。Snap 启用了 CloudFront Origin Shield,将上传延迟降低了高达 30%,缓存未命中时的下载延迟降低了高达 15%,从而改善了下载和上传性能。这一实施进一步优化了缓存命中率,并减少了对源站的请求数量。
## 在 REC 之上通过 CloudFront Origin Shield 增强源站保护
为了快速向用户提供热门内容,CloudFront 使用 PoP。当内容的热度不足以保留在 PoP 时,CloudFront 会使用 REC 来帮助改善该内容的区域性聚合。REC 是一个通常更靠近 PoP 的缓存层。REC 位于遍布多个可用区 (AZ) 的 [AWS 区域](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) 中。CloudFront Origin Shield 是一项基于 REC 构建的服务,但通常配置为更靠近您的源站,其目的是提供全球内容聚合。
CloudFront Origin Shield 旨在补充 CloudFront 架构中的 REC。CloudFront Origin Shield 在 REC 和您的内容源之间提供了另一个缓存层。此外,CloudFront Origin Shield 通过请求折叠 (request collapsing) 技术减少了对源站的请求数量,该技术将多个针对同一资源的相同请求合并为一个请求。在边缘和源站之间打开、关闭或维护 TCP 连接通常被认为是一种消耗资源和时间的操作。CloudFront Origin Shield 并不会为每个到源站的请求都打开、维护和关闭一个新的 TCP 连接,而是使用到源站的持久连接,在 Snap 的案例中,源站是 Amazon S3。负载的减少直接转化为源站成本的降低和可用性的提高。作为通用最佳实践,您应始终选择距离源站最近的 CloudFront Origin Shield 区域。
为了提高 CDN 的性能,CloudFront Origin Shield 创建了一个集中的缓存层,作为源站的代理。当来自不同 AWS 区域的多个相同内容请求同时到达时,Origin Shield 会使用一种称为请求折叠的技术,将它们合并为尽可能少的源站请求。此外,CloudFront Origin Shield 通过更低的建立新连接的往返时间 (RTT) 来帮助降低整体请求延迟。它还通过维护持久连接来帮助提高朝向源站的整体连接复用率。连接复用改善了连接建立过程,因为它减少了往返次数,从而带来了更快的性能。CloudFront Origin Shield 通过为多个请求复用同一个 TCP 连接来帮助降低延迟。
下图描绘了用户从悉尼边缘站点的 PoP 请求内容,而内容源位于法兰克福区域的 Amazon S3 中。如果内容未在 PoP 缓存,CloudFront 会将请求路由到最靠近内容源的 CloudFront Origin Shield,如下图所示,这一过程[使用高吞吐量的 AWS 全球网络](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html) 。

*图 1: 使用 Origin Shield 访问另一区域的内容源*
## Snap 选择 CloudFront Origin Shield 的需求
Snap 启用 Origin Shield 是为了实现两个关键目标:
1. 改善下载和上传的网络性能。
2. 保持高可用性,因为 CloudFront Origin Shield [跨越了 AWS 区域内的多个可用区](https://aws.amazon.com/blogs/networking-and-content-delivery/amazon-cloudfront-introduces-origin-shield/) 。
## Snap 实施 CloudFront Origin Shield 获得多重收益
Snap 首先在美国东部 (弗吉尼亚北部) 区域启用了 CloudFront Origin Shield。积极效果几乎是立竿见影的,特别是对于那些距离 Amazon S3 源站较远的 Snapchat 用户。该实施将上传延迟降低了高达 30%。此外,它还将缓存未命中时的下载延迟降低了高达 15%。这些性能提升是连接复用带来的往返次数减少以及网络流量保持在低延迟的 AWS 全球网络上的直接结果。

*图 2. 位于哥伦比亚的用户上传首字节时间 (TTFB) P50 延迟降低示例*
Snap 使用 CloudFront Origin Shield 为其全球用户提高了内容分发速度,同时减少了其 Amazon S3 存储基础设施的负载。
“CloudFront Origin Shield 为我们提供了一种几乎即时、零代码且极具成本效益的方式,来改善距离内容源较远用户的上传和下载性能。我们能够在无需重新设计或进行任何架构更改的情况下,将 CloudFront 缓存未命中时的下载 P50 延迟性能提升高达 15%,在某些情况下上传性能提升高达 30%”,Snap 的高级经理 Mingkui Liu 表示。
## 解决方案设置
Snap 从弗吉尼亚北部区域开始部署 CloudFront Origin Shield,该区域最靠近位于同一区域的 Amazon S3 源站。默认情况下,CloudFront Origin Shield 对 CloudFront 源是禁用的。要启用 CloudFront Origin Shield,请执行以下步骤:
**第 1 步:启用 Origin Shield。** 在 CloudFront 控制台中,选择**编辑**或**创建分配**,然后选择**是**。
**第 2 步:选择 Origin Shield 区域。** 在 **Origin Shield 区域**下拉菜单下,选择 AWS 区域。
为获得最佳性能,请始终选择距离您的源站最近的 AWS 区域。在本示例中,我们选择美国东部 (弗吉尼亚北部) 作为 CloudFront Origin Shield 的 AWS 区域,使其与 S3 存储桶的区域相同,如下图所示。

*图 3: 在 AWS 控制台中启用 CloudFront Origin Shield*
## 总结
CloudFront Origin Shield 可以提高您的 CloudFront 分配的性能,特别是对于距离内容源较远的客户端。只需几次点击,您就可以创建一个高效的解决方案,无需任何编码,也无需进行设计和架构更改。有关 Amazon CloudFront Origin Shield 的定价详情,请参阅 [CloudFront 定价](https://aws.amazon.com/cloudfront/pricing/) 。有关如何估算 CloudFront Origin Shield 每月成本的信息,请参阅 [CloudFront 开发人员指南](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html#origin-shield-costs) 。可能会产生其他费用。
CloudFront Origin Shield 可以提高您的 CloudFront 分配的性能,特别是对于距离内容源较远的客户端。只需几次点击,您就可以创建一个高效的解决方案,无需任何编码,也无需进行设计和架构更改。Origin Shield 已包含在 [CloudFront Premium 统一定价计划](https://aws.amazon.com/cloudfront/pricing/) 中,无需额外费用。它也适用于 [CloudFront 按需付费定价](https://aws.amazon.com/cloudfront/pricing/pay-as-you-go/) 。有关如何使用按需付费定价估算 CloudFront Origin Shield 每月成本的信息,请参阅 [CloudFront 开发人员指南](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html#origin-shield-costs) 。可能会产生其他费用。
## 其他资源
如果您想了解更多关于 CloudFront Origin Shield 的信息,请查看以下资源:
- [在多 CDN 部署中使用 CloudFront Origin Shield 保护您的源站](https://aws.amazon.com/blogs/networking-and-content-delivery/using-cloudfront-origin-shield-to-protect-your-origin-in-a-multi-cdn-deployment/)
- [使用 Amazon CloudFront Origin Shield](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html)
- [CloudFront 如何分发内容](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/HowCloudFrontWorks.html)
- [Amazon CloudFront 定价](https://aws.amazon.com/cloudfront/pricing/)
<!-- AI_TASK_END: AI全文翻译 -->