Elastic Beanstalk环境坚持灰色健康

时间:2016-02-15 23:08:06

标签: amazon-web-services elastic-beanstalk

我的AWS Elastic Beanstalk环境陷入了生命:灰色。

enter image description here

我的应用程序正在运行,我可以访问它。但是,我无法更改配置或部署新版本,因为我收到一条消息说

  

此操作的名为______的环境处于无效状态。必须准备好。

如果我在控制台上运行eb health,我会得到以下输出:

  

状态:Ready Health Gray

  

ELB State:InService

我可以尝试恢复环境吗?我已经联系过AWS Support,因为它们非常慢。我能想到的另一个选择是终止环境并创建一个新环境,但我真的更愿意避免这种情况。

3 个答案:

答案 0 :(得分:8)

当你完全可以访问EB,实例,ELB等等时,EB可能会非常难以解决问题......不要介意尝试通过SO代理这一点。

我要做以下事情:

  • 相同的应用程序
  • 下打造环境
  • 当它显示为绿色时,使用EB应用程序"交换" 功能来交换环境

有关此流程的更多详细信息,请访问:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.CNAMESwap.html

这会执行DNS切换,因此您不应该有停机时间。如果您希望稍后与友好的AWS支持人员进行故障排除,您仍然可以运行旧环境。

唯一的不利因素是:

  • 在等待对另一个进行故障排除时,您将继续为两个环境堆栈付费。
  • DNS有点难,因为您无法保证客户尊重EB DNS条目的短暂超时。他们应该,但有人可能决定继续使用本地缓存版本。与依赖信任客户端功能的任何内容一样,它有点无法控制。
  • 如果您通过EB部署RDS数据库,则可以通过数据库与环境绑定来交换掉交换(不要通过EB在生产EB环境中部署RDS数据库!!!!)

答案 1 :(得分:0)

我知道问题已经得到解答,但是我认为问题的原因很重要,而不是建议完全重建OP环境。

Elastic Beanstalk有4种不同的颜色-绿色,黄色,红色和灰色。但是,每种颜色可能意味着多种不同的事物,它们之间的差异很大。以下是灰色背后的潜在状态:

灰色(暂停)-您的应用程序存在严重的健康问题,Elastic Beanstalk不再对其进行监视

灰色(未知)-运行状况代理尚未报告实例上足够的数据

灰色(待处理)-在命令超时(例如引导环境)内正在对实例进行操作

请注意,“待处理”和“已暂停”之间存在惊人的差异。在Pending中,它只需要一点时间,或者您可以关闭单个资源并重新生成它。在Suspended中,将监视所有监视,因此您应该尽快重建环境。解决方案对客户的影响差异很大。

香草色烤入Beanstalk。要获取其他状态,您必须启用增强监控。您可以在几分钟内完成,而且费用是名义上的。

要了解有关Beanstalk的状态和常见问题的更多信息,我建议同事写一个博客:Health Monitoring in AWS Beanstalk

答案 2 :(得分:0)

当环境状态为未知时,会发生更加困难的情况。即使中止当前操作选项也不起作用。为了解决这个问题,我必须执行以下步骤:

  • 复制与Beanstalk环境关联的实例ID
  • EC2仪表板
  • 中使用该实例ID查找实例
  • 停止EC2实例
  • 启动EC2实例

重新启动实例后,环境应回到先前的状态。