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

AWS ECS关联ALB健康检查正常但其他端点返回503错误问题咨询

故障现象

为AWS ECS配置Application Load Balancer后,健康检查端点可正常返回200响应,访问其余任意业务端点时ALB返回如下固定响应:

<html>
<head>
    <title>503 Service Temporarily Unavailable</title>
</head>
<body>
    <center>
        <h1>503 Service Temporarily Unavailable</h1>
    </center>
</body>
</html>

该响应为ALB原生返回的错误页,代表ALB无法将请求转发至可用后端目标,健康检查正常场景下的常见诱因与排查方向如下:

  • 端口/协议映射配置错误
    健康检查支持单独配置检查端口、协议、路径,与业务转发的默认配置互不影响。优先核对三项配置一致性:
    • ECS任务定义中容器的端口映射,确认业务应用实际监听的端口和映射到主机/ENI的端口一致
    • 目标组配置的默认转发端口、转发协议,和容器暴露的业务端口、应用监听协议(HTTP/HTTPS)一致,避免出现健康检查配了HTTP 10000端口(健康检查接口专用)、业务转发误配成HTTP 8080但容器未监听8080的情况
  • 网络访问规则拦截业务流量
    安全组、网络ACL规则如果只放通了健康检查端口的访问,未放通业务转发端口的ALB访问权限,就会出现健康检查可达、业务流量被拦截的情况:
    • 检查EC2实例/Fargate任务ENI绑定的安全组入站规则,确认ALB关联的安全组被允许访问所有业务转发端口
    • 检查ALB、ECS任务所在子网的网络ACL规则,确认对应端口的入站、临时端口段出站规则未被拦截
  • 目标组配置与ECS启动类型不匹配
    Fargate启动类型的ECS任务必须关联ip类型的目标组,EC2启动类型如果使用instance类型目标组需要确保实例端口映射正确。如果目标组类型选错,健康检查可能因配置的静态地址临时连通,但业务转发时ALB无法正确路由到目标资源就会返回503。同时检查目标组下所有注册目标的状态,确认没有处于draining、initial状态的目标,避免出现健康检查端口正常、业务端口异常导致部分目标被判定为业务不可用的情况。
  • 监听器转发规则配置错误
    检查ALB的监听器规则:如果除了默认转发规则之外,配置了更高优先级的规则匹配所有路径,转发到了没有可用目标的空目标组,就会出现健康检查(走默认规则/专门的健康检查规则)正常,业务请求被高优先级规则转发到异常目标组返回503的情况。
  • 快速定位方法
    在ALB同子网的跳板机上直接访问ECS任务的私有IP+业务端口,绕过ALB验证业务端点可用性:
    • 直连不通:问题出在容器应用端口监听配置、任务/实例安全组规则
    • 直连正常:问题出在ALB目标组配置、监听器转发规则、ALB到目标组的网络策略
      也可以通过响应头判断故障层级:ALB直接返回的503会携带X-Amzn-Trace-Id头,且为固定的默认503页面,说明请求未到达后端;如果返回内容是应用自定义错误页,说明请求已到达后端,故障为应用侧路由、Host校验、鉴权逻辑拦截(多数Web框架默认不对健康检查路径做Host、鉴权校验,其余路径会触发校验逻辑)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 03:36:34