AWS ECS ALB 错误(请求超时)
Posted
技术标签:
【中文标题】AWS ECS ALB 错误(请求超时)【英文标题】:AWS ECS ALB Error (Request timed out) 【发布时间】:2018-09-06 17:27:21 【问题描述】:我正在尝试学习/使用 AWS ECS,但一直在学习
服务已达到稳定状态。
接着是:
由于(原因请求超时),服务(实例 i-05873e2a55ecba2f6)(端口 32768)在目标组中不正常
我不确定您需要哪些信息来提供帮助,但我之前在 EC2 实例中使用过这个负载均衡器,但我正在用通过 ECS 启动的实例替换这些 EC2 实例,现在我遇到了这个错误。
我的集群位于我的默认 VPC 中,并且包含所有 3 个子网(东区)。安全组是我的负载均衡器安全组,它允许端口 40 和 443 上的所有流量。我尝试更改安全组,以便它允许任何端口上的任何人,但这不起作用。
我的任务定义中的主机端口是 0,我的容器端口是 3000,这是我在 Dockerfile 中公开的。
健康检查只是在路径“/”处的目标端口上
【问题讨论】:
什么是实例安全组?端口 32768 是否在实例级别打开? 是的,我试过了 你能从宿主容器连接到应用程序吗?curl <ip>:3000
您能否确认运行状况检查端口是32768
还是运行服务的端口?
302 用于 url 重定向,请参阅我修复***.com/questions/49389510/…的答案
【参考方案1】:
我的问题是一样的。查看ALB的安全组的入站规则,应该是这样的。
All traffic / All / All / "sg-xxxxxxxxxxxx" –
.
sg-xxxxxxxxxxxx
这应该是您的应用程序负载均衡器的安全组。
【讨论】:
【参考方案2】:This answer总结了调试此类错误时要验证的点清单:
既然如此,后端没有路由Path /healthcheck
服务
/healthcheck
的状态码不是200
可能是目标端口无效,请正确配置,如果
在端口 8080 或 3000 上运行的应用程序应该是 3000
或 8080
安全组不允许目标组上的流量
应用程序未在容器中运行
【讨论】:
如果您使用 Terraform 部署一些受限 SG,请不要忘记添加self
属性,以便您自己的 SG 上允许该端口(这将是用于 ELB 标记的端口) : registry.terraform.io/providers/hashicorp/aws/latest/docs/…以上是关于AWS ECS ALB 错误(请求超时)的主要内容,如果未能解决你的问题,请参考以下文章
带有 ALB 的 AWS Elastic Beanstalk:节点 Websocket 超时
AWS Glue 作业失败:调用 o71.getDynamicFrame..SdkClientException 时发生错误:无法执行 HTTP 请求:Connect .s3..connect 超时
AWS Lambda 内部的 Parameter Store 请求超时
如何设置 AWS Appsync 请求超时限制 || AWSAppSync 客户端未提供回调