View a markdown version of this page

Back-end - Teste de carga distribuído na AWS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Back-end

O back-end consiste em um pipeline de imagem de contêiner e um mecanismo de teste de carga que você usa para gerar carga para os testes. Você interage com o back-end por meio do front-end. Além disso, as tarefas do Amazon ECS no AWS Fargate lançadas para cada teste são marcadas com um identificador de teste (ID) exclusivo. Essas etiquetas de identificação de teste podem ser usadas para ajudá-lo a monitorar os custos dessa solução. Para obter informações adicionais, consulte as tags de alocação de User-Defined custos no Guia do usuário do AWS Billing and Cost Management.

Pipeline de imagens de containers

Essa solução usa uma imagem de contêiner criada com o Amazon Linux 2023 como imagem base com a estrutura de teste de carga Taurus instalada. O Taurus é uma estrutura de automação de testes de código aberto que suporta JMeter, K6, Locust e outras ferramentas de teste. A AWS hospeda essa imagem em um repositório público do Amazon Elastic Container Registry (Amazon ECR). A solução usa essa imagem para executar tarefas no Amazon ECS no cluster AWS Fargate.

Para obter mais informações, consulte a seção Personalização da imagem do contêiner deste guia.

Testando o provisionamento da estrutura

As três estruturas de teste suportadas são provisionadas em diferentes pontos do ciclo de vida da solução para equilibrar o tamanho da imagem com a flexibilidade da versão:

  • Apache JMeter — Armazenado em um bucket do S3 em sua conta durante a implantação da pilha e extraído no tempo de execução do teste quando um teste do JMeter ou do Single HTTP Endpoint é executado.

  • Grafana K6 — Baixado diretamente do provedor da estrutura e extraído no tempo de execução do teste, somente quando um teste K6 é executado.

  • Locust — Instalado na imagem do contêiner no momento da compilação e permanece inativo até a execução de um teste do Locust.

nota

O K6 requer acesso à rede de saída para a versão K6 da Grafana no tempo de execução do teste. A saída restrita fará com que os testes K6 falhem na etapa de download.

Testando a infraestrutura

Além do CloudFormation modelo principal, a solução fornece um modelo regional para lançar os recursos necessários para a execução de testes em várias regiões. A solução armazena esse modelo no Amazon S3 e fornece um link para ele no console web. Cada pilha regional inclui uma VPC, um cluster AWS Fargate e uma função Lambda para processar dados ativos.

Para obter mais informações sobre como implantar a infraestrutura de teste em regiões adicionais, consulte a seção de Multi-Region implantação deste guia.

Motor de teste de carga

A solução Distributed Load Testing usa o Amazon Elastic Container Service (Amazon ECS) e o AWS Fargate para simular milhares de usuários simultâneos em várias regiões, gerando solicitações HTTP a uma taxa sustentada.

Você define os parâmetros de teste usando o console web incluído. A solução usa esses parâmetros para gerar um cenário de teste JSON e armazená-lo no Amazon S3. Para obter mais informações sobre scripts de teste e parâmetros de teste, consulte Tipos de teste nesta seção.

Uma máquina de estado do AWS Step Functions executa e monitora tarefas do Amazon ECS em um cluster do AWS Fargate. A máquina de estado do AWS Step Functions inclui uma função AWS Lambda, uma função AWS Lambda de verificação de status de tarefas, uma função AWS Lambda de execução de tarefas, uma função AWS Lambda de execução de tarefas, uma função AWS Lambda canceladora de tarefas e uma função AWS Lambda de análise de resultados. Para obter mais informações sobre o fluxo de trabalho, consulte a seção Testar fluxo de trabalho deste guia. Para obter mais informações sobre os resultados do teste, consulte a seção Resultados do teste deste guia. Para obter mais informações sobre o fluxo de trabalho de cancelamento de teste, consulte a seção Fluxo de trabalho de cancelamento de teste deste guia.

Se você selecionar dados ativos, a solução iniciará uma função Lambda do editor de dados em tempo real em cada região por meio dos CloudWatch registros que correspondem às tarefas do Fargate nessa região. Em seguida, a solução processa e publica os dados em um tópico no AWS IoT Core na região em que você lançou a pilha principal. Para obter mais informações, consulte a seção Dados ativos deste guia.