Назад | Перейти на главную страницу

Самый быстрый способ завершить работу инстанса EC2

У меня есть требование завершить работу инстансов EC2 менее чем за минуту.

Текущий процесс занимает чуть менее 2 минут на экземпляр, потому что процесс выключения ОС занимает 60 секунд. Я хочу значительно ускорить увольнение, если это возможно.

Кто-нибудь знает способ ускорить terminate() функция в EC2? Есть ли способ "отключить" без остановки, как это делают другие решения виртуализации?

Задний план:
В Бото я называю terminate() функция с wait_until_terminated() перед обработкой удаления подсети или других последующих задач.

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

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

Я попробовал stop(Force=True) и это немного быстрее, но все же больше минуты.

Я попытался принудительно удалить том EBS, но сначала вам нужно выключить экземпляр, в результате чего процесс превысит 1 минуту.

Я пробовал использовать SSH для запуска различных shutdown и halt аргументы команды, но я не могу найти команду ОС, которая выполняется быстрее 60 секунд. Количество запущенных служб уже минимально, и я не могу дальше ускорять завершение работы ОС.

Я надеюсь найти способ "отключить" через AWS. Или какой-нибудь другой способ быстро прекратить. Похоже, что для завершения требуется выключение ОС, что для меня немного странно, когда я все равно хочу зажечь экземпляр.

Хотя я согласен с тем, что это проблема XY, и вы должны решить эту проблему другим способом, существуют гораздо более быстрые способы завершения работы ОС, чем использование shutdown. Нет причин ждать, пока Linux вызовет сценарии инициализации и выдаст TERM и KILL ко всем процессам.

Исторически я считаю killall -9 init или волшебный ключ SysRq был самым быстрым способом. Тем не мение, systemd перечисляет много способов (man systemd), например:

   SIGRTMIN+13
       Immediately halts the machine.

   SIGRTMIN+14
       Immediately powers off the machine.

Вероятно, вам придется протестировать несколько вариантов, прежде чем найти тот, на который AWS реагирует быстрее всего, но переход с выключения ОС с 60 секунд до 1-5 секунд должен быть достаточно простым.