Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 使用Cloudfront修复路由53 CNAME别名慢速响应时间_Performance_Amazon S3_Amazon Cloudfront_Amazon Route53 - Fatal编程技术网

Performance 使用Cloudfront修复路由53 CNAME别名慢速响应时间

Performance 使用Cloudfront修复路由53 CNAME别名慢速响应时间,performance,amazon-s3,amazon-cloudfront,amazon-route53,Performance,Amazon S3,Amazon Cloudfront,Amazon Route53,我刚刚设置了一个CloudFront发行版,以加速我的网站的图像。我的图像存储在S3上。我已在Route53中使用我的CloudFront分发端点的CNAME别名设置了一个自定义子域 但是,在使用示例图像测试速度时,我发现了以下几点: 平均负载时间为418ms 车辆的平均负载时间为97ms 车辆的平均负载时间为57ms 这3个URL指向同一个图像: 第一个URL是来自S3的原始图像 第二个URL是通过Route53中设置的CNAME别名进行访问时来自CloudFront分发的图像 第三个URL是

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

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

平均负载时间为418ms 车辆的平均负载时间为97ms 车辆的平均负载时间为57ms 这3个URL指向同一个图像:

第一个URL是来自S3的原始图像 第二个URL是通过Route53中设置的CNAME别名进行访问时来自CloudFront分发的图像 第三个URL是直接来自Cloudfront发行版的图像 测试是在达拉斯使用Pingdom完成的。我在其他地方也得到了类似的结果

S3较慢的加载时间非常有意义。图像未缓存在边缘位置。然而,仅仅在分发之前使用CNAME就可以将加载时间提高一倍,这似乎太慢了。 我更喜欢使用CNAME,但不是以这样的性能成本


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

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

但是,对于Route 53,您不需要CNAME来指向CloudFront分发。您可以使用A记录别名,该别名使用路由53的内部功能,以便在路由53内部进行查找,而不是通过外部引用CNAME。然后延迟消失了,因为路由53从其内部数据库提供答案


在Route 53控制台中编辑现有RR。。。将其从CNAME更改为A,然后将Alias设置为Yes。然后从别名目标选择列表中选择CloudFront分发并保存记录。

如果使用路由53以外的其他DNS,而不是使用CNAME,则可以使用更有效的方法设置子域委派:。您可以在Route 53中创建分区,并使用A记录别名。然后添加一个NS记录,将您的子域委托给AWS。CloudFront发行版的别名是TTL为60s,CF发行版记录本身也是如此。这不是很理想,因为缓存基本上是最小的。在我们的例子中,DNS解析时间是对CloudFront的HTTPS请求的最大部分。@NikolayDimitrov这是真的,但这是一个典型的折衷-低TTL是弹性策略的一部分。集成的性质没有公开记录,但CloudFront和Route 53紧密耦合,因此,对*.cloudfront.net中每个指定主机名的查询以及指向它的任何别名都可以收到定制的答案,这不仅基于查看器的位置,而且还基于系统对cloudfront edge网络当前状态的了解。使用CNAME时,CNAME的目标仍然具有较低的TTL,因此您的问题仍然存在。@Michael sqlbot,我理解。我只是希望有一天AWS可以使用固定的或寿命更长的IP而不是依赖DNS负载平衡来完成恢复部分。