Планирование запуска и остановки экземпляра Ec2 в aws по сравнению с azure?

#amazon-web-services #azure #amazon-ec2 #lambda #amazon-cloudwatch

#amazon-web-services #azure #amazon-ec2 #лямбда #amazon-cloudwatch

Вопрос:

Я пытаюсь запускать и останавливать свои экземпляры EC2 в определенное время суток. В Azure доступны параметры запуска и остановки виртуальных машин по расписанию.

Мне интересно, присутствует ли что-то подобное в AWS. если нет, то каков наилучший способ добиться этого? предполагая, что в 7 утра я запускаю свой EC2 и останавливаю его к 9 вечера по восточному времени. Я также знаю о событии cloud watch, интегрированном с опцией lamnda

Ответ №1:

На основе комментариев.

Функция lambda потребуется только для запуска вашего экземпляра, если вы хотите запустить его с помощью правила событий CloudWatch (CW). Причина в том, что вы можете остановить экземпляр напрямую, используя встроенные целевые объекты CW:

Встроенные цели: вызов API EC2 CreateSnapshot, вызов API EC2 RebootInstances, вызов API EC2 StopInstances и вызов API EC2 TerminateInstances.

К сожалению, для запуска экземпляра нет встроенной цели, поэтому для этого необходима функция lambda.

Комментарии:

1. просто любопытно, какое событие CloudWatch вы планируете использовать для запуска завершения EC2? Операция касалась планирования.

Ответ №2:

Создайте две разные лямбда-функции для запуска и завершения экземпляра EC2 и запланируйте их с помощью CloudWatch. Для лямбда-выражения вы можете использовать любой язык из AWS SDK. Чтобы выбрать конкретный экземпляр для завершения, экземпляр EC2 можно пометить, чтобы разделить его. Вот решение для того же.

Комментарии:

1. Зачем вам нужны две функции?

2. @Marcin — один для запуска, а другой для завершения экземпляра EC2.

3. Привет, @Marcin надеюсь, у тебя все хорошо. У меня есть идея события cloud watch с помощью lambda. Мы можем справиться с этим с помощью одной функции, проверив текущее состояние экземпляра. Но есть ли другой способ. Azure предоставляет для этого встроенную опцию, есть ли что-то подобное в AWS?

4. Вот ссылка на API Boto3 (Python AWS SDK), чтобы получить статус экземпляра EC2. Аналогичный API можно получить и для других языков. И на одну лямбду больше смысла, на одну меньше поводов для беспокойства 🙂

5. @sumanthshetty Привет. Я в порядке, спасибо. Событие CloudWatch было бы обычным способом сделать это. Но лямбда-выражение потребуется только для запуска экземпляра. Остановка может быть выполнена напрямую с помощью целевого правила события CW.

Ответ №3:

Вот полное руководство https://aws.amazon.com/premiumsupport/knowledge-center/start-stop-lambda-cloudwatch /. Дайте мне знать, если это поможет.

Как предложил Правин Шрипати https://aws.amazon.com/solutions/implementations/instance-scheduler / работает довольно хорошо.

Комментарии:

1. Решение AWS Knowledge Center имеет недостатки, поскольку идентификаторы экземпляров EC2 жестко закодированы в нем. Перед запуском лямбда-выражения необходимо изменить идентификаторы экземпляра EC2, что не имеет особого смысла для автоматизации. Пометка EC2 — это один из способов, которым я могу подумать о сужении экземпляра EC2 для завершения работы.