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



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

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

为什么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可以根据configu终止它们

最新更新