Elastic Beanstalk环境坚持灰色健康

jua*_*ino 11 amazon-web-services amazon-elastic-beanstalk

我的AWS Elastic Beanstalk环境陷入了健康:灰色.

在此输入图像描述

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

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

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

状态:Ready Health Gray

ELB State:InService

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

Ray*_*Ray 9

当您完全访问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数据库!!!!)

  • 只是投入我的 2 美分...永远不要使用 beanstalk 部署 RDS。除非这一切都是一个非常紧密集成的应用程序,否则我想不出任何这样做的理由,尤其是在生产中。AWS 使它看起来如此方便和有吸引力,但您很快就会发现它是多么不灵活。 (4认同)

mba*_*ker 5

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

弹性豆茎有 4 种不同的颜色 - 绿色、黄色、红色和灰色。然而,每种颜色都可能意味着多种不同的事物,而且差异很大。以下是灰色背后的潜在状态:

灰色(已暂停) - 您的应用程序出现了严重的健康问题 Elastic Beanstalk 不再监控它

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

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

请注意“待处理”和“已暂停”之间令人难以置信的差异。在待处理状态下,它只需要多一点时间,或者您可以关闭单个资源并让它重新生成。在暂停状态下,所有监控都会被关闭,您应该尽快重建环境。解决方案期间对客户的影响差异很大。

香草色被烘焙到豆茎中。要获取其他状态,您必须启用增强监控。您可以在几分钟内完成,而且成本很低。

要了解有关 Beanstalk 的状态和常见问题的更多信息,我推荐我同事撰写的博客:AWS Beanstalk 中的运行状况监控