AWS CodeDeploy Blue/Green 部署 ELB 架构

AWS CodeDeploy Blue/Green deployment ELB architecture

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

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

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

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

Blue/Green 使用 CodeDeploy 部署不需要有 2 个 ASG 和 2 个目标组。 您只需提供输入作为现有的 AutoScalingGroup 和现有的 ElasticLoadBalancer。

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

  1. CodeDeploy 创建了一个新的 AutoScalingGroup,它是您现有 ASG 的精确副本。
  2. 完成上述步骤后,您将获得新的 EC2 实例。如果现有 ASG 有 2 个 EC2 服务器,新的 ASG 也将有 2 个 EC2 服务器 运行.
  3. 配置新的 EC2 服务器时,会在这些服务器上执行部署,以便将它们上的应用程序更新到新版本。
  4. 部署完成后,新服务器注册到现有目标组。
  5. 注册新实例并且它们正常运行后,流量将从旧服务器重新路由到新服务器。
  6. Post这个,老服务器注销了。
  7. 旧服务器注销时,CodeDeploy可以根据配置终止它们