我向 AWS Support 提交了一个技术支持案例,以解决我的 Amazon CloudFront Web 分配的延迟问题。我想包括所需的信息。
解决方法
**注意:**您必须参加 Developer、Business 或 Enterprise Support 计划,才能提交技术支持案例。
准备下列信息:
1. 收集存在延迟问题的请求的 Amazon CloudFront 请求 ID。通过以下方式之一查找请求 ID:
从 CloudFront 返回的 X-Amz-Cf-Id HTTP 响应标头中查找。使用诸如 cURL 之类的实用程序来检索响应标头。
-或-
从 CloudFront 访问日志中查找。请求 ID 位于 Web 分配日志文件的 15 号字段中。
2. 衡量从 CloudFront 下载对象所需的时间。此外,还要衡量直接从源下载对象所需的时间。然后,获得两种下载方法之间的时间差异。
要获取此信息,请使用类似于以下内容的 cURL 命令:
curl -v -L --output /dev/null --silent --show-error --write-out 'lookup: %{time_namelookup}\nconnect: %{time_connect}\nappconnect: %{time_appconnect}\npretransfer: %{time_pretransfer}\nredirect: %{time_redirect}\nstarttransfer: %{time_starttransfer}\ntotal: %{time_total}\n' '<CloudFront-DNS or origin-endpoint>'
如果浏览器可以重现问题,请收集相关的 HAR 文件。
3. 从您的 DNS 解析程序处收集 IP 地址,以解决特定地址的延迟问题。有关如何查找 DNS 解析程序的公有 IP 地址的说明,请参阅如何确定我的公有 DNS 解析程序是否支持 EDNS 客户端子网(ECS)扩展?
4. 收集 CloudFront DNS 或 IP 以及源端点的 TCP Traceroute 或 MTR 报告。例如,您的端点可能位于 Amazon Elastic Compute Cloud(Amazon EC2)或应用程序负载均衡器中。
要获取 MTR 报告,请运行以下命令:
mtr -rwzn <CloudFront-DNS or origin-endpoint>
相关信息
请求和响应行为
如何解决 CloudFront 的延迟增加问题并减少延迟?