ruby-on-rails - AWS Elastic Beanstalk Rails 应用程序自动缩放问题

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

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

  • 环境类型:负载均衡、自动缩放
  • 实例数:1 - 4
  • 基于平均网络扩展
  • 当 > 6000000 时添加实例
  • 当 < 2000000 时删除实例

问题 #1 - 我的应用程序还没有获得太多流量,只需要 1 个 EC2 实例 (m1.medium)。我每周都会收到几封来自 AWS 的“ElasticBeanstalk Default Scale Down alarm”电子邮件。大多数时候,我在收到一个应用程序后检查我的应用程序,没问题;但是,大约每月一次,我在收到电子邮件后检查我的应用程序并找到 nginx 404 页面。 EB 终止了我的 EC2 实例——唯一运行我的应用程序的实例——并生成了一个新实例。为什么它从 1 缩小到 0?在过去的 6 个月里,这一直发生在我身上。还有其他人经历过吗?找到解决方案了吗?

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

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

最佳答案

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

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

关于ruby-on-rails - AWS Elastic Beanstalk Rails 应用程序自动缩放问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23622749/

相关文章:

ruby-on-rails - CanCan 在应该阻止访问时却没有阻止

ruby-on-rails - 名称错误 : uninitialized constant

ruby-on-rails - 将多输入虚拟属性移动到 SimpleForm 自定义输入组件

ruby-on-rails - Memcache 在 Rails 3 中的基本使用

ruby-on-rails - 带有分类器 gem 的无效编码符号

ruby - 让星形正则表达式运算符失败

amazon-web-services - 如何在禁用集群模式的情况下从 Redis 只读副本读取?

java - AWS - 如何在 Java Web 应用程序的子域和域之间共享 session ?

java - Amazon EC2 中的 Spot 实例出价策略

ruby-on-rails - 供应商/ bundle 和 ruby 版本