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

Route53根域已有A记录时如何同时映射S3静态站与Lambda API?

问题解答

同域名多条A记录的支持情况

Route53本身支持为同一主机名创建多条同类型A记录,可配合加权路由、多值应答、故障转移、地理位置路由等策略实现DNS层面的流量拆分。但DNS解析工作在HTTP协议层之下,完全无法感知请求携带的URL路径信息,就算同时创建指向S3和API Gateway的两条A记录,解析阶段只会按照配置的路由策略返回其中一个端点的地址,用户访问/products/*路径时大概率被解析到S3端点返回404,完全无法实现按路径分流的需求,该思路不可行。

可行落地方案

该场景的核心是需要在DNS层和后端服务之间增加一层支持HTTP协议解析的七层路由组件,根据请求路径转发到对应后端,两个生产级常用方案如下:

  • 方案一:CloudFront边缘路由(优先推荐,全Serverless无闲置成本)
    1. 删除Route53中原有直接指向S3存储桶的根域A记录
    2. 新建CloudFront分发,将xyz.com添加为分发备用域名,绑定对应域名的SSL证书
    3. 在分发配置中添加两个源站:
    • 源站A:原有托管静态首页的S3静态网站托管端点
    • 源站B:已部署完成的API Gateway调用端点(也可直接使用Lambda函数URL作为源站)
    1. 配置缓存行为实现路径路由:
    • 新建高优先级缓存行为,路径匹配规则设为/products/*,关联到API Gateway/Lambda源站,根据业务需求配置响应缓存策略、支持的HTTP方法
    • 将默认缓存行为(匹配所有路径/*)关联到S3源站,负责响应根路径及其他静态资源请求
    1. 回到Route53控制台,为根域xyz.com新建别名A记录,指向刚创建的CloudFront分发即可生效
  • 方案二:ALB七层路由(适合已有VPC架构、长期使用ALB的场景)
    1. 删除Route53中原有直接指向S3存储桶的根域A记录
    2. 新建公网Application Load Balancer,配置HTTPS监听器并绑定对应域名的SSL证书
    3. 为ALB配置两个目标组:
    • 目标组A:目标类型选择S3,绑定托管静态首页的存储桶
    • 目标组B:目标类型选择Lambda,绑定处理产品页请求的Lambda函数,无需额外搭配API Gateway
    1. 配置HTTPS监听器规则:新增规则匹配路径/products/*,转发到Lambda目标组;设置监听器默认动作转发到S3目标组
    2. 在Route53中为根域xyz.com新建别名A记录,指向创建好的ALB即可

注:如果此前已经为API Gateway配置了xyz.com作为自定义域名,使用CloudFront方案时可删除该自定义域名配置,直接让CloudFront回源到API Gateway的默认调用端点,简化配置流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 22:36:23