AWS Codedeploy BlockTraffic/AllowTraffic 持续时间

Posted

技术标签:

【中文标题】AWS Codedeploy BlockTraffic/AllowTraffic 持续时间【英文标题】:AWS Codedeploy BlockTraffic/AllowTraffic durations 【发布时间】:2019-12-15 20:16:35 【问题描述】:

我一直在使用 AWS CodeDeploy 来推送我们的应用程序,但执行 BlockTraffic 和 AllowTraffic 步骤总是需要很长时间。目前,我有一个应用程序负载均衡器 (ALB),最初包含三个 EC2 节点(在自动缩放组后面)。因此,如果我执行 CodeDeploy OneAtATime,整个过程最多需要 25 分钟。

我使用的负载均衡器将连接耗尽设置为 300 秒。我认为这是拖出的原因。但是,我禁用了 Connection Draining 并得到了相同的结果。然后我启用了 Connection Draining 并将超时设置为 5 秒,仍然得到相同的结果。

此外,我发现 CodeDeploy 依赖于 ALB 健康检查设置。根据 AWS 文档

实例绑定到 ALB 后,CodeDeploy 等待 负载后实例的健康状态(“inService”) 平衡器。此运行状况检查由 ALB 完成,取决于运行状况 检查配置。

所以我尝试为健康检查设置设置低超时和阈值。即使是这些更改也没有减少部署时间。

有人可以指导我找到一个适当的解决方案来加快这个过程吗?

【问题讨论】:

您好,您找到解决方法了吗?我也面临同样的事情。 【参考方案1】:

问题是实例从 AWS 目标组中注销。你想改变这个值:

或找到更新deregistration_delay.timeout_seconds 属性的方法 - 默认情况下为 300 秒,即 5 分钟。可以在here 找到文档。

【讨论】:

我将取消注册延迟设置为 30 秒,进行 2 次 10 秒的健康检查,但 BlockTraffic 步骤仍然持续花费 1 分 30 秒,而应该是 40 秒左右。 AllowTraffic 只需要 20 秒。知道还有什么可能导致它吗?

以上是关于AWS Codedeploy BlockTraffic/AllowTraffic 持续时间的主要内容,如果未能解决你的问题,请参考以下文章

[AWS DA] AWS CICD: CodeCommit, CodePipeline, CodeBuild, CodeDeploy

自动缩放组设置为 0 个实例时的 AWS Codedeploy

AWS Codedeploy BlockTraffic/AllowTraffic 持续时间

AWS ElasticBeanstalk、CodeDeploy 与 Capistrano、Mina、Vlad 等

AWS CodeDeploy蓝色/绿色部署ELB体系结构

完成对所有实例的部署后的 AWS CodeDeploy 挂钩?