使用 Cloudfront 修复 Route 53 CNAME Alias 缓慢的响应时间

Fixing Route 53 CNAME Alias slow reponse times with Cloudfront

我刚刚设置了一个 CloudFront 分配以加速我网站的图像。我的图像存储在 S3 上。我在 Route53 中使用 CNAME 别名为我的 CloudFront 分发端点设置了一个自定义子域。

但是,我在使用示例图像测试速度时发现了以下问题:

这 3 个 URL 指向同一张图片:

测试是使用来自达拉斯位置的 Pingdom 完成的。我从其他地方也得到了类似的结果。

S3 的较慢加载时间非常合理。图像未缓存在边缘位置。然而,仅通过在分发前使用 CNAME 几乎使加载时间增加一倍似乎太慢了。 我更愿意使用 CNAME,但不会以这种性能成本为代价。

我是不是漏掉了什么?我到处都读到,在大多数情况下,额外的 DNS CNAME 查找可以忽略不计。

一旦查找 CNAME 的结果及其目标被任何给定的解析器缓存,CNAME 延迟应该消失在噪音中,但除非它是不跨越多个域的 CNAME(例如 foo.example.com. CNAME bar.example.com. ) 双重查找时间总是不可避免的。

但是,您不需要 Route 53 的 CNAME 即可指向 CloudFront 分配。您可以使用 A 记录别名,它使用 Route 53 的内部功能,以便查找是在 Route 53 内部完成的,而不是通过 CNAME 的外部引用完成的。然后延迟消失,因为 Route 53 从其内部数据库提供答案。

在 Route 53 控制台中编辑您现有的 RR...将其从 CNAME 更改为 A,然后将别名设置为是。然后 select 来自别名目标 selection 列表的 CloudFront 分配并保存记录。