本指南演示如何将您的 Amazon CloudFront 分配配置为在使用同一域的同时提供具有多个来源的内容。本指南详细介绍了在通过 Amazon API Gateway REST API 或任何其他 RESTful 后端访问动态内容时,如何使用 CloudFront 分配来提高单页面应用程序(SPA)的性能,同时通过 Amazon Simple Storage Service(Amazon S3)提供静态内容。

请注意:[免责声明]

架构图

[架构图描述]

下载架构图 PDF 

Well-Architected 支柱

当您在云中构建系统时,AWS Well-Architected Framework 可以帮助您了解所做决策的利弊。框架的六大支柱使您能够学习设计和操作可靠、安全、高效、经济高效且可持续的系统的架构最佳实践。使用 AWS 管理控制台中免费提供的 AWS Well-Architected Tool,您可以通过回答每个支柱的一组问题,根据这些最佳实践来检查您的工作负载。

上面的架构图是按照 Well-Architected 最佳实践创建的解决方案示例。要做到完全的良好架构,您应该遵循尽可能多的 Well-Architected 最佳实践。

  • CloudFront 提供快速的变更传播和失效功能,在几分钟内就能将变更传播到边缘,失效时间不到两分钟。在 API 部署并使用之后,API Gateway 为您提供了一个控制面板,可直观地监控服务调用的情况。

    您的 CloudFront 分配可以配置多种行为,这些行为将控制 CloudFront 处理请求的方式以及将应用的功能。该功能让您可配置多个来源,以便在使用相同域的情况下提供内容。通过使用 API Gateway,您无需额外配置即可监控对后端应用程序的请求。

    阅读《卓越运营》白皮书 
  • 通过利用本指南中使用的托管服务,您可以为最终用户提供安全体验,对请求进行授权和验证,并对所有静态数据进行加密。具体而言,Amazon S3 提供灵活的安全功能,可阻止未经授权的用户访问您的数据,并对所有新上传的数据进行加密。API Gateway 支持您根据工作负载要求配置授权和身份验证。CloudFront 可以为您的应用程序创建和配置开箱即用的 AWS WAF 保护,作为抵御常见 Web 威胁的第一道防线。 

    阅读《安全性》白皮书 
  • CloudFront 为后端架构冗余支持多个来源。借助于 CloudFront 的原生来源失效转移功能,可以在主来源不可用时自动从备份来源提供内容。使用来源失效转移设置的来源可以是 AWS 来源 [如 Amazon Elastic Compute Cloud(Amazon EC2)实例、Amazon S3 存储桶或 Media Services] 或非 AWS 来源(如本地 HTTP 服务器)的任意组合。此外,您可以通过 CloudFrontLambda@Edge 实施高级的来源失效转移功能。

    在为本指南配置服务时,请务必注意有关 API Gateway 的一些注意事项。第一,API Gateway 为您账户中的所有 API 的稳定状态速率和激增的请求提交次数设置了限制。第二,您可以为 API 配置自定义节流。第三,您可以使用 Amazon Route 53 自定义您的域名系统(DNS)。第四,您可以运行运行状况检查来控制从主区域的 API Gateway API 到辅助区域的 API Gateway API 的 DNS 故障转移。

    阅读《可靠性》白皮书 
  • CloudFront 在全球拥有数以千计的第 1、2、3 层电信运营商,与所有主要接入网络连接良好,可实现最佳性能,并具有数百 TB 的部署容量。为了以较低的延迟向最终用户分发内容,CloudFront 使用了一个包含 450 多个接入点和 13 个区域边缘缓存的全球网络,该网络覆盖 49 个国家/地区的 90 多个城市。 

    此外,当从 Amazon S3 上传和检索存储时,您的应用程序可以轻松实现每秒数千个事务的请求性能,而且 Amazon S3 会自动扩展以适应高请求率。 

    最后一点,API Gateway 支持您配置缓存和有效载荷压缩以优化性能。

    阅读《性能效率》白皮书 
  • 并非所有来源都是相同的,有些来源可能涉及即时打包等过程,每 GB 的计算成本比从存储中获取内容要高。CloudFront 为您免费提供区域性边缘缓存,以降低来源上的运维负担和减少运营成本。

    Amazon S3 自动为所有应用程序提供强大的写入后读取一致性,无需更改性能或可用性,无需牺牲应用程序的区域隔离性,并且无需任何额外费用。Amazon S3 无需对应用程序进行更改,从而简化了本地分析工作负载的迁移,并且无需提供强一致性的额外基础设施,进而降低了成本。

    阅读《成本优化》白皮书 
  • 本指南中使用的无服务器和托管服务可根据需求变化进行扩展,您只用使用所需的资源。而且,由于 AWS 负责预置底层资源,因此您可以避免预置不需要的资源,并减少基础设施的总体占用量。

    阅读《可持续性》白皮书 

实施资源

提供了在 AWS 账户中进行实验和使用的详细指南。构建指南的每个阶段(包括部署、使用和清理)都将被检查,以便为部署做好准备。

示例代码为起点。它经过行业验证,是规范性但不是决定性的,可以帮助您开始。

联网和内容分发
博客

借助使用 Amazon CloudFront 的同域策略可提高单页面应用程序(SPA)性能

本博文演示了如何在 Amazon CloudFront 中使用同域策略。 

免责声明

示例代码;软件库;命令行工具;概念验证;模板;或其他相关技术(包括由我方人员提供的任何前述项)作为 AWS 内容按照《AWS 客户协议》或您与 AWS 之间的相关书面协议(以适用者为准)向您提供。您不应将这些 AWS 内容用在您的生产账户中,或用于生产或其他关键数据。您负责根据特定质量控制规程和标准测试、保护和优化 AWS 内容,例如示例代码,以使其适合生产级应用。部署 AWS 内容可能会因创建或使用 AWS 可收费资源(例如,运行 Amazon EC2 实例或使用 Amazon S3 存储)而产生 AWS 费用。

本指南中提及第三方服务或组织并不意味着 Amazon 或 AWS 与第三方之间存在认可、赞助或从属关系。AWS 的指导是一个技术起点,您可以在部署架构时自定义与第三方服务的集成。

此页内容对您是否有帮助?