![Dimensionamento baseado no número de processos em execução na instância ec2](https://rvso.com/image/769286/Dimensionamento%20baseado%20no%20n%C3%BAmero%20de%20processos%20em%20execu%C3%A7%C3%A3o%20na%20inst%C3%A2ncia%20ec2.png)
Tenho um caso de uso em que vários scripts python serão executados em paralelo no ec2. Eles leem uma fila SQS e executam operações como download do S3, análise de arquivos, divisão, processamento e atualização de banco de dados. Os scripts são executados a cada 5 minutos. Se o SQS estiver vazio, o script não faz nada e sai. Se o SQS tiver mensagem, ela será processada pelo script que pode ser executado por mais de uma hora. Portanto, as durações das execuções variam.
No escalonamento automático, vejo que há uma opção de escalar com base na utilização média da CPU, mas a aleatoriedade com que a CPU é utilizada não o torna um bom indicador de quando escalar (por exemplo, o script python consumirá mais CPU ao executar operações de io de disco. Mas outras vezes é preciso memória, mas não há CPU)
Existe uma maneira de escalar com base no número de processos python em execução na instância ec2? Para que quando o número de invocações paralelas chegar a 10, as instâncias aumentem?
Além disso, existe uma maneira de especificar que a redução deveNÃOaconteceria para uma instância ec2 se ela tivesse pelo menos um processo python em execução dentro dela (mesmo que esse processo estivesse consumindo <5% da CPU), porque a redução de escala encerraria um processo em andamento e seria melhor se a redução de escala pudesse acontecer após a conclusão do processo python
Não há balanceador de carga na imagem.