同一域名api.example.com下公网与内网路径能否通过AWS服务分流?
可以通过AWS原生服务实现,无需自定义方案
核心实现方案(基于ALB + Route 53)
这是最直接且符合需求的原生方案,无需编写任何自定义代码:
1. 配置Application Load Balancer (ALB)
- 创建一个ALB,部署在目标VPC的公有子网,同时开启内网访问权限(允许VPC内资源直接访问ALB的内网DNS)
- 创建两个目标组:
- 内网目标组:关联你的内网API Gateway的VPC端点(或内网Load Balancer),目标类型选择
IP或对应资源类型 - 公网目标组:关联公网API Gateway的域名(目标类型选
域名,填入公网API Gateway的访问地址)
- 内网目标组:关联你的内网API Gateway的VPC端点(或内网Load Balancer),目标类型选择
- 配置ALB监听器规则:
- 规则1:匹配路径
/internal/*,额外添加条件限制仅允许来自目标VPC内网IP段的请求,触发后转发至内网目标组(确保只有同一VPC内的/internal/*请求走内网路由) - 规则2:默认规则(匹配所有其他请求),转发至公网目标组
- 规则1:匹配路径
2. 配置Route 53
- 在公有托管区中,将
api.example.com的A/AAAA记录指向ALB的公有DNS(供外网请求访问) - 在目标VPC的私有托管区中,将
api.example.com的A/AAAA记录指向ALB的内网DNS(确保VPC内的请求优先走ALB内网地址,避免绕公网)
- 在公有托管区中,将
补充说明
- 如果不需要区分请求来源(即所有
/internal/*请求都走内网,无论来源),可以去掉ALB规则中的IP段限制,但需确保内网目标仅允许VPC内访问(通过安全组/网络ACL控制) - 也可使用CloudFront替代ALB实现路径路由,但ALB更适合VPC内的内网访问场景,延迟更低
内容的提问来源于stack exchange,提问作者Anton
相关产品推荐
相关产品推荐

