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

如何将Terraform创建的私有AWS EKS集群中的Web应用暴露至公网(已配置VPC peering)

可行的公网访问方案

根据你描述的私有EKS集群已和CI/CD VPC完成Peering、应用部署为NodePort Service的场景,这里有几个实用的公网访问方案,你可以结合自身架构和流量需求选择:

方案一:利用CI/CD VPC的公网ALB转发流量(推荐生产场景)

既然已经打通了两个VPC的Peering,完全可以把公网入口放在CI/CD VPC的公有子网里,通过Peering把流量导向EKS集群的NodePort服务:

  • 在CI/CD VPC的公有子网创建一个internet-facing的ALB,配置好HTTP/HTTPS监听器
  • 创建目标组,类型选择「实例」,把EKS集群的worker节点IP添加进去,端口填你NodePort Service的端口号(比如30000这类)
  • 配置VPC Peering的路由表:确保CI/CD VPC的路由表能访问EKS节点所在的私有子网,EKS VPC的路由表也能指向CI/CD VPC的ALB子网
  • 调整安全组规则:
    • EKS节点的安全组允许来自CI/CD VPC ALB安全组的NodePort端口流量
    • ALB的安全组允许公网的HTTP/HTTPS(80/443)流量访问
  • 完成后,用户直接访问ALB的公网域名就能到达你的应用了

方案二:CloudFront + EKS内部ALB(适合需要CDN/全球加速的场景)

如果你的应用需要全球加速、缓存或者更安全的公网入口,可以用CloudFront配合EKS VPC内的内部ALB:

  • 在EKS VPC的私有子网创建一个内部ALB,目标组指向NodePort Service或者直接关联ClusterIP(如果ALB能访问集群Pod网络的话)
  • 创建CloudFront分发,源站设置为内部ALB的私有DNS名称,源类型选「自定义源」
  • 配置CloudFront的Origin Access Control(OAC),限制只有CloudFront能访问内部ALB,避免直接访问
  • 调整安全组:内部ALB的安全组允许CloudFront边缘节点的IP段(或者通过VPC Peering的CI/CD VPC方向)访问应用端口
  • 公网用户通过CloudFront的分配域名访问应用,流量会通过CloudFront的边缘节点转发到EKS的内部ALB

方案三:Bastion主机端口转发(适合临时测试/小流量场景)

如果只是临时需要公网访问测试,不想改动太多架构,可以用CI/CD VPC里的Bastion主机做中转:

  • 在CI/CD VPC的公有子网部署一台Bastion实例,分配公网IP,安全组允许公网的SSH(22)和应用端口(比如80)访问
  • 可以用两种方式转发流量:
    1. SSH端口转发:本地执行ssh -L 80:<EKS节点IP>:<NodePort端口> -i <密钥文件> ec2-user@<Bastion公网IP>,然后本地访问localhost:80就能看到应用(适合个人测试)
    2. 在Bastion上部署Nginx做反向代理,配置Nginx把公网80端口的请求转发到EKS节点的NodePort地址
  • 确保Bastion的安全组能访问EKS节点的NodePort端口,EKS节点的安全组允许来自Bastion的流量

方案四:扩展EKS VPC添加公有子网部署公网ALB(适合允许修改EKS网络架构的场景)

如果你的EKS VPC目前只有私有子网,可以新增公有子网来部署公网ALB:

  • 在EKS VPC中创建两个以上的公有子网,配置路由表指向互联网网关
  • 在这些公有子网创建公网ALB,目标组指向EKS节点的NodePort端口
  • 调整EKS节点的安全组,允许来自公有子网ALB的流量
  • 公网用户直接访问ALB的公网域名即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 06:50:02