【问题标题】:AWS - how to prevent load balancer from terminating instances under load?AWS - 如何防止负载均衡器在负载下终止实例?
【发布时间】:2017-01-24 16:32:01
【问题描述】:

我正在编写一个 Web 服务,它将客户数据打包成 zip 文件,然后将它们上传到 S3 以供下载。这是一个按需流程,数据量可以从几兆字节到数千兆字节不等,具体取决于客户订购的数据。 不用说,可扩展性对于此类服务至关重要。但我遇到了麻烦。必须在服务器实例的本地硬盘上将数据打包成 zip 文件。

但是负载均衡器很容易终止仍在工作的实例。我查看了扩展策略: http://docs.aws.amazon.com/autoscaling/latest/userguide/as-instance-termination.html

但我需要的东西似乎并不存在。这个问题不应该那么困难:我将规模指标设置为 CPU 负载,并在低于 1% 时缩小规模。但我需要保证将终止违反阈值的确切实例,而不是另一个仍在努力工作的实例,并且可用的政策似乎没有为我提供该选项。现在,我不知道如何实现这一目标。谁能给我一些建议?

【问题讨论】:

    标签: amazon-web-services amazon-elb


    【解决方案1】:

    您可以使用Auto Scaling Lifecycle Hooks 在实例终止之前执行操作。您可以使用它来等待处理完成,然后再继续实例终止。

    【讨论】:

      【解决方案2】:

      您似乎已为 Auto Scaling 组配置了基于 CPU 利用率的扩展策略。

      请注意,弹性负载均衡器永远不会终止 Amazon EC2 实例——如果负载均衡器运行状况检查失败,它只会停止向该 EC2 实例提供流量,直到它再次通过运行状况检查。可以将 Auto Scaling 配置为使用 ELB 健康检查,在这种情况下,Auto Scaling 将终止 ELB 标记为不健康的任何实例。

      因此,由于您的扩展策略,Auto Scaling 似乎负责终止您的实例。您说您希望终止未使用的特定实例。但是,这不是 Auto Scaling 的总体意图。相反,Auto Scaling 用于提供可通过启动新实例和终止不需要的实例来扩展的资源池。触发 Auto Scaling 的指标通常基于整个 Auto Scaling 组的聚合指标(例如平均 CPU 利用率)。

      鉴于 Amazon EC2 实例按小时计费,让实例运行更长时间通常是个好主意——“快速扩展,缓慢缩减”。

      一旦 Auto Scaling 决定终止实例(它通过 termination policy 选择),使用 Auto Scaling lifecycle hook 将终止延迟到准备就绪(例如,将日志文件复制到 S3,或等待很长的进程完成)。

      如果您确实希望在实例完成特定工作负载后终止它,则无需使用 Auto Scaling - 只需在实例完成时关闭实例,然后设置 @ 987654323@ 到 terminate 在关闭时自动终止实例。 (这假设您有一个流程可以在您有想要执行的工作时启动新实例。)

      回过头来看看您的总体架构,您似乎在 Web 服务器前面有一个负载均衡器,并且您正在 Web 服务器上执行 Zip 操作?这不是一个可扩展的解决方案。如果您的 Web 服务器将消息推送到 Amazon Simple Queue Service (SQS) 队列中,然后您的后端服务器队列处理来自队列的消息,那就更好了。这样,您的前端可以继续接收请求,而不管正在进行的处理量如何。

      【讨论】:

        【解决方案3】:

        听起来您需要的是实例保护,实际上在您链接到的文档底部更多地提到了它。只要您在特定实例上执行工作,它就不会被 Auto-Scaling Group (ASG) 自动终止。

        Check out this blog post,在官方 AWS 博客上,从概念上讨论了如何使用实例保护来防止工作被过早终止。

        【讨论】:

        • 我其实已经看到了,但它似乎不适合自动化。
        猜你喜欢
        • 1970-01-01
        • 2018-02-21
        • 2016-01-01
        • 2020-10-22
        • 1970-01-01
        • 1970-01-01
        • 2021-12-07
        • 2014-12-18
        • 2016-06-04
        相关资源
        最近更新 更多