AWS Beanstalk:没有实例正在发送数据,并且不能通过SSH到ec2

时间:2018-12-02 18:51:29

标签: amazon-web-services amazon-ec2 amazon-elastic-beanstalk

我遇到了这个问题

None of the Instances are sending data

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

  • 我无法从beantalk控制台获取日志
  • 我无法SSH到这个beantalk配置的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

然后在那里等待处理。

感谢有人可以为此提供帮助。

1 个答案:

答案 0 :(得分:1)

冯,很高兴听到那为您解决了难题。但是,该想法更多地是诊断测试,而不是长期解决方案。由于切换到不可变对您很有效-这表明您的构建过程可能需要比t2.microt1.micro这样的(已运行的)小型单元上更多的内存。通过使用不可变策略,您可以从一个新实例开始每个部署,该实例的可用资源比运行应用程序已经消耗的资源更多。

这是一个常见问题,但很难诊断,因为它会根据平台和框架提供许多不同的方式。您可以在此处了解更多信息:https://medium.com/@deanslamajr/an-insufficient-memory-deployment-failure-d9f1cb9b5c0

我更喜欢解决此问题的方法是通过交换内存,正如我在类似问题的答案中概述的:AWS EB deploying Node app: failed to run npm install

我建议您尝试使用此处提到的.ebextensions策略,然后切换回All at once部署策略,以测试是否确实解决了您的问题。