【问题标题】:Elastic Beanstalk not deploying on all instancesElastic Beanstalk 未部署在所有实例上
【发布时间】: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 支持,这不是典型的系统行为。一旦他们回复您,我很想听听他们说什么,请随时在评论中@我

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


【解决方案1】:

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

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

有什么想法吗?

【讨论】:

  • 你发现了吗,我也有同样的问题。
猜你喜欢
  • 2019-10-03
  • 2012-09-10
  • 2020-12-25
  • 1970-01-01
  • 2013-06-14
  • 1970-01-01
  • 2019-04-18
  • 2017-12-18
  • 2018-11-13
相关资源
最近更新 更多