AWS CodeDeploy Blue/Green 部署卡住了?

AWS CodeDeploy Blue/Green Deployment stuck?

我正在执行 AWS Blue/Green 部署来测试基本的 apache 服务器,当 CodeDeploy 经历 B/G 部署的 4 个步骤时,它停留在第 3 步,即,将流量路由到替换实例大约一半-小时。即使花了很长时间并重试了几次,我也无法弄清楚出了什么问题。我不知道我的设置是否正确。这是我的 B/G 部署设置。

  1. 使用两个实例创建了一个名为 orginalautoscalinggroup 的自动缩放组。
  2. 创建了两个目标组,一个用于原始环境,第二个用于替换环境,即 originaltargetgroupreplacementtargetgroup
  3. 附加 originaltargetgroup 成为 originalautoscalinggroup 的一部分。
  4. 创建了一个应用程序负载均衡器 apploadbalancer 并附加了 originaltargetgroup
  5. 现在 apploadbalancer 附加了 originaltargetgroup,后者附加了 originalautoscalinggroup

我的 Codedeploy B/G 配置如下所示。

  1. 部署类型:B/G
  2. 环境配置:自动复制 Amazon EC2 Auto Scaling 组
  3. Amazon EC2 自动缩放组:originalautoscalinggroup
  4. 流量重新路由:立即重新路由流量
  5. 终止策略:终止部署组中的原始实例
  6. 部署配置:CodeDeployDefault.AllAtOnce
  7. 应用程序负载均衡器。
  8. 目标群体:originaltargetgroup

我想我无法附加正确的负载均衡器或目标组。请帮忙。

Image1

Image2

根据评论添加答案。

由于 B/G 部署在流量重新路由期间失败,特别是在 "Allow Traffic",实例处于 "Unhealthy" 状态。

如果所需服务不在 EC2 上 运行 并且无法访问,它们将保持不健康状态并且无法将流量重定向到它们,因此部署将失败。

为确保所需 services/processes 在 AutoScaling 组启动的 EC2 服务器上 运行,您

  1. 将 Launch Config/Template 更新为 "User Data" 以在 EC2 启动时执行脚本,这将安装、配置和启动所需的服务,例如端口 80 上的 Nginx。
  2. 您可以创建自定义 AMI,其中已经安装了所需的应用程序,并且在 EC2 启动时,所需的 service/process 将启动。

这样,每当 ASG 启动一个新的 EC2 时,它都会根据启动进程所需的时间进入健康状态。一旦健康,它将准备好为流量提供服务,并且 post 旧实例将被注销。

注销旧实例后,它们可能会根据 CodeDeploy 中的配置终止。