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

AWS ECS配置:如何让ALB指向容器3000端口?

修改CloudFormation堆栈让ALB指向容器3000端口的步骤

需要修改CloudFormation模板中的以下核心位置:

1. 任务定义(TaskDefinition)的容器端口映射

找到模板里的AWS::ECS::TaskDefinition资源,调整容器定义中的端口映射配置:

  • 将PortMappings里的ContainerPort从80改为3000;
  • 如果使用桥接网络模式且配置了HostPort,可设为0让ECS自动分配端口(避免冲突),也可同步设为3000。

示例代码片段:

MyTaskDefinition:
  Type: AWS::ECS::TaskDefinition
  Properties:
    Family: !Ref TaskFamily
    NetworkMode: awsvpc
    ContainerDefinitions:
      - Name: my-node-app
        Image: !Ref AppImage
        PortMappings:
          - ContainerPort: 3000  # 此处从80修改为3000
            Protocol: tcp
        # 其他容器配置项...

2. 目标组(TargetGroup)的端口配置

找到AWS::ElasticLoadBalancingV2::TargetGroup资源,同步修改目标端口和健康检查端口:

MyTargetGroup:
  Type: AWS::ElasticLoadBalancingV2::TargetGroup
  Properties:
    Name: !Ref TargetGroupName
    Port: 3000  # 此处从80修改为3000
    Protocol: HTTP
    VpcId: !Ref VpcId
    TargetType: ip
    HealthCheckProtocol: HTTP
    HealthCheckPort: 3000  # 健康检查端口也需同步改为3000
    HealthCheckPath: /health
    # 其他目标组配置项...

3. 安全组规则调整

检查ECS任务对应的安全组(若为EC2启动类型则检查容器实例安全组),确保允许ALB的安全组访问3000端口:

ECSTaskSecurityGroup:
  Type: AWS::EC2::SecurityGroup
  Properties:
    GroupDescription: Allow traffic for ECS tasks
    VpcId: !Ref VpcId
    SecurityGroupIngress:
      - SourceSecurityGroupId: !Ref ALBSecurityGroup
        IpProtocol: tcp
        FromPort: 3000  # 此处从80修改为3000
        ToPort: 3000

4. 监听器规则验证(通常无需修改)

ALB的监听器(AWS::ElasticLoadBalancingV2::Listener)一般监听80/443端口并转发到目标组,这部分无需调整——因为目标组已经配置为指向容器3000端口,监听器只负责接收外部流量并转发即可。

修改完成后,更新CloudFormation堆栈即可生效。建议更新前先预览变更,确认修改的资源范围正确,避免影响现有服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 15:36:04