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

如何将AWS Fargate服务接入现有Network Load Balancer?

问题解答

1. 如何使用NLB为Fargate集群服务实现负载均衡

你遇到控制台仅显示ALB选项的问题,核心是几个关键配置没到位,按以下步骤排查和配置即可解决:

  • 确认任务定义的网络模式:Fargate服务搭配NLB必须使用awsvpc网络模式(这是Fargate的默认配置,无需修改,但要确保没手动改成其他模式)。
  • 任务端口映射协议与目标组类型匹配:
    1. 任务定义中,容器端口映射的协议设为TCP或UDP(对应NLB的协议)。
    2. 你的现有NLB需要配置IP类型的目标组——因为Fargate任务运行在awsvpc模式下,每个任务都有独立的弹性网卡IP,无法使用实例类型的目标组。如果现有NLB的目标组是实例类型,需要创建新的IP类型目标组。
  • 控制台创建服务时的正确操作:
    在ECS控制台创建服务的负载均衡配置环节:
    • 先切换负载均衡类型为「网络负载均衡器」(不要默认选应用负载均衡器)。
    • 选择你现有的NLB,然后关联对应的IP类型目标组,配置容器端口与NLB端口的映射规则。

如果控制台操作仍有问题,可以用AWS CLI直接创建服务,示例命令如下(替换占位符为你的实际资源信息):

aws ecs create-service \
  --cluster your-cluster-name \
  --service-name your-fargate-service \
  --task-definition your-task-def:1 \
  --desired-count 2 \
  --launch-type FARGATE \
  --network-configuration "awsvpcConfiguration={subnets=[subnet-xxxxxx],securityGroups=[sg-xxxxxx],assignPublicIp=DISABLED}" \
  --load-balancers "targetGroupArn=arn:aws:elasticloadbalancing:region:account-id:targetgroup/your-nlb-target-group/xxxxxx,containerName=nginx-container,containerPort=80"

2. NLB流量路由至ALB再指向Fargate是否合理?

这种架构是合理的,但需根据你的业务场景判断是否必要:

  • 适用场景:
    • 现有NLB已有成熟的公网入口、TCP/UDP转发规则或第三方集成,不想改动NLB配置;
    • 需要利用ALB的七层功能(比如路径路由、HTTPS终止、WAF集成、会话粘滞等),而NLB仅提供四层转发能力。
  • 注意事项:
    • 建议将ALB配置为内部负载均衡,避免公网直接暴露ALB,仅通过NLB对外提供服务;
    • NLB的目标组需指向ALB的弹性网卡IP(目标类型选IP),或者直接转发到ALB的监听端口;
  • 潜在缺点:多一层负载均衡会增加少量网络延迟,同时额外的ALB会带来一定的成本开销,且需要多维护一个组件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 18:06:27