AWS Elastic Beanstalk Rails app自动缩放问题

时间:2014-05-13 04:21:10

标签: ruby-on-rails ruby amazon-web-services elastic-beanstalk

我遇到了一个Rails应用程序(Ruby 1.9.3)的两个截然不同但相关的问题,我在AWS上部署了这个问题' Elastic Beanstalk。我应用了以下自动缩放配置。我相信这是默认的。

  • 环境类型:负载均衡,自动缩放
  • 数字实例:1 - 4
  • 基于平均网络输出的比例
  • >时添加实例6000000
  • <时删除实例2000000

问题#1 - 我的应用程序尚未获得大量流量,只需要1个EC2实例(m1.medium)。我得到了几个" ElasticBeanstalk Default Scale Down警报"每周从AWS发送电子邮件。大多数时候,我收到一个后检查我的应用程序,这很好;然而,大约每月一次,我收到电子邮件后检查我的应用程序,并找到nginx 404页面。 EB终止了我的EC2实例 - 唯一运行我的应用程序的实例 - 并生成了一个新实例。为什么它从1缩小到0?在过去的6个月里,我发现这种情况一致。还有其他人经历过这个吗?找到了解决方案?

问题#2 - 当上述情况发生时,EB为我创建了一个新的EC2实例。但是,我继续获得nginx 404页面,直到我重新部署 - 这是一项手动任务,似乎无法实现 auto 扩展的目的。在自动缩放发生后,EB是否需要重新部署?它不应该自动将我的应用程序的当前/最新版本部署到新的EC2实例吗?

非常感谢任何帮助/建议!

1 个答案:

答案 0 :(得分:0)

我确实遇到过这个问题!问题是当您只有一个实例时,Remove instance when < 2000000条件会被触发。如果您的实例超过2000000然后降回2000000以下,EB将终止它并启动另一个。禁用该警报的自动缩放操作,您的问题就会消失。

关于您的第二个问题 - 您等待新构建的实例可用多长时间?我注意到,新的实例将在准备好后立即添加到自动扩展组,但在EB完成部署应用程序之前。在您的单实例情况下,这尤其糟糕,因为几分钟内没有有效的服务器。