Amazon Elastic Container Service
开发人员指南 (API 版本 2014-11-13)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

服务负载均衡器问题排查

Amazon ECS 服务可向 Elastic Load Balancing 负载均衡器注册任务。负载均衡器配置错误是导致任务停止的常见原因。如果您的已停止任务是由使用负载均衡器的服务启动的,请考虑以下可能原因。

重要

如果任务属于配置为使用 传统负载均衡器 的服务的一部分,则此类任务不支持容器运行状况检查。Amazon ECS 服务计划程序将忽略 传统负载均衡器 后面的处于 UNHEALTHY 状态的任务。

ecsServiceRole IAM 角色的 IAM 权限不正确

ecsServiceRole 允许 Amazon ECS 服务向 Elastic Load Balancing 负载均衡器注册容器实例。您必须具有为此角色的设置的适当权限。有关更多信息,请参阅 Amazon ECS 服务计划程序 IAM 角色

容器实例安全组

如果您的容器已映射到容器实例上的端口 80,则您的容器实例安全组必须允许端口 80 上的入站流量才能通过负载均衡器运行状况检查。

未为所有可用区配置 Elastic Load Balancing 负载均衡器

您的负载均衡器应配置为使用一个区域中的所有可用区,或至少使用您的容器实例所在的所有可用区。如果服务使用一个负载均衡器,并在驻留在可用区(尚未为该可用区配置使用负载均衡器)中的容器实例上启动一个任务,则该任务永不会通过运行状况检查并且将被终止。

Elastic Load Balancing 负载均衡器运行状况检查配置错误

负载均衡器运行状况检查参数可能过于严格或指向不存在的资源。如果确定容器实例运行状况不佳,则系统会从负载均衡器中删除容器实例。确保验证是否已为服务负载均衡器正确配置以下参数。

Ping 端口

负载均衡器运行状况检查的 Ping Port 值是该检查要确定其运行状况是否正常的容器实例上的端口。如果此端口配置错误,负载均衡器可能会从自身取消注册容器实例。此端口应配置为使用服务的任务定义中用于运行状况检查的容器的 hostPort 值。

Ping 路径

此值通常设置为 index.html,但如果您的服务未响应该请求,则无法通过运行状况检查。如果您的容器没有 index.html 文件,您可以将此值设置为 /,以将容器实例的基本 URL 作为目标。

响应超时

这是您的容器必须响应运行状况检查 ping 的时间量。如果此值小于响应所需的时间量,则无法通过运行状况检查。

运行状况检查间隔

这是运行状况检查 ping 之间的时间量。您的运行状况检查间隔越短,您的容器实例就越快达到 Unhealthy Threshold

不正常阈值

这是您的容器实例被视为不正常之前,允许未通过运行状况检查的次数。如果您的不正常阈值为 2,并且运行状况检查间隔为 30 秒,则您的任务在被视为不正常之前有 60 秒的时间响应运行状况检查 ping。您可以增大不正常阈值或运行状况检查间隔,以便为您的任务提供更多响应时间。

无法更新服务 servicename:任务定义中的负载均衡器容器名称或端口已更改

如果您的服务使用一个负载均衡器,则无法更改创建该负载均衡器时为服务定义的负载均衡器配置。如果您更新服务的任务定义,则创建服务时指定的容器名称和容器端口必须保留在任务定义中。

要更改与服务负载均衡器配置关联的负载均衡器名称、容器名称或容器端口,您必须创建新服务。