【问题标题】:Gradual traffic routing to a new instance with AWS Autoscaling使用 AWS Autoscaling 逐步将流量路由到新实例
【发布时间】:2018-10-08 07:38:41
【问题描述】:

我使用启用了自动缩放功能的弹性 beanstalk。
当触发自动缩放时,新的 EC2 实例会立即获得全部实时流量,而没有机会预热其缓存。

the docs 中描述的实例预热并不是我所需要的。据我了解,它只允许指定实例在能够处理全部流量之前所需的时间段。

相反,是否可以逐步将流量路由到自动扩缩组中的新实例?例如从应该通过此实例路由的 0.01% 的流量开始,在某个指定的时间段内达到 100%。

【问题讨论】:

    标签: amazon-web-services amazon-elastic-beanstalk autoscaling


    【解决方案1】:

    我认为答案是否定的。实例要么接收流量,要么不接收流量。

    我建议在执行任何预热任务(curl 等)的实例上使用启动脚本。然后根据典型的启动时间设置您的 elb 预热超时,并考虑启动您的应用程序所花费的时间。

    【讨论】:

    • 有没有自定义的负载均衡方案来解决这个问题?
    • 您可能(可能)在一些高端硬件设备中找到它,或者通过在 ec2 实例之上推出您自己的解决方案 - 但我不知道有任何云提供商具有您想要的功能作为服务。如果您的用例只是预热一个 beanstalk 应用程序,那么您提出的解决方案似乎不必要地复杂恕我直言。脚本将允许您在 0.00% 的流量卡住等待慢速服务器加载时,以可预测的方式(彻底)预热您的应用程序。使用一小部分流量样本来预热网站会产生不一致的结果,并且这 0.01% 的用户体验很差。
    • 非常感谢您的建议!
    【解决方案2】:

    AWS 引入了“慢启动模式”,在您提出这个问题几周后,逐渐将流量转移到新启动的实例,以便有时间建立缓存、建立数据库连接等。

    可以在此处找到有关如何在 Auto Scaling 目标组上配置慢启动模式的详细信息

    Auto Scaling Slow Start

    【讨论】:

      猜你喜欢
      • 2019-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-05
      • 2020-10-26
      • 1970-01-01
      • 2013-12-02
      • 1970-01-01
      相关资源
      最近更新 更多