Por Erik Miyashita e Thiago Paulino, Arquitetos de Soluções da AWS Brasil
A computação em nuvem trouxe grandes avanços em relação a escalabilidade de APIs (Application Programming Interfaces). No entanto, mesmo com a melhora na eficiência deste processo, seguimos com a necessidade de entender onde existem gargalos de desempenho nas aplicações. Para identificar esses gargalos, uma das melhores ferramentas continua a ser o teste de carga.
Recentemente foi desenvolvida uma solução da AWS para este fim, tornando o processo de configuração de um teste de carga na AWS muito mais fácil. Trata-se de uma arquitetura que utiliza o AWS Fargate e o framework Taurus como injetores de carga.
Antes de executar qualquer teste de carga na AWS, lembre-se de reler a política para testes de carga descrita aqui.
Outro aspecto relevante a se avaliar antes de utilizar a solução são os limites. Conforme a documentação da solução, o por região, enquanto o container concorrentes por task. Portanto o limite máximo para o teste será de 50 x 200 = 10.000 requisições concorrentes.
A solução desenvolvida permite que você realize testes diretamente em um endpoint, sem a necessidade de criação de scripts. No entanto, sabemos que nem sempre o cenário a ser testado é simples, e quase sempre é necessário criar um script em uma ferramenta de testes de carga. Neste blogpost vamos ir um pouco além da solução padrão e utilizaremos o Apache JMeter como ferramenta para a criação dos scripts de teste.
Em alto nível, a solução utiliza o framework de teste Taurus sendo executado pelo AWS Fargate, gerando resultados dentro do S3 e métricas no CloudWatch. A arquitetura da solução pode ser vista abaixo: