我刚刚设置了CloudFront分发版,以加快我网站的图片速度。我的图像存储在S3上。我在Route53中使用CNAME别名在我的CloudFront分配端点设置了自定义子域。
但是,在使用样本图像测试速度时,我发现了以下内容:
这3个网址指向同一张图片:
使用来自达拉斯位置的Pingdom进行测试。我从其他地方得到了类似的结果。
来自S3的较慢加载时间非常有意义。图像未在边缘位置缓存。但是,仅仅通过在分发前使用CNAME几乎加倍的加载时间似乎太慢了。 我更喜欢使用CNAME而不是这个性能成本。
我在这里遗漏了什么吗?我到处都读到在大多数情况下额外的DNS CNAME查找可以忽略不计。
答案 0 :(得分:4)
一旦查找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,然后将别名设置为是。然后从别名目标选择列表中选择CloudFront分配并保存记录。