AWS Route 53公有子域名无法公网访问是否需配置公有ALB?
问题根因
你当前的配置中,Route53公有托管区的sales.company.com A记录实际解析到的是内部ALB的私有IP(属于10.0.0.0/8、172.16.0.0/12、192.168.0.0/16这类VPC保留网段)。这类私有IP不会出现在公网骨干路由表中,所以公网用户即使能通过公网DNS拿到解析结果,也无法将请求送达你VPC内部的ALB,自然会触发无法访问的报错。
可行解决方案
实现公网访问并不强制必须使用公有ALB,你可以根据业务场景选择以下任意一种方案:
方案1:使用公有ALB(最推荐,运维成本最低)
这是公网暴露Web服务的常规方案,配置要点如下:
- 新建公有ALB,确保ALB部署在VPC的公网子网(子网已关联互联网网关IGW),同时配置ALB安全组放行公网80/443端口的入方向流量
- 将Route53公有托管区的
sales.company.comA记录修改为别名记录,直接绑定公有ALB资源,无需手动填写IP - 后端服务的安全组仅需放行该公有ALB的私有IP段的访问即可,无需暴露到公网
方案2:不使用公有ALB的替代方案
如果出于安全等原因不想将ALB直接暴露到公网,可以选择以下实现:
- 配置AWS Global Accelerator:将内部ALB添加为Global Accelerator的端点,Global Accelerator会分配公网Anycast IP,公网用户的访问流量会通过AWS骨干网传输到你的VPC内部再转发给内部ALB,你仅需要将
sales.company.com的A记录指向Global Accelerator的公网IP即可 - 公网NAT网关+DNAT规则:在VPC公网子网部署绑定了弹性公网IP的NAT网关,配置DNAT规则将NAT网关公网IP的80/443端口转发到内部ALB的私有IP对应端口,再将
sales.company.com的A记录指向该NAT网关的弹性公网IP即可 - 准入式访问:如果仅允许指定的外部用户访问该服务,可以要求用户先通过企业VPN或专线接入公司内部网络,之后无需修改现有DNS、ALB配置即可正常访问
sales.company.com
内容的提问来源于stack exchange,提问作者user10916892
相关产品推荐
相关产品推荐

