You need to enable JavaScript to run this app. ECS Fargate经ALB访问返回503 直连任务公网IP正常问题排查
优惠活动
大模型
产品
解决方案
定价
更多

ECS Fargate经ALB访问返回503 直连任务公网IP正常问题排查

问题描述
  • 可通过公网IP直接正常访问所有Fargate任务上部署的服务,但无法通过这些任务关联的ALB访问对应服务
  • 已在ALB上配置ssl.crt、ssl.key及SSL链证书,暂未收到证书相关报错,初步判断HTTPS相关配置是问题核心:
    • 自建Docker容器暴露443端口后,通过localhost、容器自身IPv4地址直接访问时,服务运行完全正常
    • Fargate侧容器配置为443端口提供HTTPS服务,ALB监听443端口并配置规则转发至关联目标组,判断问题大概率出在这段转发链路的配置环节
已完成的前期排查

对照过往ECS部署的常见问题逐一核验:

  • 排查容器实际暴露端口与任务定义配置端口的匹配性,无端口不一致问题
  • 核验任务定义资源配额:当前配置1GB内存、0.5vCPU,配额可支撑应用正常运行
  • 核验任务启动超时配置:当前设置为5分钟
  • 排查任务定义启动命令:当前容器无自定义启动命令,排除启动命令不适配问题
配套配置说明

以下为各模块配置记录(截图内容):

  • 集群配置
  • 服务配置
  • 任务配置:含任务列表、任务详情、任务运行日志三类信息
  • 网络配置:
    • 负载均衡器基础配置
    • 目标组基础配置
    • 目标注册状态记录
观测到的运行日志

服务事件日志

  • 服务已达到稳态
  • 服务已达到稳态
  • certified-service服务(部署ID:ecs-svc/9491895578110017561)部署完成

ALB访问日志

h2 2021-02-07T11:44:27.671119Z app/ecr-certfied-lb/(IP)(IP).(IP):36746 - -1 -1 -1 503 - 464 635 "GET https://ecr-certfied-lb-1015030790.ap-southeast-2.elb.amazonaws.com:443/ HTTP/2.0" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36" ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 arn:aws:elasticloadbalancing:ap-southeast-2:821107282698:targetgroup/target-group-certified/(IP)"Root=1-601fd29b-66af109d70aa7fa13abd6207" "ecr-certfied-lb-(IP).ap-southeast-2.elb.amazonaws.com" "arn:aws:acm:ap-southeast-2:(IP):certificate/2977e65a-416e-4c33-b39d-(IP)" 0 2021-02-07T11:44:27.670000Z "forward" "-" "-" "-" "-" "-" "-"

h2 2021-02-07T11:44:28.304793Z app/ecr-certfied-lb/(IP)(IP).112:36746 - -1 -1 -1 503 - 146 634 "GET https://ecr-certfied-lb-1015030790.ap-southeast-2.elb.amazonaws.com:443/favicon.ico HTTP/2.0" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36" ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 arn:aws:elasticloadbalancing:ap-southeast-2:(IP):targetgroup/target-group-certified/(IP)"Root=1-601fd29c-(IP)" "ecr-certfied-lb-(IP).ap-southeast-2.elb.amazonaws.com" "arn:aws:acm:ap-southeast-2:(IP):certificate/(IP)-416e-4c33-b39d-(IP)" 0 2021-02-07T11:44:28.304000Z "forward" "-" "-" "-" "-" "-" "-" "-"
根因定位与解决方案

核心根因

从ALB返回503状态码、转发链路无有效目标响应、直连容器服务正常的表现,可以直接锁定问题:
ALB到后端目标组的转发协议配置与容器提供的服务协议不匹配
当前后端Fargate容器运行的是开启TLS加密的443端口HTTPS服务,但ALB关联的目标组默认使用明文HTTP协议发起请求。ALB向开启TLS加密的端口发送明文HTTP报文时,会直接收到TLS握手阶段的二进制错误响应,无法完成正常HTTP交互,最终触发503服务不可用报错。
这个配置错配完全解释了“直连容器公网IP正常、走ALB不通”的现象——直连时使用HTTPS协议与容器服务匹配,连通性正常;但ALB转发时使用了不匹配的明文协议,自然无法建立连接。

分步修复流程

  1. 进入目标组配置页,打开健康检查设置模块
    • 将健康检查协议从默认HTTP调整为HTTPS
    • 将健康检查端口匹配为容器暴露的443端口
    • 按需配置健康检查路径(可设置为服务默认根路径/)
  2. 回到ALB监听器配置页,打开443端口监听器的转发规则设置
    • 将转发到目标组的协议从HTTP调整为HTTPS
  3. 保存配置后等待目标组健康检查状态从unhealthy切换为healthy
  4. 重新通过ALB域名访问服务,即可正常加载

补充注意事项

  • 调整协议后如果仍出现健康检查失败,需要核验Fargate任务关联的安全组入站规则:必须放通ALB侧网段/安全组对443端口的访问权限,不能仅配置公网0.0.0.0/0的入站规则
  • ALB默认不会校验后端目标返回的证书有效性,即使后端容器使用自签名证书,只要转发协议匹配为HTTPS,就可以正常建立链路,无需额外将后端证书导入ALB做信任配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.04 18:06:07