EC2 - Как вы скажете ELB, когда машина "готова"
У меня есть автоматическая настройка с мониторингом, и все хорошо. Процесс развертывания кода теперь хорошо под рукой и в основном делает это.
- Создайте новый launch_config, который определяет коммит git для получения
- Обновите группу автомасштабирования с помощью новой конфигурации запуска.
- Увеличьте минимальный размер серверов до ~2x того, что у нас есть.
- Подождите, пока они все появятся в сети
- Уменьшите, и старые будут сбиты.
Проблема, с которой я сталкиваюсь, заключается в том, что, пока мы "ожидаем их появления в сети", они сообщают о "исправности" и "в работе", прежде чем они "готовы" к обслуживанию, поскольку они обновляют пакеты и извлекают соответствующий исходный код., Это время сильно варьируется от 2 минут до> 15 минут на экземпляр EC2.
То, что я ищу, - это способ, которым вы устанавливаете флаг "in service / healtny" вручную, или лучшую стратегию для устранения этой задержки.
Отмечу, что при запуске экземпляра Nginx запускается автоматически. Это то, что определяет, здоров ли экземпляр? Существует так мало документации (которую я могу найти) по этому процессу загрузки до готовности - любая помощь будет оценена.
Это за ELB, если это помогает. Проверка работоспособности включена "/". Интересно, это так просто?
Спасибо
2 ответа
Вы можете легко настроить URI, который будет активен в вашем экземпляре EC2, и настроить проверку работоспособности ELB для его вызова. Пока этот URI проверки работоспособности не вернет код состояния 200, экземпляр не будет активен в ELB для приема трафика.
В большинстве случаев по умолчанию просто запрашивается URI сервера /, но вы можете изменить его на любой, какой пожелаете. В моем случае / произойдет сбой, если настройка веб-приложения для него не готова к трафику. Вы также можете указать на страницу CGI или PHP, которая будет проверять систему и возвращать код состояния 200, когда все будет готово.
Проверка работоспособности Elastic Load Balancer определяет, отправляет ли ELB трафик какому-либо конкретному экземпляру.
То, что вы хотите сделать, очень просто:
Не запускайте веб-сервер на своих экземплярах, пока не завершите их настройку и настройку.