AWS CodeDeploy蓝色/绿色部署ELB体系结构

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AWS CodeDeploy蓝色/绿色部署ELB体系结构相关的知识,希望对你有一定的参考价值。

我正在使用交换自动缩放组方法来执行AWS CodeDeploy B / G部署。为此,我创建了一个具有两个实例的自动缩放组。接下来,我介绍了两个目标组originaltargetgroupreplacementtargetgroup。然后,我创建了一个应用程序负载平衡器,其侦听器为originaltargetgroup(100%流量)和replacementtargetgroup(0%流量)。当我在codedeploy中启动B / G部署时,目标组为replacementtargetgroup,它创建了带有两个新替换实例的原始自动伸缩组的副本。

我的问题是我无法使用ELB DNS访问这两个新的绿色实例。我发现这是因为绿色实例放置在replacementtargetgroup中,该实例提供了0%的流量。

为什么ELB没有将所有流量都切换到replacementtargetgroup,或者我做错了。

基本上,我对以上架构的工作方式感到困惑。我是否只需要为B / G部署创建一个目标组或两个目标组即可。我完全困惑,无法弄清楚。

答案

使用CodeDeploy进行的蓝色/绿色部署不需要具有2个ASG和2个Targets组。您只需提供输入作为您现有的AutoScalingGroup和现有的ElasticLoadBalancer。

当触发B / G部署时,将触发以下顺序:

  1. 由CodeDeploy创建一个新的AutoScalingGroup,它是现有ASG的精确副本。
  2. 完成上述步骤后,您将获得新的EC2实例。如果现有的ASG有2个EC2服务器,则新的ASG也将有2个EC2服务器正在运行。
  3. 当供应新的EC2服务器时,将在这些服务器上进行部署,以便将它们上的应用程序更新到新版本。
  4. 部署完成后,新服务器将注册到现有TargetGroup。
  5. 注册新实例并且它们运行状况良好之后,流量从旧服务器重新路由到新服务器。
  6. 发布此,旧服务器已注销。
  7. 注销旧服务器后,CodeDeploy可以根据配置终止它们

以上是关于AWS CodeDeploy蓝色/绿色部署ELB体系结构的主要内容,如果未能解决你的问题,请参考以下文章

如何设置AWS CodeDeploy和EC2 CodeDeploy安全环境

CodeDeploy allowTraffic失败,但我的代码仍然部署在实例上

CodeDeploy 的 IAM 问题

CodeDeploy 未部署到新的自动缩放实例

完成对所有实例的部署后的 AWS CodeDeploy 挂钩?

在网络负载均衡器 + 目标组后面运行 SSH 的 AWS ECS 服务使用 CodeDeploy 部署缓慢