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á.
Considerações sobre design
Esta seção descreve decisões de projeto e opções de configuração importantes para a solução Distributed Load Testing on AWS, incluindo aplicativos compatíveis, tipos de teste, opções de agendamento e considerações de implantação.
Aplicações compatíveis
Essa solução oferece suporte ao teste de aplicativos baseados em nuvem e aplicativos locais, desde que você tenha conectividade de rede da sua conta da AWS com seu aplicativo. A solução oferece suporte a APIs que usam protocolos HTTP ou HTTPS.
Tipos de teste
O teste de carga distribuído na AWS oferece suporte a vários tipos de teste: testes simples de endpoint HTTP, JMeter, K6 e Locust.
nota
A solução distribui JMeter, K6 e Locust como componentes de terceiros sem modificação. Para considerações de segurança, opções de patches e informações sobre licenças, consulte estruturas de Third-party teste.
Testes simples de endpoint HTTP
O console web fornece uma interface de configuração de endpoint HTTP que permite testar qualquer endpoint HTTP ou HTTPS sem escrever scripts personalizados. Você define o URL do endpoint, seleciona o método HTTP (GET, POST, PUT, DELETE etc.) em um menu suspenso e, opcionalmente, adiciona cabeçalhos e cargas de corpo de solicitação personalizados. Essa configuração permite testar APIs com tokens de autorização personalizados, tipos de conteúdo ou quaisquer outros cabeçalhos HTTP e corpos de solicitação exigidos pelo seu aplicativo.
Quando você configura um endpoint HTTP, a solução converte sua configuração em um plano de teste que é executado pelo binário Apache JMeter incluído por meio da estrutura Taurus. Os testes simples do HTTP Endpoint não aceitam um arquivo de teste, portanto, não podem substituir o binário ou os plug-ins do JMeter incluídos. Se você precisar executar testes de endpoint HTTP com um JMeter corrigido, use o tipo de teste JMeter em vez disso. Para considerações de segurança, consulte Apache JMeter.
Testes JMeter
Ao criar um cenário de teste usando o console web, você pode carregar um script de teste do JMeter. A solução carrega o script no bucket S3 dos cenários. Quando as tarefas do Amazon ECS são executadas, elas baixam o script JMeter do S3 e executam o teste.
Importante
Embora seu script JMeter possa definir simultaneidade (usuários virtuais), taxas de transação (TPS), tempos de aceleração e outros parâmetros de carga, a solução substituirá essas configurações pelos valores especificados na tela Traffic Shape durante a criação do teste. A configuração do Traffic Shape controla a contagem de tarefas, a simultaneidade (usuários virtuais por tarefa), a duração do aumento e a duração da espera para a execução do teste.
Se você tiver arquivos de entrada do JMeter, poderá compactar os arquivos de entrada junto com o script do JMeter. Você pode escolher o arquivo zip ao criar um cenário de teste.
Se você quiser incluir plug-ins, todos os arquivos.jar incluídos em um subdiretório /plugins no arquivo zip incluído serão copiados para o diretório de extensões do JMeter e estarão disponíveis para teste de carga.
nota
Se você incluir arquivos de entrada do JMeter no arquivo de script do JMeter, deverá incluir o caminho relativo dos arquivos de entrada no arquivo de script do JMeter. Além disso, os arquivos de entrada devem estar no caminho relativo. Por exemplo, quando os arquivos de entrada e o arquivo de script do JMeter estão no home/user diretório/e você faz referência aos arquivos de entrada no arquivo de script do JMeter, o caminho dos arquivos de entrada deve ser. /ARQUIVOS_DE_ENTRADA. Se você usar/home/user/INPUT_FILES em vez disso, o teste falhará porque não conseguirá encontrar os arquivos de entrada.
Se você incluir plug-ins do JMeter, os arquivos.jar deverão ser agrupados em um subdiretório chamado /plugins na raiz do arquivo zip. Em relação à raiz do arquivo zip, o caminho para os arquivos jar deve ser. /plugins/BUNDLED_PLUGIN.jar.
Para obter mais informações sobre como usar scripts do JMeter, consulte o Manual do usuário do JMeter
Testes K6
A solução oferece suporte a testes baseados na estrutura K6. Você pode carregar o arquivo de teste K6 junto com todos os arquivos de entrada necessários em um arquivo de arquivamento. O console web exibe uma mensagem de confirmação de licença quando você cria um novo teste K6; para obter detalhes de licença e segurança, consulte Grafana K6.
Importante
Embora seu script K6 possa definir simultaneidade (usuários virtuais), estágios, limites e outros parâmetros de carga, a solução substituirá essas configurações pelos valores especificados na tela Traffic Shape durante a criação do teste. A configuração do Traffic Shape controla a contagem de tarefas, a simultaneidade (usuários virtuais por tarefa), a duração do aumento e a duração da espera para a execução do teste.
testes de gafanhotos
A solução oferece suporte a testes baseados na estrutura Locust. Você pode carregar o arquivo de teste do Locust junto com todos os arquivos de entrada necessários em um arquivo compactado.
Importante
Embora seu script Locust possa definir simultaneidade (contagem de usuários), taxa de geração e outros parâmetros de carga, a solução substituirá essas configurações pelos valores que você especificar na tela do Traffic Shape durante a criação do teste. A configuração do Traffic Shape controla a contagem de tarefas, a simultaneidade (usuários virtuais por tarefa), a duração do aumento e a duração da espera para a execução do teste.
Agendamento de testes
A solução fornece três opções de tempo de execução para executar testes de carga:
-
Executar agora - Execute o teste de carga imediatamente após a criação
-
Executar uma vez - Execute o teste em uma data e hora específicas no futuro
-
Executar em um cronograma - Crie testes recorrentes usando expressões cron para definir o cronograma
Ao selecionar Executar uma vez, você especifica o tempo de execução no formato de 24 horas e a data de execução em que o teste de carga deve começar a ser executado.
Ao selecionar Executar em uma programação, você pode inserir manualmente uma expressão cron ou selecionar padrões cron comuns (como a cada hora, diariamente em um horário específico, dias da semana ou mensalmente). A expressão cron usa um formato de agendamento refinado com campos para minutos, horas, dia do mês, mês, dia da semana e ano. Você também deve especificar uma data de expiração, que define quando o teste agendado deve parar de ser executado. Para obter mais informações sobre como o agendamento funciona, consulte a seção Fluxo de trabalho de agendamento de testes deste guia.
nota
-
Duração do teste: considere a duração total dos testes ao agendar. Por exemplo, um teste com tempo de aceleração de 10 minutos e tempo de espera de 40 minutos levará aproximadamente 80 minutos para ser concluído.
-
Intervalo mínimo: garanta que o intervalo entre os testes programados seja maior do que a duração estimada do teste. Por exemplo, se o teste levar cerca de 80 minutos, programe-o para ser executado no máximo a cada 3 horas.
-
Limitação horária: o sistema não permite que os testes sejam agendados com apenas uma hora de diferença, mesmo que a duração estimada do teste seja inferior a uma hora.
Testes simultâneos
Essa solução cria um CloudWatch painel da Amazon para cada teste que exibe a saída combinada de todas as tarefas executadas no cluster do Amazon ECS em tempo real. O CloudWatch painel mostra o tempo médio de resposta, o número de usuários simultâneos, o número de solicitações bem-sucedidas e o número de solicitações malsucedidas. A solução agrega cada métrica por segundo e atualiza o painel a cada minuto.
Gerenciamento de usuários
Durante a configuração inicial, você fornece um nome de usuário e endereço de e-mail que o Amazon Cognito usa para conceder acesso ao console web da solução. O console não fornece administração de usuários. Para adicionar mais usuários, você deve usar o console do Amazon Cognito. Para obter mais informações, consulte Gerenciamento de usuários em grupos de usuários no Guia do desenvolvedor do Amazon Cognito.
Para migrar usuários existentes para grupos de usuários do Amazon Cognito, consulte o blog da AWS Abordagens para migrar usuários para grupos de usuários do Amazon Cognito
Federação do provedor de identidade
O grupo de usuários do Amazon Cognito da solução oferece suporte à federação com provedores de identidade externos (IdPs) usando os protocolos SAML 2.0 ou OpenID Connect (OIDC). A federação permite que os usuários entrem no console web usando suas credenciais corporativas ou organizacionais existentes em vez de Cognito-native credenciais. Os usuários federados recebem as mesmas permissões de acesso que os usuários criados diretamente no grupo de usuários do Cognito.
A solução já implanta o pool de usuários, o domínio, o cliente do aplicativo e a interface de usuário hospedada do Cognito. Para habilitar a federação, você só precisa registrar seu provedor de identidade e habilitá-lo no cliente de aplicativo existente.
Se você implantar a integração opcional do MCP Server, os usuários federados também poderão acessar o MCP Server usando as mesmas credenciais do grupo de usuários do Cognito.
Pré-requisitos
Antes de configurar a federação, você precisa do seguinte:
-
Um provedor de identidade externo compatível com SAML 2.0 ou OIDC
-
Acesso de administrador para configurar o IdP externo (para definir URIs de redirecionamento ou URLs ACS)
-
O ID do grupo de usuários do Cognito da solução (disponível nos recursos da CloudFormation pilha ou no console do Amazon Cognito)
-
O prefixo de domínio Cognito da solução (disponível nas saídas da CloudFormation pilha ou no console do Cognito em Integração de aplicativos > Domínio)
Etapa 1: configurar seu provedor de identidade
Configure seu provedor de identidade externo com os valores a seguir para que ele possa se comunicar com o grupo de usuários do Cognito da solução.
Para provedores de identidade SAML:
-
ID da entidade SP:
urn:amazon:cognito:sp:_<UserPoolId>_ -
URL DO ACS:
\https://<cognito-domain>.auth.<region>.amazoncognito.com/saml2/idpresponse
Para provedores de identidade OIDC:
-
URI de redirecionamento:
\https://<cognito-domain>.auth.<region>.amazoncognito.com/oauth2/idpresponse
Para obter detalhes sobre o que seu IdP precisa, consulte Adicionar provedores de identidade SAML a um grupo de usuários ou Adicionar provedores de identidade OIDC a um grupo de usuários no Guia do Desenvolvedor do Amazon Cognito.
Etapa 2: registrar o provedor de identidade no Cognito
Adicione seu provedor de identidade externo ao grupo de usuários do Cognito existente da solução usando o console do Amazon Cognito.
Para obter instruções passo a passo, consulte Adicionar login ao grupo de usuários por meio de terceiros no Guia do Desenvolvedor do Amazon Cognito.
Etapa 3: Configurar mapeamentos de atributos
Configure mapeamentos de atributos entre as declarações do seu provedor de identidade e os atributos do grupo de usuários do Cognito. No mínimo, mapeie a declaração de e-mail do usuário do provedor externo para o atributo Cognitoemail. Considere também o mapeamento name ou nickname se seu provedor de identidade os fornece.
Para obter instruções, consulte Especificação de mapeamentos de atributos do provedor de identidade para seu grupo de usuários no Guia do Desenvolvedor do Amazon Cognito.
Etapa 4: ativar o provedor de identidade no cliente do aplicativo
No console do Amazon Cognito, encontre o cliente do aplicativo criado pela solução e habilite seu novo provedor de identidade nas configurações da interface de usuário hospedada.
Para obter instruções, consulte Configuração de um cliente de aplicativo de grupo de usuários no Guia do Desenvolvedor do Amazon Cognito.
nota
A solução já configura os URLs de retorno e saída de chamada do cliente do aplicativo, os escopos do OAuth e o domínio de interface de usuário hospedado. Você não precisa modificar essas configurações — habilite apenas seu provedor de identidade no cliente de aplicativo existente.
Importante
A solução omite intencionalmente a SupportedIdentityProviders propriedade da configuração do cliente do CloudFormation aplicativo. Isso permite que você adicione provedores de identidade após a implantação sem acionar a detecção de desvios. CloudFormation Se essa propriedade fosse definida no modelo, qualquer alteração manual do IdP por meio do console ou da CLI seria substituída na próxima atualização da pilha, revertendo o cliente do aplicativo somente para os provedores listados no modelo.
Como essa propriedade é omitida, não CloudFormation rastreia nem gerencia quais provedores de identidade estão habilitados no cliente do aplicativo. Depois de configurar a federação, você é responsável por gerenciar o conteúdo SupportedIdentityProviders do cliente do aplicativo. Para monitorar alterações não autorizadas, habilite o CloudTrail registro na AWS e crie EventBridge regras da Amazon para alertar sobre CreateIdentityProvider chamadas de UpdateUserPoolClient API direcionadas ao grupo de usuários do Cognito da solução.
nota
-
Adicionar um provedor de identidade externo não remove a capacidade de Cognito-native os usuários existentes entrarem com suas credenciais atuais.
-
Os usuários federados estão sujeitos às mesmas restrições de disponibilidade regional do grupo de usuários do Cognito. Para obter mais informações, consulte Implantação regional.
-
Teste o login federado com um pequeno grupo de usuários antes de implementá-lo em sua organização.
Desabilitando ou excluindo o usuário padrão do Cognito
Depois de configurar a federação, talvez você queira desativar ou excluir o usuário padrão que foi criado durante a implantação da pilha. Isso é opcional — o usuário padrão continua trabalhando junto com o login federado.
Para desativar um usuário, navegue até o grupo de usuários do Cognito da solução no console do Amazon Cognito
Para obter mais detalhes, consulte Gerenciamento e pesquisa de contas de usuário no Guia do Desenvolvedor do Amazon Cognito.
Implantação regional
Essa solução usa o Amazon Cognito, que está disponível somente em regiões específicas da AWS. Portanto, você deve implantar essa solução em uma região onde o Amazon Cognito esteja disponível. Para obter a disponibilidade de serviços mais atual por região, consulte a Lista de serviços regionais da AWS