AWS Elastic Beanstalk交换环境URL是否为git push交换环境?

时间:2014-10-22 15:03:32

标签: git amazon-web-services deployment elastic-beanstalk

我已经阅读了关于aws零停机时间的文档,但似乎无法理解在这种情况下会发生什么?

  • 我有一个名为' red'
  • 的生产环境
  • 我将环境复制为' blue'
  • 我在我的应用程序上使用eb init来推送名为blue的新环境。
  • 我的新版本在蓝色环境中成功运行
  • 我交换了环境网址(我没有做过,害怕,我猜)
  • 过了一会儿,我的流量被定向到蓝色,红色将在监控中显示零流量。 问题是现在,如果我从命令行使用 git aws.push ,它会推到红色还是蓝色?

如果它推到红色,我有一个零停机时间的过程。如果它被推到蓝色,这是否意味着我必须再次进行初始化?

如果我必须再次使用eb,则意味着

  • 摧毁红色(旧)环境
  • 将蓝色复制为红色
  • eb init再次为红色环境

这似乎根本不正确。我可能会遗漏一些东西。什么是在ebs上实现零停机的正确方法?我读了很多但似乎无法得到这些观点。谢谢!

1 个答案:

答案 0 :(得分:2)

使用aws.config设置aws.push时,您需要设置应用程序和要推送的环境,请参阅下文:

AWS Access Key [default to ]:
AWS Secret Key [default to ]:
AWS Region [default to eu-west-1]:
AWS Elastic Beanstalk Application [default to your-application]: 
AWS Elastic Beanstalk Environment [default to red]:

您需要做的就是再次运行 git aws.config ,并将 AWS Elastic Beanstalk环境更改为等于蓝色

我建议您通过复制当前的红色环境配置(在操作>>保存配置下)来创建 red2 环境)然后在构建 red2 时应用配置。然后使用 git aws.push 将代码推送到蓝色环境中,测试然后使用“应用程序版本”页面将蓝色上运行的代码提升到的 RED2

与此同时,所有实时流量仍然是红色

然后,您可以使用您的主机文件或只测试 red2 弹性beanstalk URL,确保所有内容都按顺序排列,然后点击URL swap。

您将交换 RED RED2