Могу ли я сделать снимок неработоспособного экземпляра до того, как группа AWS Autoscale его отключит?

У меня есть трехузловой кластер экземпляров ec2, контролируемых ASG. Когда какой-либо сервер приложений, запущенный на ec2, ведет себя неправильно, проверка работоспособности elb завершается ошибкой, и, следовательно, asg завершает ее и воссоздает новый экземпляр. Таким образом, в некотором смысле моя установка является самовосстанавливающейся, однако я хотел бы больше отлаживать экземпляр, пока это происходит. Я хотел бы получить снимок или ami некорректного экземпляра, чтобы я мог глубже погрузиться в проблему.

Любые предложения, как я могу этого добиться?

Заранее спасибо.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
319
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

DetachInstances

Лучшим методом было бы вызвать detach-instances, который удаляет экземпляр из группы Auto Scaling и при необходимости заменяет его.

Однако запустить эту команду после неудачной проверки работоспособности будет непросто.

Крюк Auto Scaling Lifecycle

Вы можете настроить Перехватчик жизненного цикла автоматического масштабирования Amazon EC2, который будет вызываться до завершения экземпляра. Затем ваша ловушка жизненного цикла может сделать снимок тома. Однако я не уверен, вызывается ли ловушка завершения жизненного цикла при сбое проверки работоспособности (в отличие от случая, когда происходит масштабирование), поэтому для этого потребуется некоторое тестирование.

CloudWatch запускает Lambda

Другой вариант:

  • Настройте нет Auto Scaling для использования проверки работоспособности Load Balancer
  • Если экземпляр не прошел проверку работоспособности ELB, ELB не будет отправлять трафик на этот экземпляр, поэтому ваше приложение все еще в порядке.
  • Используйте тревогу CloudWatch для запуска функции Lambda, когда количество неработоспособных экземпляров, подключенных к ELB, больше нуля
  • Функция Lambda может проверять статусы, чтобы определить, какой экземпляр неисправен, а затем вызывать detach-instances, чтобы удалить его из группы Auto Scaling.
  • Таким образом, у вас есть доступ к нездоровому экземпляру за пределами группы Auto Scaling, даже без необходимости экспериментировать со снимками состояния EBS.

Я изучу крючок жизненного цикла ASG, спасибо за подробный отзыв.

Yogesh Gupta 05.08.2018 12:09

Другие вопросы по теме