AWS ECS Fargate ALB 错误(请求超时)

Posted

技术标签:

【中文标题】AWS ECS Fargate ALB 错误(请求超时)【英文标题】:AWS ECS Fargate ALB Error (Request Timed Out) 【发布时间】:2019-10-16 20:09:09 【问题描述】:

我已经设置了一个在端口 5566 上运行的 Docker 容器,其中包含一个小型 Django 应用程序。将 Docker 映像上传到 ECR,然后供 Fargate 容器使用。 我已经用 VPC 搭建了一个 ECS 集群。 在创建任务定义和服务之后,服务启动了 2 个任务(正如它应该做的那样):

这是服务的网络访问(健康检查宽限期为 300 秒):

我还设置了一个 Application Load Balancer(带有 DNS),其中包含服务的目标组,但运行状况检查似乎失败了:

健康检查配置如下:

由于运行状况检查失败,任务会被终止,新的任务会在 ~ 每 5 分钟后启动。

这是容器的端口映射:

由于无法访问 Fargate 容器(例如通过 SSH)且日志为空,我该如何排查问题?

我已尝试遵循Troubleshoot Your Application Load Balancer 中的每一步。

请随时询问更多信息。

【问题讨论】:

服务定义中定义的 healthCheckGracePeriodSeconds 是多少?可能是您的应用程序需要时间来加载,并且在 ALB 之间正在检查运行状况并报告目标运行状况为“不健康”。尝试增加'healthCheckGracePeriodSeconds'docs.aws.amazon.com/AmazonECS/latest/developerguide/… 服务的健康检查宽限期为 0,我改为 300(5 分钟)。不过,这并没有改变任何东西。还使用服务的网络访问权限编辑了帖子。 【参考方案1】:

您能否确认一下,您的应用程序正在 docker 内的端口 5566 上运行?

您可以在 cloudwatch 中查看日志。您将在 cluster -> service -> tasks -> your task 中获得链接。

您可以发布您的 ALB 配置吗?您的目标组端口?

【讨论】:

以上是关于AWS ECS Fargate ALB 错误(请求超时)的主要内容,如果未能解决你的问题,请参考以下文章

AWS ECS ALB 错误(请求超时)

AWS ECS Fargate 未创建任务 AmazonECSTaskExecutionRole 错误

Terraform Fargate 任务定义请求执行角色

指定 aws ECS/Fargate 容器依赖项无法部署

在 AWS ECS Fargate 中,任务内无法进行容器间连接

ECS Fargate 自动扩缩得更快?