自动扩展的最佳方法(避免停机)

时间:2018-12-26 13:35:57

标签: amazon-web-services load-balancing amazon-elb autoscaling amazon-elastic-beanstalk

我们正在将AWS用于我们的Web应用程序,我们旨在将其扩展到数百万用户。现在,我们正在使用AWS Beanstalk“ Auto Scaling”,其中我定义了要扩展的最小,最大实例。

问题: 1-我们需要扩展到100万以上的用户 2-我们的AutoScaling工作正常,但是当我们启动一个新实例(花费更多时间安装应用程序)并且意味着用户请求也开始到达那里时(获取空响应,安装应用程序时)。

我想用最好的架构(建立一个可以随着时间而改进的Solid Base)进行少量的架构。

P.S:我们正在使用微服务架构+ API网关。

谢谢。

1 个答案:

答案 0 :(得分:0)

超过100万用户的定义不明确。这是否意味着需要一百万用户同时进行复杂的数据库访问,或者仅仅是一百万用户正在访问S3存储上的文件?定义性能要求是设计可靠,安全和容错系统的第一步。

自动缩放的关键有几个因素:

  1. 健康检查。您的运行状况检查将确定负载平衡器何时开始向后端实例发送请求。您的运行状况检查需要准确确定实例何时可用于服务,以及在检查新实例的运行状况之前要等待多长时间(实例启动时间)。
  2. 实例启动和配置。您需要您的实例尽快上线。这通常意味着创建不需要下载和安装更新,程序包或应用程序的预先配置的AMI。
  3. 管理。流量突然剧增通常是可以预见的。通常,可以安排产品公告,营销视频等,并可以预先对平台进行预热,然后在事件发生后关闭。

对自动缩放的一个普遍误解是放大可以立即完成。不是这种情况。要处理大量流量,您需要预热环境或具有额外的冗余容量来处理即时峰值。

自动缩放功能可以很好地解决流量随时间增长和减少(而不是一次全部)的问题。除无服务器平台外,没有instant on用于计算服务。