gpt4 book ai didi

amazon-web-services - 为什么我的 ECS 服务无法向我的 ELB 注册可用的 EC2 实例?

转载 作者:行者123 更新时间:2023-12-03 21:17:47 24 4
gpt4 key购买 nike

我有一个构建 ECS 优化 AMI 的 EC2 启动配置。我有一个 Auto Scaling 组,可确保我始终拥有至少两个可用实例。最后,我有一个负载均衡器。

我正在尝试创建一个 ECS 服务,将我的任务分配给负载均衡器中的实例。

在阅读了 ECS 负载均衡的文档后,我的理解是我的 ASG 不应该自动向 ELB 注册我的 EC2 实例,因为 ECS 会处理这个问题。所以,我的 ASG 没有指定 ELB。同样,我的 ELB 没有任何已注册的 EC2 实例。

创建 ECS 服务时,我选择 ELB 并选择 ecsServiceRole。创建服务后,我从未在 ECS 实例选项卡中看到任何可用的实例。该服务也无法启动任何任务,出现一个非常普遍的错误......

服务无法放置任务,因为找不到资源。

我已经在这里待了大约两天,似乎无法弄清楚哪些配置设置没有正确配置。有没有人知道什么可能导致这不起作用?

2015 年 6 月 25 日更新:

我认为这可能与 ECS_CLUSTER 有关用户数据设置。

在我的 EC2 Auto Scaling 启动配置中,如果我将用户数据输入完全留空,则会使用 ECS_CLUSTER 创建实例“默认”的值。发生这种情况时,我会看到一个自动创建的集群,名为“default”。在这个默认集群中,我看到了实例,并且可以像预期的那样向 ELB 注册任务。一旦任务向 ELB 注册,我的 ELB 健康检查 (HTTP) 就会通过,一切顺利。

但是,如果我改变它 ECS_CLUSTER设置为自定义我从未看到使用该名称创建的集群。如果我手动创建具有该名称的集群,则这些实例永远不会在集群中可见。在这种情况下,我永远无法向 ELB 注册任务。

有任何想法吗?

最佳答案

我有类似的症状,但最终在日志文件中找到了答案:

/var/log/ecs/ecs-agent.2016-04-06-03:

2016-04-06T03:05:26Z [ERROR] Error registering: AccessDeniedException: User: arn:aws:sts::<removed>:assumed-role/<removed>/<removed is not authorized to perform: ecs:RegisterContainerInstance on resource: arn:aws:ecs:us-west-2:<removed:cluster/MyCluster-PROD
status code: 400, request id: <removed>

就我而言,资源存在但无法访问。听起来 OP 指向的资源不存在或不可见。您的集群和实例是否在同一个区域?日志应确认详细信息。

回应其他帖子:

您不需要公共(public) IP 地址。

您确实需要:分配给 EC2 实例的 ecsServiceRole 或等效 IAM 角色,以便与 ECS 服务通信。您还必须指定 ECS 集群,并且可以在实例启动或启动配置定义期间通过用户数据完成,如下所示:
#!/bin/bash
echo ECS_CLUSTER=GenericSericeECSClusterPROD >> /etc/ecs/ecs.config

如果您在新启动的实例上未能执行此操作,您可以在实例启动后执行此操作,然后重新启动服务。

关于amazon-web-services - 为什么我的 ECS 服务无法向我的 ELB 注册可用的 EC2 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31036600/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com