View a markdown version of this page

Solução de problemas - 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á.

Solução de problemas

A resolução de problemas conhecidos fornece instruções para mitigar erros conhecidos. Se essas instruções não resolverem seu problema, o Contact AWS Support fornece instruções para abrir um caso do AWS Support para essa solução.

Resolução de problemas conhecidos

Problema: você está usando uma VPC existente e seus testes falham com o status Falha, resultando na seguinte mensagem de erro:

Test might have failed to run.

  • Resolução:

Certifique-se de que as sub-redes existam na VPC especificada e que tenham uma rota para a Internet com um gateway da Internet ou um gateway NAT. O AWS Fargate precisa de acesso para extrair a imagem do contêiner do repositório público para executar testes com sucesso.

Problema: os testes estão demorando muito para serem executados ou estão paralisados indefinidamente

  • Resolução:

Cancele o teste e verifique o AWS Fargate para garantir que todas as tarefas tenham sido interrompidas. Se elas não tiverem parado, interrompa manualmente todas as tarefas do Fargate. Verifique os limites de tarefas sob demanda do Fargate em sua conta para garantir que você possa iniciar o número de tarefas desejadas. Você também pode verificar os CloudWatch registros da função de execução de tarefas do Lambda para obter mais informações sobre falhas ao iniciar tarefas do Fargate. Verifique os registros do CloudWatch ECS para obter detalhes sobre o que está acontecendo nos contêineres Fargate em execução.

Problema: os testes estão começando, mas não estão sendo concluídos ou o estado das tarefas do ECS é desconhecido

  • Resolução:

Se você selecionou a opção de fornecer uma VPC existente na conta em que a solução foi implantada, certifique-se de que a VPC usada pelas tarefas do ECS tenha endereços IP livres suficientes para iniciar o número de tarefas fornecidas na entrada de teste. A definição de tarefa do ECS usa a imagem do ECR que precisa de um gateway da Internet ou de uma rota para a Internet para que o serviço do ECS possa provisionar as tarefas baixando a imagem ECR da solução do aws- -load-testing-on-aws-load-tester. solutions/distributed Se você não puder fornecer uma rota para a Internet, pois todas as sub-redes na VPC são privadas, você pode hospedar a imagem ECR em sua conta usando o cache pull through do ECR. Atualize a definição da tarefa com o novo URI da imagem ECR e crie uma nova revisão. Depois que a definição da tarefa é atualizada, a configuração da solução na tabela do DynamoDB precisa ser atualizada para usar a nova revisão. O nome da tabela do DynamoDB pode ser encontrado na guia de saídas CloudFormation da pilha abaixo da chave. ScenariosTable Atualize o atributo TaskDefinition para o item com a chave testId e o valor region- []. SOLUTION-DEPLOYED-REGION

Problema: os testes precisam usar um endpoint que seja privado ou não esteja disponível por meio do gateway da Internet

  • Resolução:

Ao testar endpoints de API privados que não são acessíveis por meio do gateway da Internet, considere as seguintes abordagens:

  1. Configuração de rede: garanta que as tabelas de rotas de sub-rede usadas pelas tarefas do ECS sejam atualizadas com uma rota para o intervalo de endereços IP do endpoint privado que está sendo testado. Isso permite que o tráfego de teste alcance o endpoint privado em sua VPC.

  2. Resolução de DNS: para domínios personalizados, defina as configurações de DNS em sua VPC para resolver o nome de domínio do endpoint privado. Consulte a documentação do VPC DNS para obter instruções detalhadas.

  3. VPC Endpoints: se estiver testando serviços da AWS, considere usar VPC endpoints ( PrivateLinkAWS) para estabelecer conectividade privada. Por exemplo, para testar um API Gateway privado, você pode criar um VPC endpoint para o API Gateway. Consulte a documentação do Private API Gateway.

  4. Emparelhamento de VPC: se o endpoint privado estiver em uma VPC diferente, estabeleça o emparelhamento de VPC entre a VPC em que a solução está implantada e a VPC que contém o endpoint privado. Configure tabelas de rotas apropriadas em ambas as VPCs. Consulte a documentação do VPC Peering.

  5. Transit Gateway: Para cenários de rede mais complexos envolvendo várias VPCs, considere usar o AWS Transit Gateway para rotear o tráfego entre a VPC da solução e a VPC que contém o endpoint privado. Consulte a documentação do Transit Gateway.

  6. Grupos de segurança: garanta que os grupos de segurança associados às suas tarefas do ECS permitam tráfego de saída para o endpoint privado, e que os grupos de segurança do endpoint privado permitam o tráfego de entrada das tarefas do ECS.

Para testar balanceadores de carga de aplicativos internos ou instâncias do EC2, certifique-se de que os intervalos de CIDR da VPC não se sobreponham e que as rotas necessárias estejam configuradas nas tabelas de rotas.

Problema: os testes estão sendo concluídos, mas os resultados não estão disponíveis na interface

  • Resolução:

Se o teste tiver sido concluído, mas os resultados não estiverem disponíveis na interface do usuário, os arquivos de resultados ainda deverão estar disponíveis no bucket do S3 a partir das tarefas do ECS que executaram os testes. Essa é uma limitação conhecida na solução. Na arquitetura atual, a solução usa uma função Lambda de análise de resultados para resumir os resultados de várias tarefas do ECS, que são então armazenadas como um item na tabela do DynamoDB. A tabela do DynamoDB tem um limite de tamanho máximo de item de 400 KB. Essa limitação é atingida dependendo da complexidade do script de teste, da simultaneidade e do número de tarefas que estão sendo usadas. O erro não significa que o teste está falhando; indica que o processo para resumir os resultados e armazená-los na tabela do DynamoDB para operações CRUD falhou. Os resultados ainda estão disponíveis no bucket do S3 para o cenário de teste.

Problemas de implantação do ALB + ECS Fargate

Problema: a validação do certificado ACM está bloqueada no status “Validação pendente”

  • Resolução:

Se você solicitou um certificado público do ACM usando a validação de DNS, deverá adicionar o registro CNAME fornecido pelo ACM à sua configuração de DNS. Navegue até o console do ACM, expanda os detalhes do certificado e adicione o registro de validação de DNS ao provedor de DNS do seu domínio. Se você usou a validação de e-mail, verifique o endereço de e-mail associado ao domínio para ver o e-mail de validação da AWS. Para obter mais informações, consulte a validação de DNS no Guia do usuário do AWS Certificate Manager.

Problema: o console Web retorna um erro “502 Bad Gateway” ou “503 Service Temporary Inavailable” após a implantação

  • Resolução:

Verifique as verificações de integridade do grupo-alvo do ALB no console EC2. Se as tarefas do ECS Fargate estiverem aparecendo como não íntegras, verifique se as tarefas estão sendo executadas no console do ECS e verifique se há erros nos registros da tarefa. CloudWatch Certifique-se de que o grupo de segurança anexado às tarefas do ECS permita tráfego de entrada do grupo de segurança ALB.

Problema: o DNS está configurado, mas o domínio personalizado não é resolvido no console da web

  • Resolução:

Verifique se o registro CNAME está configurado corretamente em seu provedor de DNS, mapeando seu domínio personalizado (por exemplo,console.example.com) para o nome DNS ALB a partir das saídas. CloudFormation A propagação do DNS pode levar até 48 horas, dependendo do seu provedor de DNS e das configurações de TTL. Você pode verificar o registro DNS usando dig console.example.com CNAME ounslookup console.example.com.

Problema: o console Web retorna um erro “403 Proibido” após a implantação

  • Resolução:

A ACL da web do AWS WAF implantada na frente do ALB pode estar bloqueando solicitações legítimas. Abra o console do AWS WAF, selecione a ACL da web associada ao ALB e verifique a guia Solicitações de amostra para identificar qual regra está bloqueando o tráfego. Você pode modificar as regras do WAF para permitir as solicitações bloqueadas. Por exemplo, se um grupo de regras gerenciadas estiver produzindo falsos positivos, você pode definir a ação específica da regra como Contagem em vez de Bloquear para permitir o tráfego e, ao mesmo tempo, registrá-lo. Para obter mais informações, consulte Teste e ajuste de suas proteções do AWS WAF no Guia do desenvolvedor do AWS WAF.

Problemas de implantação do Headless (traga seu próprio servidor web)

Problema: o console da Web exibe erros de CORS ao se conectar à API

  • Resolução:

Cross-Origin Os erros de compartilhamento de recursos (CORS) ocorrem quando o console web hospedado em seu domínio tenta chamar os endpoints do API Gateway da solução. Certifique-se de que seu servidor web esteja servindo o console por HTTPS, pois os endpoints do API Gateway exigem HTTPS. Verifique se o domínio de origem do seu servidor web corresponde às origens permitidas definidas nas configurações CORS do API Gateway. Se você estiver usando um domínio personalizado, talvez seja necessário atualizar a configuração CORS do API Gateway para incluir seu domínio.

Problema: o console da Web carrega, mas a autenticação falha ou redireciona incorretamente

  • Resolução:

Os ativos do console web incluem um arquivo de configuração com as configurações do grupo de usuários do Cognito e o URL do endpoint da API. Verifique se esse arquivo de configuração não foi modificado durante a extração. Certifique-se de que seu servidor web esteja servindo o console por HTTPS, pois o Cognito exige HTTPS para URLs de retorno de chamada. Verifique se o URL de retorno de chamada do cliente do aplicativo Cognito inclui o domínio do seu servidor web.