0

Справочная информация. Приложение My Java 7 Elastic Beanstalk работает нормально. Обычно он использует только один экземпляр, но если загрузка ЦП достигает 70%, он запускает еще один, закрывая его, если он опускается ниже 20%, максимальное количество разрешенных экземпляров равно двум. Там может быть довольно широкий спектр использования, поэтому он имеет финансовое значение для начала с одним и просто доходит до двух, когда это необходимо. Единственная проблема заключалась в том, что при развертывании он должен загрузить файл индекса 5 ГБ с S3 и разархивировать его, это означает, что общее время развертывания составляет тридцать минут. Но я думаю, что AWS знает приложение все еще развертывания и не отправлять запросы к ним, пока должным образом не развернуто, я следующий ebextension настроенЗнает ли новый AWS HealthCheck при развертывании приложения Java

option_settings: 
    - namespace: aws:elasticbeanstalk:command 
     option_name: Timeout 
     value: 1800 

Недавно Ive развернула новую версию приложения, и я замечаю AWS имеет новый мониторинг работоспособности, который контролирует HttpCodes. Я думаю, что он возвращает ошибки, когда новый экземпляр приложения все еще находится в процессе развертывания и вызывает

У экземпляра произошел сбой по меньшей мере нездорового значения количества проверок работоспособности.

поэтому мой сервер выходит из строя, но я не уверен, может ли HealthCheck вызвать проблему, как это проверить?

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

ответ

0

Новая проверка здоровья AWS Elastic Beanstalk, формально называемая «улучшенной» проверкой работоспособности, собирает данные из разных источников и предоставляет вам состояние здоровья и цвет, а также причины для назначенного здоровья для окружающей среды и всех экземпляров. Источники включают данные из экземпляров EC2, проверку работоспособности ELB, показатели облачности для ELB, SQS и т. Д.

Если вы видите, что «Экземпляр завершился неудачно, по крайней мере, нездоровый порог числа проверок работоспособности». в причинах, то это означает, что экземпляр не выполняет проверку работоспособности балансировки нагрузки. Возможные причины для этого сообщения, поступающего от ELB, задокументированы here. Для уточнения ELB не будет отправлять трафик на ваш экземпляр, если проверка работоспособности балансировки нагрузки не выполняется. Это поведение балансировки нагрузки, независимо от того, используете ли вы усовершенствованную систему отчетов о состоянии здоровья. Усовершенствованное здоровье просто выравнивает эту информацию от ELB в причинах/событиях здоровья beanstalk. Если у вас есть один экземпляр в вашей среде, и для развертывания требуется 30 минут, возможно, что во время развертывания ваша среда не будет обслуживать какой-либо трафик.

Можете ли вы предоставить конфигурацию проверки работоспособности вашего балансировочного устройства? Вы можете найти проверку работоспособности на панели балансировки нагрузки на странице конфигурации beanstalk, как показано на рисунке here.

Если у вас есть надежный URL проверки работоспособности в вашем приложении, чтобы уведомить ELB о том, что ваш экземпляр готов обслуживать трафик, вы должны использовать его для проверки работоспособности вместо проверки по умолчанию TCP: 80. Вы также можете узнать, получают ли ваши экземпляры трафик во время развертывания или нет, просмотрев панель «Здоровье» на консоли управления AWS.

Но, чтобы повторить, если у вас есть только один экземпляр и развертывание занимает много времени, то в течение этого периода ваша среда будет недоступна для трафика клиента. Это может быть хорошо для некоторых случаев. Если нет, рекомендуется использовать как минимум 2 экземпляра и развертывание развертывания (с точки зрения работоспособности или времени) с размером партии < количество экземпляров.

Даже если у вас есть более быстрый экземпляр, который занимает 5 минут, чтобы загрузить большой файл с S3 и обработать его, то за эти 5 минут ваш экземпляр не сможет обслуживать трафик клиента, если проверка работоспособности вашего балансировочного устройства не проходит.

Загружает файл 5 ГБ в качестве необходимого условия для запуска приложения? Вам необходимо загрузить этот файл как часть развертывания вашего приложения, или вы также можете сделать это как часть фонового потока в вашем приложении? Если не важно загружать файл во время обновления, вы можете иметь очень быстрое развертывание, и ваш экземпляр будет готов обслуживать трафик мгновенно.

Сообщение «Instance потерпело неудачу, по крайней мере, нездоровое количество проверок работоспособности». просто говорит вам, что ELB считает, что ваш экземпляр нездоровый (на основе вашей конфигурации проверки работоспособности) и, следовательно, не получает никакого трафика.

Когда вы говорите «так что мой сервер выходит из строя», вы имеете в виду, что здоровье окружающей среды - это что-то вроде Severe/Red? Если это так, то да с одним экземпляром за балансировщиком нагрузки и развертыванием, занимающим более 30 минут, ожидается, что экземпляр не будет работоспособным в соответствии с балансировщиком нагрузки во время развертывания. Опять же, если вы считаете, что ваш экземпляр может обслуживать трафик еще до завершения развертывания (длинный опрос - это загрузка с S3), вам следует рассмотреть возможность переноса загрузки с S3 на фоновый поток, чтобы ваше приложение было нездоровым для более короткой продолжительности и время простоя минимизировано.

Сообщите мне, если вам нужны дополнительные разъяснения.

+0

5GB файл является поисковым индексом lucene, который выполняется до тех пор, пока он не был загружен и не распакован, приложение не может ничего сделать полезное - я не могу это сделать. Это не проблема для первоначального развертывания, так как я использую синий/зеленый механизм, поэтому я не создаю новое развертывание до тех пор, пока оно не будет правильно развернуто, пока этот пользователь не получит доступ к развертыванию в режиме реального времени. Моя проблема в том, что в то время как использование процессора обычно составляет лишь около 20%, он может увеличиться до 60%, вызвав дополнительный экземпляр, кажется, что это не работает должным образом, теперь возвращая ошибки до завершения развертывания. –

+0

Вы можете приостановить процессы автоматического масштабирования в своей среде во время развертывания. Проверьте руководство по автомасштабированию. –