AWS Endpoint Service暴露on-prem API的目标组配置方法咨询
针对本地IDC API暴露场景的PrivateLink目标组配置方案
你这个场景直接选**IP address类型**的目标组就行,剩下三类目标类型完全不匹配你的需求,先给你说下为什么排除其他选项:
instance类型:仅支持注册同VPC内的EC2实例作为目标,你的API部署在本地机房,没法直接注册,直接排除lambda类型:仅支持挂载Lambda函数作为后端,和你本地API的场景完全无关,排除alb类型:仅支持将同VPC内的ALB监听器注册为目标,属于多绕一层转发的方案,除非你VPC内已经有ALB做本地API的前置转发,否则完全没必要选,徒增架构复杂度。
前置检查(必须先做,不然配完必不通)
在配置目标组之前,先确认你的自有VPC和本地机房的私网连通性已经就绪:
- 已经通过Direct Connect专线或者Site-to-Site VPN打通VPC和本地IDC的网络
- VPC关联的路由表已经配置了本地API所属网段的路由,指向对应的虚拟网关/传输网关
- VPC侧的安全组、网络ACL,以及本地IDC的防火墙,已经放通VPC内NLB部署网段到本地API监听端口的访问权限
- 先在VPC内找一台测试EC2,直接curl本地API的私网地址+端口,确认能正常访问,再往下走配置流程。
具体配置步骤
- 创建目标组
目标类型选IP address,协议、端口和你本地API的实际监听配置对齐(比如HTTPS 443),关联的VPC选你要部署PrivateLink的自有VPC,健康检查路径填你API实际可用的健康检查接口(比如/api/health,不要直接用默认的/,避免健康检查误判),其余参数保持默认即可。 - 注册目标
目标组创建完成后点注册目标,直接填你本地on-prem API的私网IP地址就行——AWS原生支持把通过DX/VPN连通的VPC外私网IP(仅限RFC1918私网段:10.0.0.0/8、172.16.0.0/12、192.168.0.0/16)注册到IP类型目标组,填完对应端口,选择你后续要部署NLB的可用区完成注册。 - 关联NLB与端点服务
等目标组的健康检查状态显示目标为健康后,先在VPC的私有子网跨可用区部署一个内网Network Load Balancer(PrivateLink端点服务的后端必须挂载NLB,这是服务硬要求,没有替代方案),给NLB创建和API协议端口一致的监听器,把刚才创建的IP类型目标组挂到这个监听器下。等NLB状态变为Active之后,再创建VPC Endpoint Service,关联这个NLB,开启私有DNS解析(如果需要的话),最后把端点服务的服务名发给合作方,让对方在自己的VPC内创建接口型VPC端点关联你的服务,就能实现私网访问。
常见踩坑点
- 目标组健康检查的源IP是NLB所在子网的网段地址,本地防火墙一定要放通这个网段的入方向访问,不然健康检查会一直失败,后端状态为unhealthy,合作方的请求根本转发不到本地API
- 如果你的本地API是多节点集群,直接把所有节点的私网IP都注册到同一个目标组即可,NLB会自动做跨节点的流量分发,不需要额外在本地再搭一层负载均衡
- 不要尝试给IP类型目标组注册公网IP,PrivateLink本身是全私网链路,公网IP不在支持的目标范围内
- 合作方创建端点的时候要提醒对方开对可用区、配好端点的安全组放通出方向到API端口的访问,不然会出现对方侧连不通端点的问题
内容的提问来源于stack exchange,提问作者user2717708
相关产品推荐
相关产品推荐

