Назад | Перейти на главную страницу

При изменении прослушивателя ELB в AWS изящно истощает соединения в ECS?

Моя команда и я пытаемся найти лучший способ реализовать сине-зеленый для AWS ECS, но, похоже, мы не можем окончательно ответить на один вопрос о балансировщиках нагрузки приложений.

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

https://aws.amazon.com/blogs/compute/bluegreen-deployments-with-amazon-ecs/

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

Может ли кто-нибудь пролить свет на то, что на самом деле происходит, когда я изменяю слушателя для ELB?

Вам следует иметь ELB как часть вашего стека, т.е. один ELB для синий стек и один ELB для зеленый стек.

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

Надеюсь, это поможет :)

Документация AWS по балансировщикам нагрузки приложений заявляет, что когда вы отменяете регистрацию цели, ее соединения разряжаются. Что вы можете сделать, так это отменить регистрацию целей в вашей целевой группе, чтобы изящно осушить соединения. Конечно, это не так идеально, как выбор между несколькими целевыми группами.

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

Как заявил другой пользователь в своем ответе, у вас должны быть отдельные ELB в вашем развертывании и просто переключаться между ними в Route53. Таким образом, вы можете легко использовать политики маршрутизации для отправки только части трафика в соответствующую ELB / целевую группу (скажем, 80% на синий, 20% на зеленый).