Рейтинг:1

AWS Application Load Balancer отключает приложение ASP.NET

флаг ng

У меня есть балансировщик нагрузки приложений AWS, настроенный с EC2 и группой автоматического масштабирования. Экземпляры EC2 работают под управлением веб-сервера Windows+IIS. Веб-сервер подключается к базе данных.

В некоторых ситуациях (раз в 2 месяца) случалось, что проверка работоспособности для ALB начинала определять приложение как неработоспособное и отключать инстансы EC2. Всегда запущено как минимум 2 экземпляра, и это происходит для всех экземпляров одновременно.Я пытаюсь понять, почему это происходит, и я не могу найти какие-либо полезные журналы или указания на то, откуда это происходит.


Посмотрите, как количество экземпляров внезапно падает до нуля 6 декабря:

в экземплярах службы

Увеличение:

в сервисных экземплярах, увеличено

Экземпляры EC2 завершаются как:

причина расторжения

Проверка работоспособности настроена на проверку связи со страницей, которая нет запрашивать базу данных, поэтому узкое место в базе данных не кажется вероятной причиной.

Когда это происходит, время отклика резко возрастает:

время ответа запроса

А также по измерениям NewRelic:

время отклика newrelic

Обратите внимание на несколько вещей:

  • все фазы ответа медленнее (время Redis, время .NET и т. д.)
  • бывает, что все серверы работают в одно и то же время, так что вряд ли проблема внутри сервера
  • это всегда происходило в нерабочее время, когда нагрузка низкая

Конфигурации автоматического масштабирования:

Минимальная вместимость=2
Максимальная вместимость=15
Распределение экземпляров = 50 % по запросу, 50 % спот
Включить базовую емкость по требованию = Назначить первый 1 экземпляр как по требованию.
Стратегия распределения по запросу = приоритетная
Стратегия распределения спотов = Самая низкая цена — диверсификация по 10 пулам с самой низкой ценой
Перебалансировка емкости=Выкл.
Защита экземпляра от масштабирования = Не защищено от масштабирования
Политики прекращения = По умолчанию
Время восстановления по умолчанию = 300

Конфигурации целевой группы:

Протокол=HTTPS
Путь=/путь/к/логину/странице
Порт = Транспортный порт
Порог работоспособности = 2 последовательных успешных проверки работоспособности
Порог неработоспособности = 4 последовательных сбоя проверки работоспособности
Таймаут=20 секунд
Интервал=25 секунд
Коды успеха = 200
Tim avatar
флаг gp
Tim
Может ли это быть чем-то вроде перезагрузки серверов Центром обновления Windows после установки исправлений? Чтобы смягчить это, вы можете увеличить порог неработоспособности, чтобы дать экземплярам больше времени для восстановления. Интересно, можете ли вы изменить время обновления Windows, чтобы один экземпляр оставался работоспособным. Для дальнейшей диагностики было бы проще всего каким-то образом «поместить в карантин» серверы, которые не проходят проверку работоспособности, для проверки вручную. Отправка журналов сервера в журналы Cloudwatch может помочь, если журналы отправляются быстро.
флаг ng
Спасибо. Как мне это сделать? Это случается не часто, и когда это происходит, экземпляры немедленно прекращаются, как только они становятся неработоспособными.
Tim avatar
флаг gp
Tim
Я не знаю, как это сделать, мне нужно провести некоторое исследование, которое вы можете изучить. Однако первое, что нужно сделать, это изменить свой образ, чтобы как можно быстрее отправлять журналы в журналы Cloudwatch, таким образом, по крайней мере, вы можете видеть, что делает сервер, до того, как проверки работоспособности не пройдут. Я бы нажимал окна и журналы приложений.
флаг cn
Учитывая, что причиной является «выключение, инициированное пользователем», это звучит как обновление Windows или что-то еще. Или какая-то другая запланированная задача — вы работаете в учетной записи, которая является частью организации AWS, в которой могут быть запущены какие-то вещи? У моего последнего работодателя было несколько лямбда-выражений, которые отключали экземпляры на основе тегов...
флаг ng
Нет никаких других запущенных вещей, которые могли бы повлиять на это, насколько я знаю. Центр обновления Windows, возможно, мог бы быть, если бы все экземпляры обновлялись одновременно, но, поскольку некоторые из вновь созданных экземпляров также терпели неудачу (до 30 минут спустя, когда все внезапно начали работать), это кажется очень маловероятным.

Ответить или комментировать

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