部署应用程序失败:在中止部署期间,某些实例可能已经部署了新的应用程序版本

Failed to deploy application: During an aborted deployment, some instances may have deployed the new application version

我无法在 Elastic Beanstalk 上部署新版本。

一切正常,直到我尝试部署一个新版本,但我遇到了很多问题(这不是我第一次在这个环境中部署新版本,我已经部署了几十个)。当我设法修复所有这些错误时,我遇到了这些错误:

我重新部署了那个不起作用的版本。

这是 Elastic Beanstalk 控制台:

Elastic Beanstalk console

Elastic Beanstalk events

来自 Elastic Beanstalk 的请求日志按钮 return 无。 来自 EC2 实例的系统日志显示了最后的工作版本日志。

我从 Configuration 导航窗格启用 CloudWatch 日志。它向 CloudWatch 日志添加了 4 个文件:

这是一个 Amazon Linux,t2.medium 实例,Apache 作为网络服务器

我已经尝试过的:

我试图用下面的代码部署一个 zip,但我遇到了同样的错误。

<html>
  <head>
    <title>This is the title of the webpage!</title>
  </head>
  <body>
    <p>This is an example paragraph. Anything in the <strong>body</strong> tag will appear on the page, just like this <strong>p</strong> tag and its contents.</p>
  </body>
</html>

它总是回到上一个工作版本,当我尝试部署新版本时它不起作用。

在一些 post 上,我看到有人说这可能是因为实例太小,但在它运行完美之前,大小从那时起就没有改变。

如果您有任何问题或想法,我将不胜感激。 祝你有美好的一天!

答案: 就像你说的那样,问题出在日志中。我必须通过 ssh 进入我的 EC2 实例才能访问它们。错误在文件 cfn-init-cmd.log 中。 其中一个命令正在等待输入,因此超时且没有错误消息。

您应该检查 EBS 的日志以获取有关您的部署出现问题的任何提示。 AWS 控制台 对此会有帮助。

还有EC2可以获取的日志:

CloudWatch 日志是另一件要检查的事情。

你还应该检查自动缩放组,看看那里是否有任何健康检查。这些是什么类型的支票?什么是宽限期?

以下是 EC2 运行状况检查可能失败的原因列表。 您可以启动一个更好的 ec2 实例来进行故障排除。

实例状态检查。

以下是可能导致实例状态检查失败的问题示例:

系统状态检查失败

不正确的网络或启动配置

内存耗尽

损坏的文件系统

内核不兼容

此外,重建确实是一个激烈的步骤,因为它会破坏并重建您的所有资源。例如,您的 ELB DNS 将消失,任何关联的 EIP 将被释放。这些东西是不能回收的。