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 交换。

您将交换 REDRED2

【讨论】:

顺便说一句,我写了一个简单的工具来避免弄乱 eb init。我会对反馈感兴趣:github.com/ingenieux/goploy

以上是关于AWS Elastic Beanstalk 交换环境 URL 是不是为 git push 交换环境?的主要内容,如果未能解决你的问题,请参考以下文章

将应用程序部署到 AWS Elastic Beanstalk 环境

如何通过包括数据库补丁的 Elastic Beanstalk 部署避免停机?

Amazon Elastic BeanStalk 错误:无法创建 AWS Elastic Beanstalk 应用程序版本

[AWS] Elastic Beanstalk

AWS Elastic Beanstalk CLI 安装错误

text AWS Elastic Beanstalk