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

如何实现双域名托管同一服务器并自动更新ECS Fargate目标组?

解决ECS Fargate多目标组自动注册的方案

方案一:通过Lambda + CloudWatch Events自动同步目标组

这是最直接的自动化方案,利用AWS原生服务实现任务IP的自动同步:

  • 创建Lambda函数,核心逻辑:
    1. 调用ECS.ListTasks获取目标ECS服务下所有处于RUNNING状态的任务
    2. 调用ECS.DescribeTasks提取这些任务的弹性网络接口(ENI)私有IP
    3. 调用ELBv2.RegisterTargets将这些IP注册到第二个目标组
    4. 调用ELBv2.DeregisterTargets移除目标组中已停止运行的任务IP
  • 配置CloudWatch Events规则,触发条件选择ECS Task State Change,过滤条件设为任务状态变为RUNNING且属于目标ECS服务
  • 为Lambda函数配置IAM权限:允许ecs:ListTasks、ecs:DescribeTasks、elasticloadbalancing:RegisterTargets、elasticloadbalancing:DeregisterTargets操作,同时限定对应的ECS集群、服务和目标组资源

方案二:合并目标组,利用ALB主机头路由

如果两个域名指向同一应用,完全可以省去第二个目标组,通过ALB的路由规则实现域名分流:

  • 保留已有的目标组(自动更新的那个)
  • 在ALB的监听器下添加两条规则:
    1. 规则1:匹配主机头www.abc.com,转发到现有目标组
    2. 规则2:匹配主机头www.xzy.com,同样转发到现有目标组
  • 确保Cloudflare的两个域名都指向该ALB的公网地址

方案三:使用ECS服务扩展(Service Extension)

通过AWS ECS的服务扩展功能,自定义服务部署后的操作:

  • 创建ECS服务扩展,在服务部署完成的生命周期钩子中,执行同步目标组的逻辑
  • 扩展的核心逻辑和方案一的Lambda函数一致,只是通过ECS原生的扩展机制触发,不需要额外配置CloudWatch Events

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 11:50:20