У меня есть программа NodeJS, в которой есть 50 рабочих, готовых обрабатывать запросы. Скрипт поддерживает подключения к службе, которая распределяет запросы.
Я хочу автоматически масштабировать этот скрипт, чтобы, когда 45 рабочих заняты (я могу определить это программно), ЦП был на 70% или достигнут какой-то сетевой показатель, новый экземпляр скрипта запускался в новом экземпляре EC2, поэтому будет теперь будет 100 рабочих.
Как лучше всего сделать это на AWS? Мне просто нужен толчок в правильном направлении. Стоит ли использовать эластичный бобовый стебель?
Мне не нужен балансировщик нагрузки, потому что рабочие поддерживают соединения. Соединения никогда не инициируются запросом.
В разделе EC2 есть функция Auto-Scale, которая сделает именно то, что вы ищете. Вы создадите конфигурацию запуска, в которой подробно описывается, какой AMI использовать, какой тип экземпляра, хранилище, теги, сценарии запуска и т. Д. Затем вы присоедините это к политике Auto Scale, которая определяет, сколько экземпляров должно быть запущено в минимум, когда увеличивать, когда уменьшать и т. д.
Вы также можете добиться этого с помощью Elastic Beanstalk. Разница в том, что Elastic Beanstalk настраивает все для вас (серверы, vpc, подсети, группы безопасности, балансировщик нагрузки, автоматическое масштабирование и т. Д.), А вы просто предоставляете ему код своего проекта. Это быстро и просто, но если вы сделаете это вручную, вы получите все необходимое.