Мы создаем масштабируемую облачную службу websocket, работающую в Amazon. Я ищу лучшую стратегию автомасштабирования и балансировки нагрузки для использования с нашими экземплярами API websocket.Лучше AWS автомасштабирование и стратегия балансировки нагрузки для приложений для веб-приложений
В настоящее время наша политика автомасштабирования просто основана на использовании ЦП, например, «когда средний процессор> 80% - запускает больше экземпляров, когда CPU < 30% - остынь», но я чувствую, что этого недостаточно. Поскольку соединения с веб-сайтами являются долгоживущими, добавление большей емкости, очевидно, не поможет текущим экземплярам, которые уже перегружены. В идеале, я хотел бы иметь некоторую метрику, такую как «среднее количество TCP-соединений» в дополнение к использованию процессора для автомасштабирования, а также возможность переноса соединений из перегруженных экземпляров в новые. Под «передачами соединений» я не имею в виду сохранение какого-либо состояния, но просто отбрасывание некоторых из перегруженных экземпляров и предоставление клиентам возможности устанавливать новые в новые экземпляры, равномерно распределяя соединения по всем узлам.
Может ли кто-нибудь поделиться опытом или предложить хорошее чтение о лучших практиках для запуска масштабируемых приложений веб-приложений в AWS?
Какой замечательный вопрос! Прошло некоторое время с тех пор, как вы отправили сообщение, и, поскольку никто не ответил, вы теперь являетесь лидером отрасли :-) Было бы здорово поделиться с вами своим опытом. – user924272