Elastic Beanstalk 未部署在所有实例上

Posted

技术标签:

【中文标题】Elastic Beanstalk 未部署在所有实例上【英文标题】:Elastic Beanstalk not deploying on all instances 【发布时间】:2018-08-09 04:22:18 【问题描述】:

我有一个通过 EB 部署的 Django 应用程序。我将自动缩放策略设置为 min。和最大。 1个实例。这工作正常。

然后我将自动缩放更改为最小。和最大。 2个实例。新实例自动出现。但是该应用程序没有部署到新的应用程序。我手动部署但仍然没有区别。尝试了一次滚动部署策略,但仍然相同。 新实例中没有任何代码。

ELB 表示实例正常,并尝试将流量发送到新实例,这会导致未找到页面。

我该怎么办?

更新: 我发现它确实在 /opt/python/bundle 中创建了一个新包,但该应用程序仍未部署。如果我去 /opt/python/current/app,它是空的。

更新: 我什至无法在新实例上生成任何日志。

更新: 在将自动缩放设置为 min.2 和 max.2 并将实例大小设置为 t2.small 重建环境后,一切正常(尽管不是可接受的解决方案)。 我现在从 t2.small 转到 t2.micro。 Elastic Beanstalk 刚刚创建了一个新的 cloudformation 模板,用于使用 min.2 和 max.2 t2.micro 进行自动缩放,然后说环境更新结束。然后,自动扩展组创建了 2 个 t2.micro EC2 实例。然后,它从负载均衡器中删除了一个旧的 t2.small,并将一个新的 t2.micro 连接到负载均衡器,并对另一个实例重复此操作。 EB 上的事件也反映了这一点。 但它又是同样的问题。应用程序未部署在新实例中。从控制台手动部署也不起作用。在 EB 控制台中请求日志根本不会提供任何信息。

这到底是怎么回事?

【问题讨论】:

“然后我将自动缩放更改为最小和最大 2 个实例。”你是怎么做的?通过 EB 控制台、CloudFormation 模板或其他方式? 通过 AWS EB 控制台。 嗯,这不应该发生。您可以尝试的一件事(也许您做过)是重新启动应用程序服务器。这是 EB 控制台上的一个选项。如果这不起作用,我会立即联系 AWS 支持。这听起来像是他们这边的错误,或者与您的配置有关。事实上,我现在会联系他们的支持并要求他们对此进行调查。 重新启动应用程序不会也不起作用,因为它只是重新启动应用程序服务器。但应用程序代码尚未正确部署。因此 wsgi 无法重新启动,并且 apache 没有任何连接,因此重新启动会出现 400 错误。 我肯定会联系 AWS 支持,这不是典型的系统行为。一旦他们回复您,我很想听听他们说什么,请随时在评论中@我 【参考方案1】:

经过大量研究后,我唯一的选择是重建环境(通过 Elastic Beanstalk 控制台)。这解决了一切。

但这不是一个可接受的解决方案。我在我们的暂存环境中这样做。但如果我要做这个制作,那将是灾难性的。

有什么想法吗?

【讨论】:

你发现了吗,我也有同样的问题。

以上是关于Elastic Beanstalk 未部署在所有实例上的主要内容,如果未能解决你的问题,请参考以下文章

Elastic Beanstalk `War` 部署 - 404 未找到

在 AWS Elastic Beanstalk 上使用 Wordpress CMS - 部署问题(页面未加载)

Elastic Beanstalk Flask 应用程序 - 未找到静态文件

Elastic Beanstalk 未调度 cron.yaml 中定义的作业

安装 gems 部署失败 - AWS Elastic Beanstalk

rails部署成功,但Elastic Beanstalk返回522