Visão geral

O teste de carga distribuída na AWS automatiza os testes de desempenho em grande escala, mostrando como suas aplicações se comportarão sob diferentes condições de carga e identificando possíveis problemas de desempenho em todo o ciclo de vida de suas aplicações (incluindo desenvolvimento, preparação, produção e pós-produção). Essa solução da AWS simula usuários e transações que variam de centenas a milhões, gerando transações consistentes sem a necessidade de provisionamento de usuários ou servidores.
A solução fornece insights sobre áreas cruciais, como a escalabilidade e a confiabilidade das instâncias do Amazon Elastic Compute Cloud (Amazon E2), do Amazon Elastic Container Service (Amazon ECS) ou do Amazon Elastic Kubernetes Service (Amazon EKS), os tempos de inicialização a frio e de execução das funções do AWS Lambda, o desempenho de consultas ao banco de dados do Amazon Relational Database Service (Amazon RDS) e os tempos de resposta do Amazon CloudFront. Ao simular cenários de carga realistas, você pode otimizar sua infraestrutura para maior desempenho e economia.
Benefícios

Dimensione corretamente sua infraestrutura obtendo informações precisas sobre o desempenho de suas aplicações sob diferentes condições de carga, resultando em uma alocação de recursos econômica.
Automatize seus testes de carga agendando-os ou incorporando essa solução em seu pipeline de integração contínua e entrega contínua (CI/CD), simplificando seu processo de testes.
Simule o tráfego real de várias regiões da AWS para avaliar como sua aplicação se comporta sob diversas cargas geográficas, otimizando o desempenho global.
Projete e integre perfeitamente o teste de carga distribuída com os scripts do JMeter, permitindo que você personalize os testes para as necessidades exclusivas de sua aplicação.
Detalhes técnicos

É possível implantar automaticamente essa arquitetura ao usar o guia de implementação e o modelo do AWS CloudFormation.
Etapa 1
Uma API do Amazon API Gateway invoca os microsserviços da solução (funções do AWS Lambda).
Etapa 2
Os microsserviços fornecem a lógica de negócios para gerenciar dados de teste e executar os testes.
Etapa 3
Esses microsserviços interagem com o Amazon Simple Storage Service (Amazon S3), o Amazon DynamoDB e o AWS Step Functions para executar cenários de teste, fornecer o armazenamento para os detalhes desse cenário de teste.
Etapa 4
Uma topologia de rede do Amazon Virtual Private Cloud (Amazon VPC) contém os contêineres Amazon Elastic Container Service (Amazon ECS) da solução em execução no AWS Fargate.
Etapa 5
Os contêineres incluem uma imagem de contêiner compatível com a Open Container Initiative (OCI) de teste de carga da Taurus, usada para gerar a carga para testar a performance da aplicação. A Taurus é uma estrutura de automação de testes de código aberto. A imagem do contêiner é hospedada pela AWS em um repositório público do Amazon Elastic Container Registry (Amazon ECR).
Etapa 6
Um console Web desenvolvido pelo AWS Amplify é implantado em um bucket do S3 configurado para hospedagem estática na Web.
Etapa 7
O Amazon CloudFront fornece acesso seguro público ao conteúdo do bucket do site da solução.
Etapa 8
Durante a configuração inicial, a solução também cria uma função padrão de administrador da solução e envia um convite de acesso para um endereço de e-mail de usuário especificado pelo cliente.
Etapa 9
Um grupo de usuários do Amazon Cognito gerencia o acesso dos usuários ao console e à API do API Gateway.
Etapa 10
Depois de implantar essa solução, você pode usar o console Web para criar um cenário de teste que defina uma série de tarefas.
Etapa 11
Os microsserviços usam esse cenário de teste para executar o Amazon ECS em tarefas do Fargate nas regiões da AWS especificadas.
Etapa 12
Além de armazenar os resultados no Amazon S3 e no DynamoDB, a saída é registrada no Amazon CloudWatch quando o teste é concluído.
Etapa 13
Se você selecionar a opção de dados ativos, a solução enviará os logs do CloudWatch para as tarefas do Fargate para uma função do Lambda durante o teste, para cada região na qual o teste foi executado.
Etapa 14
Em seguida, a função do Lambda publica os dados no tópico correspondente no AWS IoT Core na região em que a pilha principal foi implantada. O console Web se inscreve no tópico e você pode ver os dados enquanto o teste é executado no console Web.
- Data de publicação

“Na Calabrio, nossa missão é ajudar as centrais de atendimento a trabalhar de forma mais inteligente, rápida e melhor. Precisávamos projetar rapidamente um recurso novo e de alto desempenho para um grande cliente. Usamos o teste de carga distribuída na AWS para testar o desempenho do nosso sistema em grande escala, sem a necessidade de licenças de teste corporativas caras ou de escrever código de orquestração personalizado para ferramentas de código aberto. Com essa solução da AWS, projetamos e executamos testes com seis vezes o volume de tráfego esperado e lançamos o novo recurso com sucesso e antes do previsto.”
Conteúdo relacionado

Seja para uma empresa privada ou para um serviço do setor público, você precisa ter certeza de que a aplicação poderá ser escalada com o aumento da carga de usuários. O teste de carga distribuída na AWS permite que você automatize os testes de aplicações, entenda como eles funcionarão em grande escala e corrija os gargalos antes de lançar a aplicação.