Bad*_*ake 19 amazon-ec2 amazon-web-services autoscaling
我在亚马逊AWS上遇到了一个奇怪的情况.我不明白所需的实例编号用于什么?我有一个自动缩放组,其中包含已配置的向上扩展和向下扩展操作.
我有一个自定义PHP文件运行操作根据一些外部因素向上扩展和缩小.我想知道我必须在所需的实例中编写哪个数字,以免影响我的自动缩放操作.
例如:
我能做什么?
非常感谢!
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文档.
这些答案都很好,但我想补充一种情况。
假设您正在进行蓝/绿部署并且流量突发。您的最小值是 1,因为 50% 的情况下您只有 1 个实例。然而,假设您正在进行 CI/CD,并且部署整天都在发生。开发人员可以在实例已扩展到 10 个的大型扩展事件中将代码推送到生产环境。现在,如果您使用 terraform 之类的工具来部署自动扩展组等...它会将自动扩展组重置回1 并且您面临服务中断的风险。
因此,在部署期间,我们有一个 terraform 覆盖值,我们在调用时以编程方式将其传递给 terraform。在调用 terraform 之前,我们使用 aws cli 计算出自动缩放已将实例缩放到的当前所需容量,并将该值传递给 terraform,以便新的自动缩放组提供与前一个相同数量的主机。