Развертывание AWS WebApp Blue / Green без прерывания сеансов - PullRequest
0 голосов
/ 11 октября 2018

Мой вариант использования: у меня есть веб-приложение, обслуживаемое Elastic Load Balancer, которое находится перед 1 экземпляром EC2.Архитектура нацелена на симуляцию потока развертывания Blue / Green. Это означает, что я включу второй экземпляр, когда мне нужно будет обновить код и переключить тот, на который указывает мой ELB.

Давайте предположим, что Instance-A имеетВ текущей версии моего приложения мой ELB направляет трафик к этому экземпляру, поскольку он является единственным доступным.Я хочу отправить обновления в мое приложение, поэтому я развернул новую версию своего приложения на Instance-B (включите экземпляр B и разверните новую версию кода).Тем временем любой пользователь, посещающий мое приложение, все равно будет перенаправлен в Instance-A и будет создан сеанс, пока я не выполню переключение.

Как только Instance-B развернут и доступен с более новым кодомКак я могу убедиться, что ELB будет отправлять новый трафик только на Instance-B и сохранять старый трафик (предыдущие пользователи и их сеанс) на instanceA до тех пор, пока я не отменим регистрацию последнего в балансировщике нагрузки?

Надеюсь, это имеет смысл, я знаю, что эта архитектура не является правильной реализацией развертывания Blue / Green.Но из-за размера моего приложения и бюджета я бы хотел ограничить количество используемых мной экземпляров.

Спасибо за помощь.

1 Ответ

0 голосов
/ 12 октября 2018

Хорошо, если вы используете классический ELB, вам нужно создать политику привязки для ELB, вы можете найти подробные инструкции здесь https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-sticky-sessions.html

Если вы используете ALB или балансировщики нагрузки приложений, то же самое, нов политике закрепления над целевой группой https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html#sticky-sessions

Если вы хотите улучшить свою сине-зеленую стратегию развертывания, было бы лучше использовать Route53 для переключения, а стоимость очень низкая

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

...