簡體   English   中英

使用CLI一次停止AWS Autoscaling Group中的所有實例

[英]Stop all instances in AWS Autoscaling Group at once using CLI

我正在使用此代碼從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)

Amazon EC2 Auto Scaling組可用於根據需要自動置備許多Amazon EC2實例。

例如,當實例繁忙時, 擴展策略可以自動啟動其他實例(“向外擴展”)。 然后,在晚上,當實例未得到充分利用時,Auto Scaling可以自動刪除實例(“放大”)。

Auto Scaling還監視Auto Scaling組中實例的運行狀況,並自動替換任何失敗的實例。

這是通過指定定義如何啟動新實例的啟動配置來完成的,包括實例類型,AMI和安全組。

縮放類型包括:

  • 始終保持當前實例級別(例如,替換失敗的實例)
  • 手動縮放
  • 根據計划進行擴展
  • 根據需求擴展

Amazon EC2 Auto Scaling的動態擴展-Amazon EC2 Auto Scaling可以通過以下方式控制:

  • 目標跟蹤縮放 :根據特定指標的目標值增加或減少組的當前容量。 這與您的恆溫器保持家庭溫度的方式類似 - 您選擇溫度,恆溫器完成其余部分。
  • 逐步調整 :根據一組調整調整(稱為逐步調整)來增加或減少組的當前容量,這些調整調整根據警報違規的大小而變化。
  • 簡單縮放 :基於單個縮放調整增加或減少組的當前容量。

最簡單的方法是對Amazon EC2 Auto Scaling使用目標跟蹤擴展策略

使用目標跟蹤擴展策略,您可以選擇擴展指標並設置目標值。 Amazon EC2 Auto Scaling創建和管理CloudWatch警報,這些警報觸發縮放策略並根據指標和目標值計算縮放調整。 擴展策略根據需要添加或刪除容量,以使度量標准保持在指定目標值或接近指定目標值。 除了使度量保持接近目標值外,目標跟蹤縮放策略還根據負載模式的變化來適應度量的變化。

底線:應該分離和附加實例的自動縮放組。 相反,您應該基於指定的指標(例如,CPU利用率,用戶數,工作積壓等)配置擴展策略以使其自動發生。

請注意,Auto Scaling會啟動新實例終止實例 不會啟動/停止實例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM