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

基于Elastic Beanstalk的Flask应用:如何安全对外开放私有LB内容?

最优集成方案

方案一:直接把私有LB换成公网LB(首推)

这是最简洁、最贴合EB架构设计的方案,不用加额外组件,操作步骤如下:

  • 登录AWS控制台,进入你的Elastic Beanstalk环境配置页面
  • 找到「负载均衡器」配置模块,把负载均衡器类型从「内部(私有)」改成「互联网面向」
  • 调整LB所在子网:选公有子网(公有子网关联了互联网网关,能直接接公网流量)
  • 锁死安全组规则:
    • 公网LB的安全组只开必要端口(比如HTTP/80、HTTPS/443),能限制源IP范围的话尽量限(比如只允许办公IP段访问)
    • 后端EC2实例的安全组只放通来自公网LB安全组的流量到Flask应用端口(比如默认的5000)
  • 验证:EB会自动搞定LB的重新配置和DNS解析更新,之后直接用公网LB的域名就能访问Flask应用

方案二:CloudFront搭配私有LB(适合需要CDN/WAF的场景)

如果业务需要CDN加速、Web应用防火墙这类附加能力,用CloudFront+私有LB的架构就行,不用公网NAT:

  • 配置CloudFront分发,把源设为私有LB的DNS域名
  • 开启CloudFront的「私有源访问」功能,用Origin Access Control(OAC)授权CloudFront访问私有LB
  • 给私有LB所在的VPC配置CloudFront的VPC端点,让CloudFront的流量能直接进VPC访问私有LB,不用走公网
  • 安全组配置:私有LB的安全组允许来自CloudFront VPC端点的流量,EC2实例安全组允许私有LB的流量

为啥不推荐「公网LB -> NAT -> 私有LB」

这个架构确实冗余:公网LB本身就能直接对接后端资源,中间加NAT完全是多此一举,既增加成本,又多了一层故障点和延迟,完全不符合AWS架构的极简原则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 20:45:15