AWS CodeDeploy Blue/Green 部署卡住了?
AWS CodeDeploy Blue/Green Deployment stuck?
我正在执行 AWS Blue/Green 部署来测试基本的 apache 服务器,当 CodeDeploy 经历 B/G 部署的 4 个步骤时,它停留在第 3 步,即,将流量路由到替换实例大约一半-小时。即使花了很长时间并重试了几次,我也无法弄清楚出了什么问题。我不知道我的设置是否正确。这是我的 B/G 部署设置。
- 使用两个实例创建了一个名为
orginalautoscalinggroup
的自动缩放组。
- 创建了两个目标组,一个用于原始环境,第二个用于替换环境,即
originaltargetgroup
和 replacementtargetgroup
。
- 附加
originaltargetgroup
成为 originalautoscalinggroup
的一部分。
- 创建了一个应用程序负载均衡器
apploadbalancer
并附加了 originaltargetgroup
- 现在
apploadbalancer
附加了 originaltargetgroup
,后者附加了 originalautoscalinggroup
。
我的 Codedeploy B/G 配置如下所示。
- 部署类型:B/G
- 环境配置:自动复制 Amazon EC2 Auto Scaling 组
- Amazon EC2 自动缩放组:
originalautoscalinggroup
- 流量重新路由:立即重新路由流量
- 终止策略:终止部署组中的原始实例
- 部署配置:CodeDeployDefault.AllAtOnce
- 应用程序负载均衡器。
- 目标群体:
originaltargetgroup
我想我无法附加正确的负载均衡器或目标组。请帮忙。
Image1
Image2
根据评论添加答案。
由于 B/G 部署在流量重新路由期间失败,特别是在 "Allow Traffic",实例处于 "Unhealthy" 状态。
如果所需服务不在 EC2 上 运行 并且无法访问,它们将保持不健康状态并且无法将流量重定向到它们,因此部署将失败。
为确保所需 services/processes 在 AutoScaling 组启动的 EC2 服务器上 运行,您
- 将 Launch Config/Template 更新为 "User Data" 以在 EC2 启动时执行脚本,这将安装、配置和启动所需的服务,例如端口 80 上的 Nginx。
- 您可以创建自定义 AMI,其中已经安装了所需的应用程序,并且在 EC2 启动时,所需的 service/process 将启动。
这样,每当 ASG 启动一个新的 EC2 时,它都会根据启动进程所需的时间进入健康状态。一旦健康,它将准备好为流量提供服务,并且 post 旧实例将被注销。
注销旧实例后,它们可能会根据 CodeDeploy 中的配置终止。
我正在执行 AWS Blue/Green 部署来测试基本的 apache 服务器,当 CodeDeploy 经历 B/G 部署的 4 个步骤时,它停留在第 3 步,即,将流量路由到替换实例大约一半-小时。即使花了很长时间并重试了几次,我也无法弄清楚出了什么问题。我不知道我的设置是否正确。这是我的 B/G 部署设置。
- 使用两个实例创建了一个名为
orginalautoscalinggroup
的自动缩放组。 - 创建了两个目标组,一个用于原始环境,第二个用于替换环境,即
originaltargetgroup
和replacementtargetgroup
。 - 附加
originaltargetgroup
成为originalautoscalinggroup
的一部分。 - 创建了一个应用程序负载均衡器
apploadbalancer
并附加了originaltargetgroup
- 现在
apploadbalancer
附加了originaltargetgroup
,后者附加了originalautoscalinggroup
。
我的 Codedeploy B/G 配置如下所示。
- 部署类型:B/G
- 环境配置:自动复制 Amazon EC2 Auto Scaling 组
- Amazon EC2 自动缩放组:
originalautoscalinggroup
- 流量重新路由:立即重新路由流量
- 终止策略:终止部署组中的原始实例
- 部署配置:CodeDeployDefault.AllAtOnce
- 应用程序负载均衡器。
- 目标群体:
originaltargetgroup
我想我无法附加正确的负载均衡器或目标组。请帮忙。
Image1
Image2
根据评论添加答案。
由于 B/G 部署在流量重新路由期间失败,特别是在 "Allow Traffic",实例处于 "Unhealthy" 状态。
如果所需服务不在 EC2 上 运行 并且无法访问,它们将保持不健康状态并且无法将流量重定向到它们,因此部署将失败。
为确保所需 services/processes 在 AutoScaling 组启动的 EC2 服务器上 运行,您
- 将 Launch Config/Template 更新为 "User Data" 以在 EC2 启动时执行脚本,这将安装、配置和启动所需的服务,例如端口 80 上的 Nginx。
- 您可以创建自定义 AMI,其中已经安装了所需的应用程序,并且在 EC2 启动时,所需的 service/process 将启动。
这样,每当 ASG 启动一个新的 EC2 时,它都会根据启动进程所需的时间进入健康状态。一旦健康,它将准备好为流量提供服务,并且 post 旧实例将被注销。
注销旧实例后,它们可能会根据 CodeDeploy 中的配置终止。