内容分发网络 (CDN) 是几乎所有现代 Web 应用程序的关键组件。过去,CDN 仅仅通过在全球分布的一组缓存服务器中复制常被请求的文件 (静态内容) 来改进内容传输。但是,CDN 的用处逐渐远超以往。在缓存方面,CDN 将通过从附近的缓存边缘站点或接入点 (PoP) 传输本地内容副本,减少应用程序源头的负载并改善请求者的体验。应用程序源头不再需要打开连接并直接传输内容,因为 CDN 将处理这些繁重的工作。最终结果就是,应用程序源头无需扩展即可满足对静态内容的需求。
CDN 所做的工作远不止缓存,它们还将交付对请求者唯一并且不可缓存的动态内容。使用 CDN 交付动态内容的优势在于应用程序性能和扩展能力。CDN 将建立并维护与请求者更近的安全连接,并且,如果 CDN 与源头在同一个网络上,例如云端 CDN 的情况,路由回源头检索动态内容的速度将更快。此外,如表单数据、图像和文本等内容都可接受处理并发送回源头,从而利用低延迟连接和 PoP 代理行为的优势。通过结合静态和动态内容分发,客户现在可以使用 CDN 提供整个站点的交付和交互性。
缓存的智能性也已大幅提高,可检查包含在请求标头中的信息,并基于设备类型、请求者信息、查询字符串或 Cookie 设置改变响应。CDN 可在指引下从多个来源检索对象、实施协议策略、协商 SSL 连接和按位置或身份验证凭证限制对象访问。最近开发的在边缘位置执行逻辑计算的功能为动态 Web 应用程序提供了更高的灵活性。CDN 能够快速检查请求并修改缓存逻辑和身份验证的行为,甚至修改处于传输或使用状态的内容。将应用程序逻辑推向边缘位置为应用程序开发人员带来了新的可能性,并将来源计算需求分担到分布式智能网络。
最后,CDN 能够提供网络和应用程序级别的保护,通过 Web 应用程序防火墙和集成在边缘位置和缓存网络中的 DDoS 保护服务过滤流量,防止服务损害或丢失。安全控制与大量网络带宽相结合,可将自动程序、Scraper 爬虫工具和黑客程序隔绝在外,而不会损害应用程序可用性或性能。
Amazon CloudFront 是功能丰富的全球性大型 CDN,提供安全、可扩展且智能集成的应用程序交付功能。下图显示了 Amazon CloudFront 与 AWS 组件的集成方式。