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

如何在AWS ECS Fargate+GitHub Actions CI/CD中配置静态IP?

解决ECS Fargate静态IP绑定域名的方案

针对你遇到的动态IP和ALB配置问题,这里有几个实用的解决方案:

方案一:使用ALB + IP类型目标组(推荐)

你之前配置ALB失败是因为选错了目标组类型,Fargate不需要EC2实例,应该用IP类型目标组:

  • 创建IP目标组:在EC2控制台的目标组页面,选择「IP」作为目标类型,端口填你的应用监听端口,VPC选择和Fargate集群一致的,健康检查路径设为应用的健康检查端点(比如/health)。
  • 创建应用负载均衡器:选择「Internet-facing」,VPC和子网要和Fargate任务所在的可用区匹配,安全组开放80(HTTP)或443(HTTPS)端口。
  • 配置ALB监听:添加监听规则,把80/443端口的流量转发到刚才创建的IP目标组。
  • 更新ECS服务:在ECS服务的负载均衡配置里,关联刚才的ALB和目标组。之后Fargate任务启动时会自动把私有IP注册到目标组,ALB会自动路由流量,你只需要把域名解析到ALB的DNS地址即可,ALB地址是固定的。

方案二:使用AWS Global Accelerator获取静态Anycast IP

如果需要全球范围内的稳定静态IP,可以用Global Accelerator:

  • 创建Global Accelerator:在控制台创建加速器,AWS会分配2个静态Anycast IP(全球唯一)。
  • 配置端点组:选择Fargate任务所在的区域,添加ECS服务或者刚才的ALB作为端点。
  • 映射端口:把加速器的端口(比如80)映射到应用的监听端口。
  • 绑定域名:把域名解析到Global Accelerator的静态IP或者它提供的DNS域名,流量会通过AWS全球网络路由到你的Fargate任务,IP不会随任务变化。

方案三:给Fargate任务绑定弹性IP(EIP)

适合单任务、不需要扩缩容的场景:

  • 创建弹性IP:在EC2控制台创建EIP,确保和Fargate任务在同一区域。
  • 修改任务定义:将网络配置里的「Assign public IP」设为ENABLED。
  • 绑定EIP:部署任务时,通过AWS CLI命令aws ec2 associate-address把EIP绑定到任务的弹性网络接口(ENI),可以把这个命令集成到你的GitHub Actions CI/CD流程里,每次部署后自动绑定。
  • 绑定域名:把域名解析到这个EIP即可,但要注意任务重启后需要重新执行绑定操作,所以必须自动化这个步骤。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 18:42:14