减少 CloudFront 后面托管的公共 API 的响应延迟

Posted

技术标签:

【中文标题】减少 CloudFront 后面托管的公共 API 的响应延迟【英文标题】:Reducing response latency for public API hosted behind CloudFront 【发布时间】:2021-07-31 00:06:22 【问题描述】:

我正在使用托管在 CloudFront 后面的公共 API。我希望尽可能减少延迟。

到目前为止,我做了以下事情:

    将我的代码托管在与 API 源服务器位于同一区域的 EC2 上。 (我知道根据 ping 时间可以将源服务器托管在哪个区域)

    尝试从该区域内的各个可用区域 ping API 域名,并确定了 ping 时间最短的区域。

但是,在我的测试过程中,我遇到了来自桌面的 ping 时间小于来自我的 EC2 实例的 ping 时间的实例。因此,我查看了 CNAME 和 IP,原始 API 域名在每种情况下都被解析为什么。我发现它们是不同的。

我可以做些什么来确保 CloudFront 的 DNS 解析将我引导到延迟最低的链接。

我可以使用我在测试期间发现最快的 CNAME 或 IP。但是 CNAME/IP 可能会改变,所以这不是一个合适的解决方案。

我认为答案可能在于智能 DNS 客户端,它定期 ping DNS 文件中的所有服务器并将 DNS 请求解析为最快的 IP。但是我不知道是否存在这样的客户端以及如果存在如何使用它。

我想听听你的想法。

【问题讨论】:

【参考方案1】:

我可以做些什么来确保 CloudFront 的 DNS 解析将我引导到延迟最低的链接。

如果你有自己的域名,可以尝试使用Route53的latency record或Geoproximity routing

【讨论】:

以上是关于减少 CloudFront 后面托管的公共 API 的响应延迟的主要内容,如果未能解决你的问题,请参考以下文章

对于托管在 CloudFront 后面的 EC2 实例上的站点,如何将非 www 流量重定向到 www?

在 S3 + Cloudfront 上以相同的 URL 托管多个 SPA Web 应用程序

CloudFront 后面的 API Gateway 不支持 AWS_IAM 身份验证吗?

AWS WAF 对 cloudfront 后面的 apigateway 没有影响

EC2 在 CloudFront 后面使用 HTTPS 运行 NGINX?

CloudFront 使用路径前缀重定向所有请求