Для большинства приложений вы можете использовать AWS ELB (Классические балансировщики нагрузки) с помощью функции «Sticky Sessions».
По умолчаниюКлассический балансировщик нагрузки направляет каждый запрос независимо к зарегистрированному экземпляру с наименьшей нагрузкой.Однако вы можете использовать функцию закрепления сеанса (также называемую привязкой сеанса), которая позволяет балансировщику нагрузки привязывать сеанс пользователя к конкретному экземпляру.Это гарантирует, что все запросы от пользователя во время сеанса отправляются в один и тот же экземпляр.
Ключом к управлению липкими сеансами является определение того, как долго ваш балансировщик нагрузки должен последовательно направлять запрос пользователя в один и тот же экземпляр.
Кроме того, соединения WebSockets по своей природе являются липкими.Если клиент запрашивает обновление соединения до WebSockets, целью, которая возвращает код состояния HTTP 101, чтобы принять обновление соединения, является цель, используемая в соединении WebSockets.После завершения обновления WebSockets прилипание на основе файлов cookie не используется.
Для получения дополнительной информации ознакомьтесь со следующим документом на веб-сайте AWS: https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-sticky-sessions.html
В конце концов, вы можете использовать AWS ALB(Application Load Balancer), ALB поддерживает веб-сокеты.
Просто замените ELB на ALB и включите липкие сеансы.
Балансировщик нагрузки приложений предназначен для обработки потоковой передачи, работы в реальном времени и рабочих нагрузок WebSocket в оптимизированныхмода.Вместо буферизации запросов и ответов он обрабатывает их в потоковом режиме.Это уменьшает задержку и увеличивает воспринимаемую производительность вашего приложения.
Для получения дополнительной информации о AWS ALB прочитайте следующий документ на веб-сайте AWS:
https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html