Поиск по сайту:

Как автоматически отключить инстансы AWS EC2


Распространенным вариантом использования инстансов EC2 по запросу и спотовых инстансов является использование мощных машин для краткосрочных разовых задач. Однако, если вы случайно оставите эти машины включенными, вы можете получить очень большой счет. К счастью, у AWS есть инструменты для предотвращения этого.

Предотвращение переполнения кошелька

Это случай «переполнения облака», когда некоторые из наиболее масштабируемых сервисов, которые вы запускаете, опасны для вашего кошелька и, если они не настроены должным образом, могут в конечном итоге стоить вам на порядки больше денег, чем вы ожидали.

Например, предположим, что вам нужно выполнить краткосрочную, срочную задачу на чрезвычайно мощной машине — например, запустить интенсивную сборку кодовой базы на рабочей машине с 64 ядрами или выполнить 3D-рендеринг на машине с несколькими графическими процессорами. В любом случае почасовая оплата этих машин стоит дорого, порядка нескольких тысяч долларов в месяц. У AWS есть несколько ускоренных вычислительных машин, которые обойдутся вам в 25 тысяч долларов за непрерывную работу в течение 750 часов.

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

У AWS нет встроенного способа обеспечить это, но он предоставляет оповещения CloudWatch: настраиваемые функции, которые будут постоянно проверять ваши экземпляры, чтобы убедиться, что все в порядке. Их можно настроить для мониторинга использования ЦП, сети и диска, а также запускать автоматическое отключение или перезапуск. Вы даже можете подключить их к очереди SNS для отправки уведомлений в другие системы.

Настройка будильника

В этом случае подойдет простой сигнал тревоги, отключающий неактивные экземпляры. Хотя оповещения о том, что «работает слишком долго», нет, вы можете имитировать его, используя загрузку ЦП. Если выполняемая вами задача обычно загружает все ядра, загрузка ЦП должна быть близка к нулю на неактивной машине.

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

В консоли EC2 щелкните экземпляр правой кнопкой мыши и выберите «Мониторинг» > «Управление сигналами тревоги CloudWatch» или щелкните значок + рядом с «Состоянием сигналов тревоги» в браузере, если существующих сигналов тревоги нет.

Здесь вы можете настроить порог срабатывания сигнализации. Как правило, вы хотите установить группировку на «Среднее», выбрать «Загрузка ЦП» и настроить ее на срабатывание, когда она составляет менее 10 процентов или около того в течение часа. Обратите внимание, что период здесь умножается на количество в «Последовательных периодах», поэтому 5-минутные периоды, умноженные на 12, также будут действительными, а не только 1 час.

Затем вы можете настроить действие сигнала тревоги, чтобы остановить экземпляр.

Это должно быть все, что вам нужно, и он автоматически запустится после создания. Вы можете использовать ту же конфигурацию сигнализации на машине меньшего размера, если хотите протестировать свою настройку.

Однако, чтобы быть в безопасности, вам, вероятно, следует включить глобальные оповещения о выставлении счетов AWS. Они могут заранее предупредить вас, если вы превышаете свой целевой бюджет, позволяя вам решить проблему вручную, прежде чем она иссякнет и опустошит ваш кошелек.