Amazon ec2 ECS代理断开连接后怎么办?

Amazon ec2 ECS代理断开连接后怎么办?,amazon-ec2,amazon-ecs,Amazon Ec2,Amazon Ecs,我遇到一个问题,集群中的一个EC2实例不时会断开其ECS代理的连接。这会以静默方式从集群中删除EC2实例(即不再有资格运行任何服务),并以静默方式从服务服务器中删除集群。我的集群由一个自动缩放组提供支持,生成服务器以保持正常数量。但是ECS-agent断开连接的服务器没有标记为不健康,因此as组认为一切正常 我觉得一定有什么(容易的)方法可以缓解这种情况,否则我在选择ECS并在生产中使用它时遇到了一个大问题。我们有这个问题很久了。随着每一个新的AWS ECS优化的AMI,它变得更好,但截至3个月

我遇到一个问题,集群中的一个EC2实例不时会断开其ECS代理的连接。这会以静默方式从集群中删除EC2实例(即不再有资格运行任何服务),并以静默方式从服务服务器中删除集群。我的集群由一个自动缩放组提供支持,生成服务器以保持正常数量。但是ECS-agent断开连接的服务器没有标记为不健康,因此as组认为一切正常


我觉得一定有什么(容易的)方法可以缓解这种情况,否则我在选择ECS并在生产中使用它时遇到了一个大问题。

我们有这个问题很久了。随着每一个新的AWS ECS优化的AMI,它变得更好,但截至3个月前,它仍然不时发生。正如mcheshier提到的,确保始终使用最新的AMI或至少使用最新的aws ecs代理

我们能够解决这一问题的唯一办法是:

  • 定时自动缩放旋转
  • 我们会尝试通过在随机时间上下缩放来防止它
  • 良好的cloudwatch警报
  • 我们碰巧将应用程序设置为一组基于队列(SQS)的微服务。我们可以根据队列上下扩展。我们设置了适当的监控,使我们能够大致估计ECS容器数量上的队列速率。当我们检测到速率关闭时,我们将旋转整个ECS实例。例如,我们的集群部署了4个运行的
    worker-1
    容器。我们估计每个工作人员每5分钟发送
    1000条
    消息。如果我们的排队率为每5分钟
    3000
    ,并且我们有4名员工,那么1名员工没有按预期工作。我们在lambda中设置了一些脚本来查找错误的脚本,并终止运行该容器的整个实例

  • 我希望这会有所帮助,我意识到这是我们内部应用程序特有的,但我可以给你和其他任何人的建议是采取主动,尽可能多地提出指标。这将允许您进行一些简洁的分析,并查找系统中的问题,这就是其中之一。

    您使用的是最新的ECS AMI吗?几个月前,我遇到了一个类似的问题,Docker/ECS升级解决了这个问题。现在,用最新的ECS优化AMIs替换实例解决了这个问题,但我还是噩梦般地想到,当ECS代理关闭时,AWS不会将其实例标记为有故障他们否认它的存在,也没有人有确凿的证据证明它的原因,因为它是不一致的。然而,经验法则是始终使用最新的aws linux AMI。如果你有能力,我会写一些东西,通过电子邮件/slack/通知你当一个新的发布,所以你可以相应地更新