【问题标题】:Does AWS Elastic Beanstalk Swap Environment Url swaps environments for git push?AWS Elastic Beanstalk 交换环境 URL 是否为 git push 交换环境?
【发布时间】:2014-12-18 02:13:45
【问题描述】:
我已阅读有关 aws 零停机时间的文档,但似乎无法理解在这种情况下会发生什么?
- 我有一个在生产环境中运行的名为“red”的环境
- 我将环境复制为“蓝色”
- 我在我的应用上使用 eb init 来推送到名为 blue 的新环境。
- 我的新版本在蓝色环境下成功上线运行
- 我交换了环境 url(我还没做过,害怕,我猜)
- 一段时间后,我的流量被定向为蓝色,红色将在监控中显示零流量。
问题是 现在如果我在命令行中使用 git aws.push 会推送到红色还是蓝色?
如果它变成红色,我有一个零停机时间的过程。如果它被推到蓝色,这是否意味着我必须再次 eb init?
如果我必须再次 eb 初始化,这意味着
- 销毁红色(旧)环境
- 将蓝色复制为红色
- eb 再次为红色环境初始化
这似乎根本不正确。我可能会遗漏一些东西。在 ebs 上实现零停机的正确方法是什么?我读过很多书,但似乎无法理解这些观点。谢谢!
【问题讨论】:
标签:
git
amazon-web-services
deployment
amazon-elastic-beanstalk
【解决方案1】:
当您使用 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 环境 更改为等于 blue。
我建议您通过复制当前 red 环境配置(在操作下 >> 保存配置)来创建一个 red2 环境,然后然后在构建 red2 时应用配置。然后使用 git aws.push 将您的代码推送到 blue 环境中,进行测试,然后使用 Application Versions 页面将运行在 blue 上的代码提升到red2。
与此同时,所有实时流量仍处于红色。
然后您可以使用您的主机文件或仅测试 red2 弹性 beanstalk URL,确保一切正常,然后点击 URL 交换。
您将交换 RED 和 RED2