AWS Beanstalk:没有实例正在发送数据,并且无法 ssh 到 ec2

Fen*_* Li 6 amazon-ec2 amazon-web-services amazon-elastic-beanstalk

我遇到过这个问题

None of the Instances are sending data
Run Code Online (Sandbox Code Playgroud)

当在 beanstalk 上部署我的应用程序的新版本时,两个版本之间的唯一差异很小,我很确定这不是原因。这是我所看到的:

  • 我无法从 beanstalk 控制台获取日志
  • 我无法通过 ssh 连接到此 beanstalk 配置的 EC2 实例(尽管该实例的状态为“正在运行”)。
  • 上次我在 ec2.micro 实例上遇到了同样的问题,当我升级到 ec2.small 时,问题得到了解决。我认为可能是资源使用导致它没有响应(尽管很奇怪,因为它只是部署,甚至不提供任何流量)。在没有真正了解这里发生的事情的情况下,我不想(再次)升级。
  • 在部署的前 5 分钟内,CPU 模式类似于 80% -> 60% -> 20%,然后持续保持在 10%。

我获取服务器日志的唯一方法是从 aws 控制台获取系统日志,如下所示:

这是日志: https: //pastebin.com/PWWjPr3b

这是我发出 ssh 时看到的内容:

OpenSSH_7.4p1, LibreSSL 2.5.0
debug1: Reading configuration data /Users/okidogi/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Connecting to ec-******.eu-west-2.compute.amazonaws.com 
[35.177.76.128] port 22.
debug1: Connection established.
debug1: identity file aws-eb type 1
debug1: key_load_public: No such file or directory
debug1: identity file aws-eb-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.4
Run Code Online (Sandbox Code Playgroud)

然后就在那里等待。

如果有人可以提供帮助,我们将不胜感激。

dus*_*nes 2

冯,很高兴听到这对你有用。然而,这个想法更多的是一种诊断测试,而不是长期解决方案。由于切换到 Immutable 对您有用 - 这表明您的构建过程可能需要比(已经运行的)小单元(如 at2.micro或 )上可用的内存更多的内存t1.micro。通过使用不可变策略,您可以使用一个新实例开始每次部署,该实例比运行应用程序时已消耗的资源具有更多的可用资源。

这是一个常见但难以诊断的问题,因为它根据平台和框架的不同而呈现出许多不同的方式。您可以在这里阅读更多信息:https://medium.com/@deanslamajr/an-insufficient-memory-deployment-failure-d9f1cb9b5c0

我解决这个问题的首选方法是通过交换内存,正如我在类似问题的答案中概述的那样:AWS EB 部署节点应用程序:无法运行 npm install

我建议尝试.ebextensions那里提到的策略,并切换回All at once部署策略来测试这是否真正解决了您的问题。