[当在AWS EC2中设置Auto Scaling组时,Min
和Max
界限似乎很有意义:
但是,我从来没能绕过Desired
打算影响的地方。
我总是将Desired
设置为等于Min
,因为通常来说,我想向亚马逊支付尽可能多的什一税,除非您需要一个实例来处理负载,否则实例的数量应为Min
个实例。
[我知道您是否使用ElasticBeanstalk
并将Min
设置为1并将Max
设置为2,它会将Desired
设置为2(当然!)-您无法为Desired
选择值。
Desired
个不同数量的实例的用例是什么?它有什么不同?如果您希望AWS扩展到低于Desired
的程度(如果需要)大于Min
?
以下是来自AWS支持的“最小,期望和最大”值的说明:
MIN:这是您可以运行的最少实例数自动缩放组。如果触发了按比例缩小的CloudWatch警报,您的自动伸缩组将永远不会终止低于此数字的实例
所需:如果您因规模扩大事件而触发CloudWatch警报,则它将通知自动定标器将其更改为指定的值更高的金额,自动缩放器将启动一个实例以满足该号码。如果触发CloudWatch警报以缩小比例,则它会会将所需的自动缩放器更改为指定的较低数字,然后自动缩放器将终止实例以获取该编号。
MAX:这是您可以在其中运行的最大实例数您的自动缩放组。如果您的向上扩展CloudWatch警报仍然存在触发后,您的自动伸缩组将永远不会创建实例超过指定的最大数量。
像滑动范围UI元素那样思考。
使用最小和最大,您正在设置实例缩放的下限。有了所需的容量,您可以将实例计数当前设置为悬停。
实施例:您知道由于市场营销电子邮件或产品发布,您的应用程序将承受沉重的负担……只需事先扩展所需的容量即可:
aws autoscaling set-desired-capacity --auto-scaling-group-name my-auto-scaling-group --desired-capacity 2 --honor-cooldown
[如果期望,当您期望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使用率下降时,不会关闭应用程序。
“期望”是(有必要的)模棱两可的。
根据我的阅读,以通俗易懂的方式,DesiredCapacity
值会在放大和缩小事件中自动更新。
换句话说,
通过减小或增大DesiredCapacity
值来完成放大或缩小。
所需容量仅表示启动自动扩展时将要启动/启动的实例数。这意味着,如果所需的容量= 4,则除非有任何向上或向下事件触发,否则4个实例将继续运行。如果发生向上扩展事件,则实例数将增加直到最大容量,如果发生向下扩展事件,则实例数将减小直到最小容量。
如果有错,请纠正我,谢谢。
[我注意到所需容量下降了,并且没有新实例出现]]
因此,似乎没有任何实例附加到ELB上,无法超过min和max设置的阈值限制,但是根据发生的放大或缩小事件来自动调整或更改所需的容量。这对我来说绝对是未知的。
这可能是让AWS知道这是给定时间点各个ELB所需的所需容量的方法。