Мы используем ELB для завершения SSL, только с ОДНОЙ серверной частью.
Во время развертывания серверную часть необходимо перезапустить, и обычно загрузка занимает несколько минут.
Мои вопросы:
Вам следует либо сократить, либо значительно увеличить время проверки.
Вы можете установить частоту проверки работоспособности каждые 5 минут, а порог неработоспособности - 10. Это даст вам 50 минут до того, как экземпляр будет считаться недоступным.
Вы также можете установить минимальное значение 0,1 минуты и пороговое значение 2, что позволит обнаружить резервное копирование вашего сервера всего за 12 секунд после того, как URL-адрес проверки работоспособности снова заработает. Это не мешает ELB пометить экземпляр как неисправный, но позволяет ему как можно быстрее вернуться в рабочее состояние.
Я бы выбрал второй вариант, чтобы пользователи получали 503, а не просто сидели и гадали, почему сайт так долго загружается.
Законный способ обойти это - использовать API для изменения тайм-аутов проверки работоспособности ELB. Вы не можете отключить или приостановить его, но вы можете изменить путь ИЛИ время ожидания и интервал.
Если вы используете Ansible, вы можете использовать задачу до и после развертывания.
Вот модули для этого для ELB и ALB (через целевые группы):
https://docs.ansible.com/ansible/latest/modules/ec2_elb_lb_module.html https://docs.ansible.com/ansible/latest/modules/elb_target_group_module.html
Для этого ответа нужны примеры, я дополню их нашими, если мы пойдем по этому пути.
Еще один быстрый способ, изменить порт ping в проверке работоспособности на другой, например, исходный порт - 443, изменить его на любой порт без прослушивания 1234
. это идет к outofservice
быстро.
После того, как вы внесли изменения, подтвердили, не забудьте вернуть их обратно.