答案1
您在评论中指出实例没有公有 IP 地址。我从该评论推断您的实例可能也没有通往互联网的路由。
为了使用 ECS,您的实例需要至少有一个到达 ECS 服务端点的路由。到互联网的路由可以通过互联网网关 (IGW),网络地址转换 (NAT)或通过HTTP 代理如果没有到达 ECS 服务端点的路由,ECS 代理将无法将其自身注册到您的集群中,并且您将无法将这些实例与 ECS 一起使用。
答案2
您使用的是ecs optimized
ami 吗?我会这样做,然后在您生成实例时将其包含在您的用户数据中
#!/bin/bash
echo ECS_CLUSTER=your-cluster-name >> /etc/ecs/ecs.config
如果你通过 ssh 连接到该盒子,你应该能够看到它在集群中注册,然后在 ecs 代理 docker 日志中
例如。
[ec2-user@ip-10-0-X-XXX ~]$ docker logs my-ecs-agent-container-id
---snip----
2019-04-23T20:46:19Z [INFO] Registered container instance with cluster!
2019-04-23T20:46:19Z [INFO] Registration completed successfully. I am running as 'arn:aws:ecs:us-west-2:XXXXXXX:container-instance/xxxxx-yyyy-zzz-ddd-12345gdd' in cluster 'your-cluster'
---snip----
答案3
答案4
另一个可能的原因是使用非 ECS 优化 AMI,并且安全组中没有出站规则可能会阻止代理。