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á.
Personalização da imagem do contêiner
Carregar imagem do testador
Essa solução usa um repositório público de imagens do Amazon Elastic Container Registry (Amazon ECR) gerenciado pela AWS para armazenar a imagem usada para executar os testes configurados. Você pode reconstruir e enviar a imagem do contêiner para um repositório de imagens ECR em sua própria conta da AWS.
Você pode editar a imagem padrão do contêiner para atender às suas necessidades. Defina essas variáveis de ambiente antes de criar uma imagem personalizada.
#!/bin/bash export REGION=aws-region-code # the AWS region to launch the solution (e.g. us-east-1) export BUCKET_PREFIX=my-bucket-name # prefix of the bucket name without the region code export BUCKET_NAME=$BUCKET_PREFIX-$REGION # full bucket name where the code will reside export SOLUTION_NAME=my-solution-name export VERSION=my-version # version number for the customized code export PUBLIC_ECR_REGISTRY=public.ecr.aws/awssolutions/distributed-load-testing-on-aws-load-tester # replace with the container registry and image if you want to use a different container image export PUBLIC_ECR_TAG=v3.1.0 # replace with the container image tag if you want to use a different container image
Você pode hospedar uma imagem de contêiner personalizada em um repositório de imagens público ou privado em sua conta da AWS. Os recursos de imagem estão no deployment/ecr/distributed-load-testing-on-aws-load-tester diretório na base de código.
Em seguida, você pode criar e enviar a imagem para o destino do host.
-
Para repositórios e imagens privadas do Amazon ECR, consulte os repositórios privados e imagens privadas do Amazon ECR no Guia do usuário do Amazon ECR.
-
Para repositórios e imagens públicas do Amazon ECR, consulte os repositórios públicos e imagens públicas do Amazon ECR no Guia do usuário público do Amazon ECR.
Depois de criar a imagem personalizada, declare as seguintes variáveis de ambiente antes de criar a solução personalizada.
#!/bin/bash export PUBLIC_ECR_REGISTRY=YOUR_ECR_REGISTRY_URI # e.g. YOUR_ACCOUNT_ID.dkr.ecr.us-east-1.amazonaws.com/YOUR_IMAGE_NAME export PUBLIC_ECR_TAG=YOUR_ECR_TAG # e.g. latest, v3.4.0
O Dockerfile define a imagem de teste de carga. Ele se baseia em uma imagem básica do Amazon Linux, instala os tempos de execução da linguagem, os pacotes do sistema e as ferramentas de teste necessários para executar testes de carga, adiciona os arquivos de metadados da versão da estrutura e o script do load-test.sh ponto de entrada e é executado como um usuário não root. Para visualizar o Dockerfile, consulte Dockerfile
O script do load-test.sh ponto de entrada é executado dentro do contêiner sempre que uma tarefa é iniciada. Ele lê a configuração do teste e os metadados do contêiner. Em seguida, ele baixa a definição de teste do Amazon S3 e provisiona a estrutura de teste selecionada para a execução. O script espera por um sinal de início para que todas as tarefas em um teste comecem ao mesmo tempo. Em seguida, ele executa o teste pela duração configurada enquanto produz métricas e registros. Quando o teste termina, o script coleta os resultados e os enriquece com detalhes sobre o contêiner que os produziu. Ele carrega os resultados, registros e outros artefatos para o Amazon S3. O script também manipula sinais de terminação, portanto, preserva resultados e registros parciais se você cancelar um teste antes que ele seja concluído. Para ver o script completo, consulte load-test.sh
Imagem do console web (somente modelo ALB + ECS Fargate)
O modelo ALB + ECS Fargate executa o console web como um contêiner no ECS Fargate. Por padrão, a solução extrai a imagem do console web de um repositório público do Amazon ECR gerenciado pela AWS.
Em ambientes em que o acesso aos registros públicos de contêineres é restrito (por exemplo, VPCs sem acesso à Internet ou contas com políticas de acesso público do ECR), você deve espelhar a imagem pública em um repositório privado do Amazon ECR e fornecer o URI da imagem privada no parâmetro URI da imagem do console da Web. CloudFormation Você também pode usar as etapas a seguir para personalizar a imagem do console web.
Espelhe a imagem pública em um repositório ECR privado
Para espelhar a imagem do console web em um repositório ECR privado:
-
Autentique-se no registro público de ECR:
$ aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws -
Obtenha a imagem pública do console web:
$ docker pull public.ecr.aws/aws-solutions/distributed-load-testing-on-aws-web-console:<version> -
Crie um repositório ECR privado em sua conta (se ainda não existir):
$ aws ecr create-repository --repository-name <your-repo-name> --region <region> 2>/dev/null || true -
Autentique-se em seu registro ECR privado:
$ aws ecr get-login-password --region <region> | docker login --username AWS --password-stdin <account-id>.dkr.ecr.<region>.amazonaws.com -
Marque e envie a imagem para seu repositório privado:
$ docker tag public.ecr.aws/aws-solutions/distributed-load-testing-on-aws-web-console:<version> \ <account-id>.dkr.ecr.<region>.amazonaws.com/<your-repo-name>:<version> $ docker push <account-id>.dkr.ecr.<region>.amazonaws.com/<your-repo-name>:<version> -
Ao iniciar a pilha ALB + ECS Fargate, insira o URI da imagem privada no parâmetro URI da imagem do console da Web:
<account-id>.dkr.ecr.<region>.amazonaws.com/<your-repo-name>:<version>
Personalize a imagem do console web
Você também pode personalizar a imagem do console web. Os recursos de imagem estão no deployment/ecr/distributed-load-testing-on-aws-web-console diretório, localizado no GitHub repositório.
A imagem do contêiner do console web se baseia em uma imagem base do Nginx e instala a AWS CLI. Suas cópias
Para obter mais informações, consulte Enviando uma imagem do Docker para um repositório privado do Amazon ECR no Guia do usuário do Amazon ECR.
URI da imagem do testador de carga
Todos os três modelos de implantação (Amazon CloudFront + S3, Application Load Balancer (ALB) + ECS no AWS Fargate e headless) extraem uma imagem de contêiner do testador de carga do registro público do Amazon Elastic Container Registry (Amazon ECR) () no momento da implantação. public.ecr.aws
Em ambientes em que o acesso aos registros públicos de contêineres é restrito, espelhe a imagem do testador de carga em um repositório privado do Amazon ECR e forneça o URI da imagem privada no parâmetro Load Tester Image URI () da AWS. LoadTesterImageUri CloudFormation Exemplos comuns incluem VPCs sem acesso à Internet, contas com políticas de acesso público do ECR e regiões da AWS GovCloud (EUA), nas quais as tarefas do ECS não podem acessar o registro público do ECR. O espelhamento em um repositório privado em sua região de implantação é obrigatório para implantações da AWS GovCloud (EUA) e opcional em outros lugares.
Espelhe a imagem do testador de carga em um repositório ECR privado
nota
Quando você forneceLoadTesterImageUri, o parâmetro Auto-update Container Image (UseStableTagging) não gerencia mais a imagem do testador de carga. Para obter patches de segurança, você deve espelhar novamente as tags de imagem atualizadas.
Para espelhar a imagem do testador de carga em um repositório ECR privado, conclua as etapas a seguir. Nos comandos a seguir, <version> substitua pela tag de imagem (por exemplo,v4.0.0), <region> pela sua região de implantação (por exemplo,us-gov-west-1), <profile> pelo nome do perfil da AWS Command Line Interface (AWS CLI) e <account-id> pelo ID de conta da AWS de 12 dígitos.
-
Autentique-se no registro público do ECR a partir de uma máquina com acesso à Internet.
aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws -
Extraia a imagem pública do testador de carga.
docker pull public.ecr.aws/aws-solutions/distributed-load-testing-on-aws-load-tester:<version> -
Crie um repositório ECR privado em sua conta (se ainda não existir).
aws ecr create-repository --repository-name dlt-load-tester --region <region> --profile <profile> 2>/dev/null || true -
Autentique-se em seu registro ECR privado.
aws ecr get-login-password --region <region> --profile <profile> | docker login --username AWS --password-stdin <account-id>.dkr.ecr.<region>.amazonaws.com -
Marque e envie a imagem para seu repositório privado.
docker tag public.ecr.aws/aws-solutions/distributed-load-testing-on-aws-load-tester:<version> \ <account-id>.dkr.ecr.<region>.amazonaws.com/dlt-load-tester:<version> docker push <account-id>.dkr.ecr.<region>.amazonaws.com/dlt-load-tester:<version> -
Insira o URI da imagem privada no parâmetro URI da imagem do Load Tester ao iniciar a pilha.
<account-id>.dkr.ecr.<region>.amazonaws.com/dlt-load-tester:<version>
Exemplos de implantação da AWS GovCloud (EUA)
Os exemplos a seguir mostram os parâmetros necessários para cada variante de pilha na AWS GovCloud (EUA).
Para a pilha sem cabeça, só LoadTesterImageUri é necessário:
aws cloudformation create-stack \ --stack-name dlt-govcloud \ --template-url https://solutions-reference-us-gov.s3.us-gov-west-1.amazonaws.com/distributed-load-testing-on-aws/latest/distributed-load-testing-on-aws-headless.template \ --parameters \ ParameterKey=AdminName,ParameterValue=admin \ ParameterKey=AdminEmail,ParameterValue=admin@example.com \ ParameterKey=LoadTesterImageUri,ParameterValue=<account-id>.dkr.ecr.us-gov-west-1.amazonaws.com/dlt-load-tester:<version> \ --capabilities CAPABILITY_IAM \ --region us-gov-west-1
Para o Application Load Balancer (ALB) + ECS na pilha AWS Fargate, forneça e. LoadTesterImageUri WebConsoleImageUri As tarefas do ECS na AWS GovCloud (EUA) não podem acessar o registro público do ECR (public.ecr.aws), portanto, você deve espelhar as duas imagens do contêiner.
aws cloudformation create-stack \ --stack-name dlt-govcloud \ --template-url https://solutions-reference-us-gov.s3.us-gov-west-1.amazonaws.com/distributed-load-testing-on-aws/latest/distributed-load-testing-on-aws-alb-ecs.template \ --parameters \ ParameterKey=AdminName,ParameterValue=admin \ ParameterKey=AdminEmail,ParameterValue=admin@example.com \ ParameterKey=ConsoleDomainName,ParameterValue=dlt.example.gov \ ParameterKey=ACMCertificateArn,ParameterValue=arn:aws-us-gov:acm:us-gov-west-1:123456789012:certificate/abcd1234-ef56-gh78-ij90-klmnopqrstuv \ ParameterKey=LoadTesterImageUri,ParameterValue=<account-id>.dkr.ecr.us-gov-west-1.amazonaws.com/dlt-load-tester:<version> \ ParameterKey=WebConsoleImageUri,ParameterValue=<account-id>.dkr.ecr.us-gov-west-1.amazonaws.com/dlt-web-console:<version> \ --capabilities CAPABILITY_IAM \ --region us-gov-west-1
Para obter instruções sobre como espelhar a imagem do console web, consulte Imagem do console web.