Остановите все экземпляры в AWS Autoscaling Group сразу, используя CLI - PullRequest
0 голосов
/ 15 марта 2019

Я использую этот код для отсоединения экземпляров от группы автоматического масштабирования

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)

1 Ответ

0 голосов
/ 22 марта 2019

Группу автоматического масштабирования Amazon EC2 можно использовать для автоматического предоставления нескольких экземпляров Amazon EC2 в зависимости от потребности.

Например, когда экземпляры заняты, политика масштабирования можетавтоматически запускать дополнительные экземпляры («горизонтальное масштабирование»).Затем ночью, когда экземпляры используются не полностью, автоматическое масштабирование может автоматически удалять экземпляры («масштабирование»).

Автоматическое масштабирование также отслеживает состояние экземпляров в группе автоматического масштабирования и автоматически заменяет их.любые экземпляры, которые потерпели неудачу.

Это делается путем указания Launch Configuration , которая определяет, как запустить новый экземпляр, включая тип экземпляра, AMI и группу безопасности.

Типы масштабирования включают в себя:

  • Постоянное поддержание текущих уровней экземпляров (например, замена неудачных экземпляров)
  • Ручное масштабирование
  • Масштабирование на основерасписание
  • Масштабирование по требованию

Динамическое масштабирование для автоматического масштабирования Amazon EC2 - автоматическим масштабированием Amazon EC2 можно управлять с помощью:

  • Масштабирование отслеживания цели : Увеличение или уменьшение текущей емкости группы на основе целевого значения для конкретной метрики.Это похоже на то, как ваш термостат поддерживает температуру вашего дома - вы выбираете температуру, а термостат делает все остальное.
  • Шаг масштабирования : увеличение или уменьшение текущей мощностигруппа, основанная на наборе настроек масштабирования, известных как ступенчатые корректировки, которые зависят от размера нарушения сигнализации.
  • Простое масштабирование : увеличение или уменьшение текущей мощности группы на основена одну настройку масштабирования.

Самый простой способ - использовать Политики масштабирования отслеживания целей для автоматического масштабирования Amazon EC2 :

С масштабированием отслеживания целейполитики, вы выбираете масштабную метрику и устанавливаете целевое значение.Amazon EC2 Auto Scaling создает и управляет сигналами CloudWatch, которые запускают политику масштабирования, и рассчитывает корректировку масштабирования на основе показателя и целевого значения.Политика масштабирования добавляет или удаляет емкость по мере необходимости, чтобы показатель оставался на заданном целевом значении или приближался к нему.Помимо поддержания показателя близким к целевому значению, целевая политика масштабирования отслеживания также корректируется в соответствии с изменениями показателя, вызванными изменяющимся шаблоном нагрузки.

Итог: Вы должны , а не отсоединять и присоединять экземпляры к группе автоматического масштабирования.Вместо этого вам следует настроить политики масштабирования таким образом, чтобы это происходило автоматически на основе назначенной метрики (например, загрузка ЦП, количество пользователей, отставание в работе и т. Д.).

Обратите внимание, что автоматическое масштабирование запускает новые экземпляры. или завершает работу экземпляров .Он не запускает / останавливает экземпляры.

...