AWS CodeDeploy蓝色/绿色部署ELB架构

时间:2020-04-15 08:38:43

标签: amazon-web-services amazon-ec2 cloud amazon-elb aws-code-deploy

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

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

为什么ELB不能将所有流量都切换到replacementtargetgroup,否则我可能做错了事。

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

1 个答案:

答案 0 :(得分:0)

使用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可以基于configu终止它们