AWS EC2 Auto Scaling组:我得到的是Min和Max,但是所需的实例限制是什么?


78

在AWS EC2中设置Auto Scaling组时MinMax边界似乎很有意义:

  • 根据策略缩减到的最小实例数
  • 根据策略扩展到的最大实例数

但是,我从来没有能够绕过Desired想要影响的东西。

我总是将其设置DesiredMin,因为通常来说,我想向亚马逊支付尽可能多的什一税,除非您需要一个实例来处理负载,否则它应Min为实例数。

我知道如果您使用aElasticBeanstalk并将其设置Min为1和Max2,则将a设置Desired为2(当然!)-您无法选择的值Desired

不同Desired数量的实例的用例是什么?它有什么不同?当您期望AWS扩展规模小于您的Desired期望值时,大于Min


1
您可以通过将期望值设置为min来正确完成操作,因为期望值指示ASG上的“当前金额”。当警报触发“增加”或“减少”时,所需的量将发生变化(例如控制面板上的开关),以便ASG创建或删除实例。您可以在下面查看我的详细答案。
Bahadir Tasdemir '16

Answers:


77

这是AWS支持中“最小,期望和最大”值的说明:

MIN:这是您的自动伸缩组中可以运行的最少实例数。如果触发了按比例缩小的CloudWatch警报,则自动按比例缩放组将永远不会终止低于此数字的实例

所需:如果您触发CloudWatch警报发生放大事件,则它将通知自动伸缩器将所需的值更改为指定的更高数量,并且自动伸缩器将启动一个实例来满足该数量。如果触发CloudWatch警报以缩小比例,则它将所需的自动缩放器更改为指定的较低数字,并且自动缩放器将终止实例以获取该数字。

MAX:这是您在自动伸缩组中可以运行的最大实例数。如果您的向上扩展CloudWatch警报保持触发状态,那么您的自动扩展组将永远不会创建超过指定最大数量的实例。


17
是的,很有道理。最小值和最大值是界限,希望是您最初设置的值,但是自动缩放器可能会根据您的警报规则进行调整。谢谢。

有文档链接吗?
Rod

我向AWS支持人员询问了问题。这是正式答案。我不知道是否有任何文档。
巴哈迪尔·塔斯德米尔

1
因此,基本上就像设置手动CloudWatch旅行一样。如果设置为20,则服务器数量将在事件发生时扩展到20,但是如果配置指定,则服务器将自动缩减。或者换种说法:手动将min设置为20,然后将其减小为4,也将具有完全相同的效果。
Chuck Le Butt '18

32

像滑动范围UI元素一样考虑它。

在此处输入图片说明

使用min和max,您可以设置实例缩放的下限。有了所需的容量,您可以将实例计数当前设置为悬停。

示例:您知道由于营销电子邮件或产品发布,您的应用程序将承受沉重的负担……只需事先扩展所需的容量即可:

aws autoscaling set-desired-capacity --auto-scaling-group-name my-auto-scaling-group --desired-capacity 2 --honor-cooldown

资源


当前实例数何时会降到滑块设置的水平以下?我知道如果需要的话,它可能会扩展到期望值之上,直到最大,但是我还没有看到它会低于期望值的情况。

@Ray我已经回答了您的问题。我知道这个问题已有一年之久,但今天却遇到了这个问题,并通过查看此问题回答了我自己的问题。Erik,关于滑块部分的很好的例子。
AKDesai

13

如果您希望AWS扩展规模小于期望的规模(如果需要)大于最小规模?

当您基于某些AutoScaling策略设置CloudWatch警报时,会发生这种情况。每当触发该警报时,它将把DesiredCount更新为配置中提到的内容。

例如,如果AutoScalingGroup配置的Min = 1,Desired = 3,Max = 5,并且在AutoScalingPolicy上设置了一个警报,该警报说如果连续10分钟CPU使用率<50%,Remove 1 instances则它将继续减少实例计数每当触发警报时将其设置为1,直到DesiredCount = MinCount。

获得的经验:将MinCount设置为> 0或= DesiredCount。这将确保当mincount = 0并且CPU使用率下降时,不会关闭应用程序。


1
是的,在再次阅读了网站管理员的帖子和您的内容之后,我从Erik的观点中解析出关键阶段:“当前就像实例计数要悬停一样”。艰难的呼吁是“最好的”答案。我喜欢滑块的类比,但仍然觉得Erik有点模糊,至少没有(至少对我而言)没有清楚地指出自动缩放的提示实际上会修改“所需”。您的答案非常清楚地指出了这一点。如果您的和Eriks合并为一个,那肯定会影响我选择的正确,但是就目前而言,你们俩都获得了投票。

是的,我同意你的看法。我只回答了您问题的未答复部分。感谢您的支持。
AKDesai

10

“所需”是(必要的)模棱两可的。

  • 这意味着实例的“初始”数量。为什么不只是“初始”呢?因为数字可能会因自动缩放事件而改变。
  • 因此,它表示实例的“当前”数量。为什么不只是“当前”呢?因为在自动缩放事件期间,实例将启动/终止。这些实例不计入“当前”实例数。通过“当前”,用户期望可操作的实例。
  • 因此,它意味着实例的“目标”数量。为什么不只是“目标”呢?我猜“目标”和“期望”一样好(含糊)...

谢谢,这是有帮助的。创建ASG之后,我没有意识到价值发生了变化。
jDub9

我现在相信,“欲望”一词涵盖了这三个定义。有时它表示一个初始数字,有时是一个初始数字,有时只是一个目标,有时是所有这些的混合。
sobi3ch

确实有帮助。这应该是选择的答案!
瑞安·柳

这应该是选择的答案。这个答案是当忍者大师在说话的时候:)
Sandeep Shukla

0

根据我的阅读,以通俗易懂的术语来说,DesiredCapacity在规模扩大和规模扩张事件中,价值会自动更新。

换一种说法,

缩小或缩小是通过减小或增大DesiredCapacity值来完成的。


0

所需容量仅表示启动自动扩展时将要启动/启动的实例数。这意味着,如果所需的容量= 4,则除非有任何向上或向下事件触发,否则4个实例将继续运行。如果发生向上扩展事件,则实例数将增加直到最大容量,如果发生向下扩展事件,则实例数将减小直到最小容量。

如果有错请指正,谢谢。


0

我注意到所需的容量下降了,并且当

  1. 我将其中一个实例设置为备用。它保持运行状态,但是与ELB分离(通过ELB DNS访问时,请求未转发到该特定实例)。AWS尚未启动任何新实例。所需容量反而减少了1。
  2. 当我更改实例的状态(从待机状态)时,该实例再次连接到ELB(通过ELB DNS访问时,实例开始获取请求)。所需容量增加了1,变为2。

因此,似乎没有任何实例附加到ELB上,不能超过min和max设置的阈值限制,但是根据发生的伸缩事件自动调整或更改所需的容量。这对我来说绝对是未知的。

可能是一种让AWS知道这是给定时间点各个ELB所需的所需容量的方法。


0

最小值和最大值是不言自明的,但在我将目标跟踪自动扩展策略与ASG(其中CPU利用率是目标指标)连接起来之后,它一直很令人困惑。在此,根据目标CPU利用率对所需实例进行了扩展和扩展。如果通过cloudformation / manual放置了任何所需的计数,则ASG暂时将创建与所需计数相同数量的实例。但是,以后的ASG策略将根据目标CPU利用率自动调整所需实例。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.