EC2型ECS服务目标组疑问:实例类型为何不可用?
ECS EC2启动类型目标组问题解答
核心结论
EC2启动类型既支持IP地址型目标组,也支持实例型目标组,你碰到的问题是实例型目标组配置时漏了关键步骤。
实例型目标组健康检查失败、502的原因及修复
- 端口映射配置错误:实例型目标组是把流量打给ECS实例的主机端口,再转发到容器端口。所以任务定义里必须指定固定的主机端口(不能设0用随机端口),且这个端口要和目标组健康检查的端口一致。同时要确保ECS实例的安全组放行了负载均衡器安全组对该端口的访问。
- ECS实例权限或代理异常:EC2类型的ECS实例需要
AmazonEC2ContainerServiceforEC2Role这个IAM角色,用来把实例端口信息同步到目标组。可以登录实例查看/var/log/ecs/ecs-agent.log日志,排查有没有注册失败的报错。 - 目标组与负载均衡器的匹配问题:创建ECS服务选不了实例型目标组,是因为目标组的「目标类型」必须设为「实例」,且负载均衡器的协议、端口要和目标组匹配。新建负载均衡器时别用默认的IP型,手动把目标组的「目标类型」改成「实例」即可。
两种目标组的适用场景
- IP地址型:直接把流量发往容器的ENI IP,支持主机端口设0的动态映射,不用关注ECS实例的端口占用,管理更灵活,也是当前ECS推荐的使用方式。
- 实例型:适合固定端口的场景,需要绑定ECS实例的具体端口,对端口管理要求更高,但部分传统监控工具更适配这种模式。
内容的提问来源于stack exchange,提问作者mr_robot
相关产品推荐
相关产品推荐

