我正在使用此代码从Auto Scaling组中分离实例
import os, subprocess
CMD = "aws autoscaling --region us-east-1 describe-auto-scaling-groups --query 'AutoScalingGroups[?contains(Tags[?Key==`Test_Tag_1`].Value,`SBX_Min_Det`)].Instances[*].[InstanceId]' --output text"
output = subprocess.check_output(CMD, shell=True)
lst = []
for char in output:
lst.append(char)
lst = ''.join(lst).split('\n')
lst.remove("")
print (lst)
for l in lst:
l = '"'+str(l)+'"'
new_cmd = "aws autoscaling --region us-east-1 detach-instances --auto-scaling-group-name Test_Group --should-decrement-desired-capacity --instance-ids "+l
subprocess.check_output(new_cmd, shell=True)
但是,我希望能够使用一个脚本将多个实例从多个组中分离出来。我对Python和AWS CLI命令很陌生。任何帮助将不胜感激。谢谢。
我对以前的脚本做了如下更改,目前停留在这里。
import os, subprocess
CMD = "aws autoscaling --region us-east-1 describe-auto-scaling-groups --query 'AutoScalingGroups[?contains(Tags[?Key==`Name`].Value,`test_asg`)].[AutoScalingGroupName]' --output text"
output = subprocess.check_output(CMD, shell=True)
lst = []
for char in output:
lst.append(char)
lst = ''.join(lst).split('\n')
lst.remove("")
print (lst)
for l in lst:
l = '"'+str(l)+'"'
new_cmd = "aws autoscaling --region us-east-1 describe-auto-scaling-groups --query 'AutoScalingGroups[].Instances[*].[InstanceId]' --output text --auto-scaling-group-name "+l
output2 = subprocess.check_output(new_cmd, shell=True)
lst2 = []
for char in output2:
lst2.append(char)
lst2 = ''.join(lst2).split('\n')
lst2.remove("")
print(lst2)
for l2 in lst2:
l2 = '"'+str(l2)+'"'
new_cmd_2 = "aws autoscaling --region us-east-1 detach-instances --auto-scaling-group-name $CMD --should-decrement-desired-capacity --instance-ids "+l
subprocess.check_output(new_cmd_2, shell=True)
答案 0 :(得分:0)
Amazon EC2 Auto Scaling组可用于根据需要自动置备许多Amazon EC2实例。
例如,当实例繁忙时,扩展策略可以自动启动其他实例(“向外扩展”)。然后,在晚上,当实例使用不足时,Auto Scaling可以自动删除实例(“放大”)。
Auto Scaling还会监视Auto Scaling组中实例的运行状况,并将自动替换所有失败的实例。
这是通过指定启动配置来完成的,该配置定义了如何启动新实例,包括实例类型,AMI和安全组。
Dynamic Scaling for Amazon EC2 Auto Scaling - Amazon EC2 Auto Scaling可以通过以下方式控制:
最简单的方法是使用Target Tracking Scaling Policies for Amazon EC2 Auto Scaling:
使用目标跟踪缩放策略,您可以选择缩放指标并设置目标值。 Amazon EC2 Auto Scaling创建和管理CloudWatch警报,这些警报触发缩放策略并根据指标和目标值计算缩放调整。缩放策略会根据需要添加或删除容量,以将指标保持在指定的目标值或接近指定的目标值。除了使指标接近目标值外,目标跟踪缩放策略还根据负载模式的变化来适应指标的变化。
底线::您不应该不要分离实例并将其附加到Auto Scaling组。相反,您应该基于指定的指标(例如,CPU使用率,用户数,工作积压等)配置扩展策略以使其自动发生。
请注意,Auto Scaling 启动新实例或终止实例。它不会启动/停止实例。