AWS Elastic Beanstalk 交换环境 URL 是不是为 git push 交换环境?
Posted
技术标签:
【中文标题】AWS Elastic Beanstalk 交换环境 URL 是不是为 git push 交换环境?【英文标题】: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 上实现零停机的正确方法是什么?我读过很多书,但似乎无法理解这些观点。谢谢!
【问题讨论】:
【参考方案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
【讨论】:
顺便说一句,我写了一个简单的工具来避免弄乱 eb init。我会对反馈感兴趣:github.com/ingenieux/goploy以上是关于AWS Elastic Beanstalk 交换环境 URL 是不是为 git push 交换环境?的主要内容,如果未能解决你的问题,请参考以下文章
将应用程序部署到 AWS Elastic Beanstalk 环境
如何通过包括数据库补丁的 Elastic Beanstalk 部署避免停机?
Amazon Elastic BeanStalk 错误:无法创建 AWS Elastic Beanstalk 应用程序版本