首页 > 解决方案 > 为什么具有 ALB 自定义源的 CloudFront 分配比没有 CloudFront 的 ALB 慢?

问题描述

我创建了一个 CloudFront 分配,其中一个 ALB 作为自定义源。启用缓存的最小和默认 TTL 为一天(当然以秒为单位)。

经过多次测试,我意识到我的 CloudFront 分配比原始 ALB 慢。

有人对此有解释吗?

标签: amazon-web-servicesamazon-cloudfront

解决方案


CloudFront 将额外的跃点添加到网络路径。

如果没有 CloudFront,请求将直接转到 ALB 并从后端提供服务。

User -> Internet -> ALB -> Backend

使用 CloudFront 在通信流中增加了另一个步骤(在“第一个”请求上)。

User -> Internet -> CloudFront edge location -> ALB -> Backend

当您在地理上(或根据网络路径)靠近实际来源 (ALB) 时,这会使初始请求变慢。

知道了这一点,CloudFront 可能听起来像是一个无用的服务,但它实际上有不同的目的。它在这些边缘位置缓存信息,并能够从那里向用户提供内容。由于有数百个边缘站点分布在世界各地,其中一个可能更靠近您的最终用户,并且如果数据缓存在那里,则请求不必返回到您的 ALB。

这使得它对全球分布的用户群非常有用,并且它还有另一个好处:减少了后端负载,因为静态内容缓存在 CloudFront 中,您可以使用那些昂贵的计算资源来进行……嗯……计算。

根据您的测量位置,CloudFront 可能有益或无益,但这不一定与任何个人用户的速度有关,而是普通用户的速度以及减少昂贵后端资源的负载。


推荐阅读