Amazon EC2 Container Service
开发人员指南 (API Version 2014-11-13)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

服务负载均衡器问题排查

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

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:任务定义中的负载均衡器容器名称或端口已更改

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

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