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

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

Я хочу, чтобы инстансы EC2 автоматически завершались через 24 часа.

Я делаю это с помощью скрипта, который выполняется при запуске экземпляра:

shutdown | at now + 24 hours

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

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

В документы сказать:

Когда экземпляр EC2 завершается с помощью команды terminate-instance, на уровне ОС регистрируется следующее:

  • Запрос API отправит гостю событие нажатия кнопки.

  • В результате нажатия кнопки будут остановлены различные системные службы. systemd выполняет плавное завершение работы системы. Плавное завершение работы запускается событием нажатия кнопки выключения ACPI из гипервизора.

  • Будет инициировано отключение ACPI.
  • Экземпляр будет отключен, когда завершится процесс постепенного завершения работы. Настраиваемого времени выключения ОС нет.

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

Используйте api detach-instance, чтобы удалить экземпляр из группы автомасштабирования за 1-2 минуты до завершения работы. Api detach-instance также удалит экземпляр из подсистемы балансировки нагрузки, если он подключен, см. https://docs.aws.amazon.com/en_pv/autoscaling/ec2/userguide/detach-instance-asg.html Чтобы получить больше информации.

Пример:

aws autoscaling detach-instance --instance-id i-05b4f7d5be44822a6 \ --auto-scaling-group-name my-asg --should-декремент-желаемая-емкость

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

Так что да, завершение работы выключением менее упорядочено, чем отключение от ASG.