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

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

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

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

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

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

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

решение1

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

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

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

решение2

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

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

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

Связанный контент