You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CloudFront转发API Gateway请求产生额外延迟,寻求优化方案

API Gateway经CloudFront转发后延迟升高的优化方案

问题背景

直接调用区域型API Gateway端点或其自定义域名时,响应时间约300ms:

  • 调用https://xxxxxx.execute-api.us-west-2.amazonaws.com/stage/api/users,响应时间约300ms
  • 使用自定义域名https://api.myexample.com/api/users调用,响应时间约300ms

Web应用通过CloudFront + S3部署在https://myexample.com,为解决跨域资源共享(CORS)问题,在CloudFront中新增指向API Gateway的源,配置/api/*行为规则转发请求,此时调用https://myexample.com/api/users(转发至上述API Gateway端点),响应时间约800ms,CloudFront额外增加了500ms延迟。

优化方法

  1. 改用API Gateway边缘优化型端点
    区域型API Gateway部署在指定区域(us-west-2),CloudFront边缘节点到该区域的跨网络链路会产生额外延迟。切换为边缘优化型端点后,API Gateway会在CloudFront边缘节点部署接入层,请求先到达就近边缘节点,再通过AWS内部优化链路转发到后端API,大幅缩短跨区域传输耗时。

  2. 优化CloudFront缓存与源配置

    • 针对动态API(如用户数据接口),配置精准的缓存键和TTL规则,避免CloudFront误缓存或无效回源,同时不要强制缓存动态内容。
    • 启用CloudFront的Origin Shield:在API Gateway所在的us-west-2区域配置Origin Shield作为中间层,减少直接回源次数,利用AWS内部网络优化传输效率。
    • 调整源连接参数:增大CloudFront到API Gateway的源连接数、缩短连接超时时间,减少TCP连接建立带来的延迟。
  3. 调整CORS解决逻辑,绕过CloudFront转发

    • 在API Gateway直接配置CORS规则,允许https://myexample.com作为跨域源,这样Web应用可直接调用API的自定义域名https://api.myexample.com/api/users,彻底规避CloudForward带来的额外延迟。
    • 若必须通过主域名调用,可考虑在S3静态页面中借助Lambda@Edge实现反向代理,但该方式复杂度较高,优先推荐直接在API Gateway配置CORS。
  4. 匹配CloudFront与API Gateway的区域路由
    确认CloudFront的默认缓存区域与API Gateway所在的us-west-2区域尽可能接近,或通过路由策略选择更优的边缘节点,减少跨区域跳转的延迟损耗。


内容的提问来源于stack exchange,提问作者Abhijeet Ahuja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 11:03:35