AWS EC2 Win APP health checking
От: Jericho113 Украина  
Дата: 10.04.20 14:36
Оценка:
День добрый всем,

Появилась такая проблема как health check мониторинг виндовой (.NET /.NET Core ) аппликухи которая ранится на EC2 инстансе.
Что хотелось бы.
В AWS Elastic Beanstalk есть такая настройка как health checking WebApp — просто запрос на80й порт GET /health и если ответ не устраивает то инстанс убивается и поднимается новый.

Вот примерно то же самое хочется но только для виндовой аппликухи которая ранится как консоль или как win service на EC2 что бы если ответ от нее будет unhealthy то EC2 инстанс как то автоматом убивался и autoscale group создавала новый.

Виндовая аппликуха слушает очередь сообщений от RabbitMQ и обрабатывает их соответственно если с ней что то не так — потерян коннект к очереди или сервис стопнулся из за ошибки то healthcheck должен это обнаружить и выслать сообщение что с EC2 инстансом что то не то и его нужно убить и создать новый автоматом.

Есть какие -либо идеи по поводу того как это можно сделать?

Спасибо.
NetDigitally yours ....
aws healtcheck
Re: AWS EC2 Win APP health checking
От: Ночной Смотрящий Россия  
Дата: 11.04.20 18:41
Оценка:
Здравствуйте, Jericho113, Вы писали:

J>Есть какие -либо идеи по поводу того как это можно сделать?


А в чем проблема то? Поднимаешь в своем приложении вебхост, публикуешь в нем эндпоинт стандартных аспнетных хелсчеков.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re: AWS EC2 Win APP health checking
От: VladCore  
Дата: 29.04.20 18:43
Оценка:
Здравствуйте, Jericho113, Вы писали:

J>День добрый всем,


В чем проблема? Сэкономить на цене бинстолка и взять микроинстанс в 5 раз дешевле?

Тогда самому писать скрипт и запускать его у себя 24/7.

Или нужно health check реализовать в консольном .NET Framework приложении?

Тогда юзать MS OWIN для net framework — там из коробки есть Web API и self-hosted http сервер. https://www.nuget.org/packages/Microsoft.Owin/
Отредактировано 29.04.2020 18:59 VladCore . Предыдущая версия .
Re: AWS EC2 Win APP health checking
От: RushDevion Россия  
Дата: 01.05.21 22:57
Оценка:
Я так понимаю, есть 2 вещи, которые нужно сделать:
1. Выставить HTTP /health из win-службы
Если не тащить в приложение лишние зависимости, то
Для классического .NET — есть HttpListener
Для .NET Core — есть TcpListener
Реализовать поверх любого из них HTTP обработчик для единственного endpoint'a — не архисложная задача.

2. Переподнимать инстанс, если /health зарепортил проблему
Если пользуешь ELB с автоскейлингом — у тебя это будет из коробки.
Иначе, проще/дешевле всего будет поднять Lambda с периодическим запуском.
Пусть дергает /health и пересоздает инстанс если что не так.
Re[2]: AWS EC2 Win APP health checking
От: Jericho113 Украина  
Дата: 10.05.21 17:07
Оценка:
Здравствуйте, RushDevion, Вы писали:

RD>Я так понимаю, есть 2 вещи, которые нужно сделать:

....
RD>Реализовать поверх любого из них HTTP обработчик для единственного endpoint'a — не архисложная задача.

Да вы все правильно поняли.
Когда я писал начальное сообщение то не обладал полными знаниями об .net core и то что в воркере можно совместить 2 типа обработчиков воркер + HTTP endpoint для healthcheck.
Сейчас проблема решена..

Просто я больше на full .net FW работал и не знал особенностей .net core
NetDigitally yours ....
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.