需要什么"理想的实例"?AWS Amazon Webservices AutoScaling组

Bad*_*ake 19 amazon-ec2 amazon-web-services autoscaling

我在亚马逊AWS上遇到了一个奇怪的情况.我不明白所需的实例编号用于什么?我有一个自动缩放组,其中包含已配置的向上扩展和向下扩展操作.

我有一个自定义PHP文件运行操作根据一些外部因素向上扩展缩小.我想知道我必须在所需的实例中编写哪个数字,以免影响我的自动缩放操作.

例如:

  1. 我把期望值设为2
  2. 我有2个实例在运行
  3. 我运行Scale Down动作
  4. 实例是1
  5. 自动调节组将自动启动另一个实例,因此我的缩小比例没有用,因为我结束了2运行

我能做什么?

非常感谢!

Pet*_*ter 23

ASG将始终尝试维持所需容量.如果您向上或向下扩展,并且新实例数与所需容量不同,则ASG将添加或删除实例以返回到所需容量.

如果使用扩展策略并且满足策略条件,则ASG将更改所需容量以匹配扩展策略的结果.例如,您的Desired Capacity为2,并且如果CPU利用率超过阈值,则表示要扩展的策略.

如果该政策得到满足,那么所需容量将增加到3,依此类推.

因此,手动按比例放大和缩小将导致ASG将实例数恢复到所需容量.

如果要手动向上和向下缩放,可以将Max和Min设置为较宽的值,并在其中移动Desired Capacity.

所以你可以做Max = 10,Min = 1,Desired = 3.然后,只需更改所需容量即可向上或向下扩展.(这就是我们使用Auto Scaling的方式,我想我之前为什么给你一个错误的答案.)

如果要终止实例并同时更改所需容量,CLI可以执行此操作.

请参阅在ASG中终止实例,以及更一般地说明CLI ASG文档.


Apo*_*kai 5

我认为期望值意味着在特定时间手动设置多个实例。我认为 99% 的情况下,您可以让您想要的 == 最小值,并让 ASG 策略进行扩展。


sto*_*obi 5

这些答案都很好,但我想补充一种情况。

假设您正在进行蓝/绿部署并且流量突发。您的最小值是 1,因为 50% 的情况下您只有 1 个实例。然而,假设您正在进行 CI/CD,并且部署整天都在发生。开发人员可以在实例已扩展到 10 个的大型扩展事件中将代码推送到生产环境。现在,如果您使用 terraform 之类的工具来部署自动扩展组等...它会将自动扩展组重置回1 并且您面临服务中断的风险。

因此,在部署期间,我们有一个 terraform 覆盖值,我们在调用时以编程方式将其传递给 terraform。在调用 terraform 之前,我们使用 aws cli 计算出自动缩放已将实例缩放到的当前所需容量,并将该值传递给 terraform,以便新的自动缩放组提供与前一个相同数量的主机。