У меня есть вариант использования, когда несколько скриптов Python будут работать параллельно на ec2.
Они читают очередь SQS и выполняют такие операции, как загрузка из S3, анализ файлов, разделение, обработка и обновление базы данных.
Скрипты запускаются каждые 5 минут. Если SQS пуст, скрипт ничего не делает и завершает работу. Если у SQS есть сообщение, оно обрабатывается сценарием, который может выполняться более часа. Так что продолжительность пробега разная.
В автоматическом масштабировании я вижу, что есть возможность масштабирования на основе среднего использования ЦП, но случайность, с которой используется ЦП, делает его не очень хорошим индикатором, когда масштабировать (например, скрипт Python будет потреблять больше ЦП при выполнении операций ввода-вывода на диске. Но в других случаях требует памяти, но не процессора)
Есть ли способ масштабирования в зависимости от количества процессов python, запущенных в экземпляре ec2?
Так что, когда количество параллельных вызовов достигает 10, количество экземпляров увеличивается?
Кроме того, есть ли способ указать, что масштабирование должно НЕТ произойдет для экземпляра ec2, если в нем запущен хотя бы один процесс python (даже если этот процесс занимает <5% ЦП), потому что уменьшение масштаба завершит текущий процесс, и было бы лучше, если бы масштабирование могло произойти после завершения процесса python
На картинке нет балансировщика нагрузки.