【问题标题】:Why does AWS CodeDeploy AllowTraffic take 3 minutes per instance?为什么 AWS CodeDeploy AllowTraffic 每个实例需要 3 分钟?
【发布时间】:2020-01-29 09:39:06
【问题描述】:

我最近开始使用 AWS CodeDeploy,并注意到AllowTraffic 步骤始终需要每个实例 3 到 4 分钟。我已将健康检查间隔配置为 10 秒,将健康阈值配置为 2,因此我预计需要 20 秒。我正在使用网络负载均衡器。

我已使用 describe-target-health 对 NLB 的部署组进行轮询,并确认目标处于 initial 状态达 3 多分钟,CodeDeploy 正在等待。我还确认健康检查端口上的服务器在三分钟开始时响应。

CodeDeploy / NLB 这么慢的其他可能原因是什么?

【问题讨论】:

    标签: aws-code-deploy aws-elb


    【解决方案1】:

    您看到的额外时间不是由于健康检查,而是因为目标初始注册到 NLB 需要时间。

    当您向网络负载均衡器注册新目标时,预计需要 30 到 90 秒(最长可达 120 秒)才能完成注册过程。注册完成后,网络负载均衡器健康检查系统将开始向目标发送健康检查。新注册的目标必须在配置的时间间隔内通过健康检查才能进入服务并接收流量。

    例如,如果您将健康检查配置为 10 秒间隔,并且需要 2 次健康检查才能变得健康,那么实例开始接收流量的最短时间为 [30sec -to- 120sec](注册)+ [20秒](健康检查)

    ALB 不受此初始注册延迟的影响,因此它注册实例的速度要快得多。这正是 NLB 在这个时间点的运作方式。

    【讨论】:

    • 谢谢!这是否公开记录在某处?
    • 我还看到,在运行状况检查时间之上,时间相当于延长了 30%。
    • 我找不到这个额外的注册延迟的直接参考......但这是下一个最好的事情:docs.aws.amazon.com/elasticloadbalancing/latest/network/… 它提到:“我们建议您指定一个至少 120 秒的值确保请求完成。”
    猜你喜欢
    • 2017-12-29
    • 2019-07-22
    • 2019-12-15
    • 2020-06-26
    • 2019-02-17
    • 2019-06-19
    • 1970-01-01
    • 2019-08-27
    • 1970-01-01
    相关资源
    最近更新 更多