EC2 Auto-Scaling:configuration目标跟踪策略以偏好竞价型实例

亚马逊最近推出了针对EC2 Auto Scaling的目标跟踪策略 。

在我的生产服务中,我使用两个独立的自动缩放组来支持混合自动缩放和Spot和On-Demand实例的混合。 我想要的是我的CPU使用率不应该超过70%,它应该尽可能使用竞价型实例,但如果有必要,则会回退到按需实例。

首先,我将两个Auto-Scaling组(Spot和On-Demand)设置为使用70%的CPU负载的目标跟踪,并将两个组的最小大小设置为1。 我的服务的stream量是相当可预测的(没有突然提升,白天stream量更多,夜间stream量也很less)。

有一次,有两个点播和两个竞价实例在运行。 系统刚刚缩小,因为五台服务器的CPU负载变得非常低(约35%)。 在四台服务器上,CPU负载上升,几分钟之后短暂地超过了70%的标准(也许当时的stream量增长很小)。

系统保守地决定再次放大,但是由于两个自动扩展组同时独立做出决定,因此启动了两个实例(一个点和一个按需实例)。 在这一点上,现在有六台服务器在运行。 一段时间后,它再次缩小,最终达到了运行四个实例的设置。

为了避免这种影响,我现在改变了设置如下:

  • 按需:目标70%的CPU使用率,最less一台服务器
  • Spot:目标65%的CPU使用率,一台服务器最低

我的假设是,它应该有助于防止我描述的情况。 我预计按需组会比Spot组更早地缩小(无论如何,因为它们的成本更高)。 我期望Spot实例可以更快地扩展,这样可以防止On-Demand组的不必要的扩大。

这是我的期望,但是我没有在文档中find很多细节来确认它。 有人可以详细了解新的目标跟踪缩放如何工作,以及如何将其应用于与Spot和按需实例的混合设置?

问题:

  • 如果我将目标设定为70%的CPU利用率,那么什么时候会决定放大和什么时候缩小?
  • 如果我有两个Auto-Scaling组,其中一个具有70%的CPU利用率目标,另一个具有65%,那么它何时决定向上或向下扩展? 它会一直比较喜欢把这个70%的小组缩小吗? 它总是喜欢扩大65%的组?
  • 如果现货市场的价格突然上涨超过我的出价限制,会发生什么情况呢? 按需自动缩放组是否会接pipe?
  • 我的理解是否正确,手动定义所需实例的数量只有短期效果,并且会由Auto Scaling策略自动调整?
  • 例如,如果在夜间缩小到最小值并在第二天再次放大,是否意味着前一天的初始“希望实例数”设置现在已经过时了? 换句话说,我是否只需要担心设置合理的最小值和最大值,AWS是否会找出其余的呢?