View a markdown version of this page

Criação de um ambiente de teste - AWS DevOps Agente

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á.

Criação de um ambiente de teste

Este guia fornece testes práticos para validar a funcionalidade de resposta a incidentes do AWS DevOps agente usando uma arquitetura de amostra. Use este suplemento se quiser testar o DevOps Agente antes de conectar seus sistemas de produção.

Pré-requisitos

  • AWS conta com acesso administrativo

  • AWS DevOps Espaço do agente criado com e configurado usando o fluxo de criação automática da função do DevOps agente

  • Para o teste do EC2: uma VPC existente com pelo menos uma sub-rede na região em que você implantará.

Visão geral de custos e segurança

Proteção de custos

  • Teste EC2: GRATUITO (nível AWS gratuito) ou ~ $0,02 por 2 horas

  • Teste Lambda: GRATUITO (nível gratuito de 1 milhão requests/month )

  • CloudWatch: GRÁTIS (10 alarmes, métricas básicas incluídas)

  • Custo total estimado esperado: 0,00 USD - 0,05 USD para o teste completo

Características de segurança nesses testes

  • Auto-termination: desligamento Built-in automático

  • Elegível para o nível gratuito: usa os menores tipos de instância

  • Escopo limitado: recursos de teste mínimos e isolados

  • Limpeza fácil: etapas simples do console para remover tudo

  • Sem impacto na produção: ambiente de teste completamente separado

Configure seu AWS conta para testes

Importante

Os recursos de infraestrutura precisam ser implantados na AWS conta em que você criou a conta de nuvem primária do seu DevOps Agent Space. A região específica não importa.

  1. Faça login no AWS console: https://console.aws.amazon.com

  2. Verifique se você está trabalhando na mesma AWS conta em que seu Espaço DevOps do Agente está localizado

  3. Você pode usar qualquer região para seus recursos de teste

nota

O mapeamento 1:1 entre a conta principal do seu DevOps agente e os recursos do ambiente de teste que você está criando simplifica a configuração do teste. Você pode facilmente ampliar seu Espaço do DevOps Agente para incluir contas secundárias e permitir investigações entre contas.

Escolha seu teste

Você pode executar o teste de forma independente ou os dois juntos:

Opção de teste A: teste de capacidade de CPU do EC2

Objetivo: validar a capacidade do AWS DevOps agente de detectar e investigar problemas de desempenho do EC2

Tempo estimado: 5 minutos de configuração+10 minutos de execução automática

Dificuldade: Totalmente automatizado (sem necessidade de etapas manuais)

Opção de teste B: teste de taxa de erro do Lambda

Objetivo: validar a capacidade do AWS DevOps agente de detectar e investigar erros da função Lambda

Tempo estimado: 10 minutos de configuração + 2 minutos para acionar

Dificuldade: Muito fácil

Opção de teste A: teste de capacidade de CPU do EC2

Etapa 1: implantar a CloudFormation pilha para teste do EC2

Usaremos CloudFormation para criar nossos recursos de teste, o que permite ao AWS DevOps Agente rastreá-los e investigá-los adequadamente.

  1. Navegue até CloudFormation:

    1. No AWS Console, pesquise por "CloudFormation" e escolha CloudFormation

    2. Escolha Criar pilha > Com novos recursos (padrão).

  2. Modelo de upload:

    1. Crie um novo arquivo local chamado AWS-DevOpsAgent-ec2-test.yaml

    2. Copie e cole esse CloudFormation modelo no arquivo:

      1. AWSTemplateFormatVersion: '2010-09-09' Description: 'AWS DevOps Agent EC2 CPU Test Stack' Parameters: VpcId: Type: AWS::EC2::VPC::Id Description: ID of an existing VPC where the test instance will be launched. SubnetId: Type: AWS::EC2::Subnet::Id Description: ID of an existing subnet within the selected VPC. Choose a subnet that routes to an internet gateway if you plan to connect via SSH. MyIP: Type: String Description: Your current IP address for SSH access (find at https://whatismyipaddress.com) Default: '0.0.0.0/0' Resources: # Security Group for SSH access TestSecurityGroup: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: AWS DevOps Agent beta testing security group VpcId: !Ref VpcId SecurityGroupIngress: - IpProtocol: tcp FromPort: 22 ToPort: 22 CidrIp: !Ref MyIP Description: SSH access from your IP Tags: - Key: Name Value: AWS-DevOpsAgent-Test-SG - Key: Purpose Value: AWS-DevOpsAgent-Testing # Key Pair for SSH access TestKeyPair: Type: AWS::EC2::KeyPair Properties: KeyName: AWS-DevOpsAgent-test-key KeyType: rsa Tags: - Key: Name Value: AWS-DevOpsAgent-Test-Key - Key: Purpose Value: AWS-DevOpsAgent-Testing # IAM Role for Session Manager access SSMInstanceRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: ec2.amazonaws.com Action: sts:AssumeRole ManagedPolicyArns: - arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore Tags: - Key: Name Value: AWS-DevOpsAgent-Test-SSMRole - Key: Purpose Value: AWS-DevOpsAgent-Testing # Instance profile wrapping the SSM role SSMInstanceProfile: Type: AWS::IAM::InstanceProfile Properties: Roles: - !Ref SSMInstanceRole # EC2 Instance for CPU testing TestInstance: Type: AWS::EC2::Instance Properties: InstanceType: t3.micro ImageId: '{{resolve:ssm:/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-x86_64}}' KeyName: !Ref TestKeyPair SubnetId: !Ref SubnetId SecurityGroupIds: - !GetAtt TestSecurityGroup.GroupId IamInstanceProfile: !Ref SSMInstanceProfile InstanceInitiatedShutdownBehavior: terminate UserData: Fn::Base64: !Sub | #!/bin/bash yum update -y yum install -y htop # Create the CPU stress test script cat > /home/ec2-user/cpu-stress-test.sh << 'EOF' #!/bin/bash echo "Starting AWS DevOpsAgent CPU Stress Test" echo "Time: $(date)" echo "Instance: $(curl -s http://169.254.169.254/latest/meta-data/instance-id)" echo "" # Get number of CPU cores CORES=$(nproc) echo "CPU Cores: $CORES" echo "" echo "Starting stress test (5 minutes)..." echo "This will generate >70% CPU usage to trigger CloudWatch alarm" echo "" # Create CPU load using yes command echo "Starting CPU load processes..." for i in $(seq 1 $CORES); do (yes > /dev/null) & CPU_PID=$! echo "Started CPU load process $i (PID: $CPU_PID)" echo $CPU_PID >> /tmp/cpu_test_pids done # Auto-cleanup after 5 minutes (sleep 300 && echo "Stopping CPU load processes..." && kill $(cat /tmp/cpu_test_pids 2>/dev/null) 2>/dev/null && rm -f /tmp/cpu_test_pids) & echo "" echo "CPU load processes started for 5 minutes" echo "Check CloudWatch for alarm trigger in 3-5 minutes" EOF chmod +x /home/ec2-user/cpu-stress-test.sh chown ec2-user:ec2-user /home/ec2-user/cpu-stress-test.sh # Create auto-shutdown script (safety mechanism) cat > /home/ec2-user/auto-shutdown.sh << 'SHUTDOWN_EOF' #!/bin/bash echo "Auto-shutdown scheduled for 2 hours from now: $(date)" sleep 7200 echo "Auto-shutdown executing at: $(date)" sudo shutdown -h now SHUTDOWN_EOF chmod +x /home/ec2-user/auto-shutdown.sh nohup /home/ec2-user/auto-shutdown.sh > /home/ec2-user/auto-shutdown.log 2>&1 & echo "AWS DevOpsAgent test setup completed at $(date)" > /home/ec2-user/setup-complete.txt Tags: - Key: Name Value: AWS-DevOpsAgent-Test-Instance - Key: Purpose Value: AWS-DevOpsAgent-Testing # CloudWatch Alarm for CPU utilization CPUAlarm: Type: AWS::CloudWatch::Alarm Properties: AlarmName: AWS-DevOpsAgent-EC2-CPU-Test AlarmDescription: AWS-DevOpsAgent beta test - EC2 CPU utilization alarm MetricName: CPUUtilization Namespace: AWS/EC2 Statistic: Average Period: 60 EvaluationPeriods: 1 Threshold: 70 ComparisonOperator: GreaterThanThreshold Dimensions: - Name: InstanceId Value: !Ref TestInstance TreatMissingData: notBreaching Outputs: InstanceId: Description: EC2 Instance ID for testing Value: !Ref TestInstance SecurityGroupId: Description: Security Group ID Value: !GetAtt TestSecurityGroup.GroupId AlarmName: Description: CloudWatch Alarm Name Value: !Ref CPUAlarm SSHCommand: Description: SSH command to connect to instance Value: !Sub 'ssh -i "AWS-DevOpsAgent-test-key.pem" ec2-user@${TestInstance.PublicDnsName}'
    3. No CloudFormation console, selecione Carregar um arquivo de modelo

    4. Escolha Escolher arquivo

    5. Selecione o AWS-DevOpsAgent-ec2-test.yaml arquivo

    6. Escolha Próximo.

  3. Configurar pilha:

    1. Nome da pilha: AWS-DevOpsAgent-EC2-Test

    2. Parâmetros:

      1. VpcId: selecione uma VPC existente no menu suspenso.

      2. SubnetId: selecione uma sub-rede na VPC que você escolheu. Para acesso SSH, a sub-rede deve rotear para um gateway da Internet e a instância deve ter um endereço IPv4 público associado. Caso contrário, a SSHCommand saída ficará vazia e as conexões SSH não serão bem-sucedidas.

      3. MyIP: Deixe como padrão 0.0.0.0/0 (você pode proteger isso mais tarde, se necessário)

    3. Escolha Próximo.

  4. Configure as opções de pilha:

    1. Deixe os padrões, escolha Avançar

  5. Revisar e criar:

    1. Marque Eu reconheço que isso AWS CloudFormation pode criar recursos do IAM

    2. Escolha Enviar

  6. Aguarde a conclusão:

    1. A criação da pilha leva de 3 a 5 minutos

    2. O status mudará de CREATE_IN_PROGRESS para CREATE_COMPLETE

    3. Importante: sua instância do EC2 agora faz parte de uma CloudFormation pilha que AWS DevOpsAgent pode ser rastreada!

Opcional: acesso SSH seguro (somente se você planeja se conectar à instância)

Ignore esta etapa se quiser apenas executar o teste automatizado

  1. Localize o grupo de segurança:

    1. No AWS Console, acesse CloudFormation e selecione a AWS-DevOpsAgent-EC2-Test pilha

    2. Abra a guia Saídas e copie o valor de SecurityGroupId (começa comsg-)

    3. Vá para EC2 Security Groups e cole o ID na barra de pesquisa para abrir o grupo de segurança

  2. Atualize a regra SSH:

    1. Selecione o grupo de segurança → guia Regras de entrada → Editar regras de entrada

    2. Encontre a regra SSH (porta 22)

    3. Mude a fonte 0.0.0.0/0 para o seu IP: [YOUR_IP]/32

    4. Obtenha seu IP de https://whatismyipaddress.com

    5. Selecione Save rules (Salvar regras).

Etapa 2: Aguarde a execução automática do teste

  1. Execução automática do teste:

    • O teste de estresse da CPU iniciará automaticamente 5 minutos após a inicialização da instância

    • Nenhuma intervenção manual é necessária - basta esperar, o teste é executado completamente em segundo plano

  2. Monitore o teste:

    • A instância inicializa e prepara o teste automaticamente

    • O script será executado por 5 minutos e gerará mais de 70% de uso da CPU

    • CloudWatch o alarme deve disparar dentro de 8-10 minutos no total (5 min de atraso + 3-5 min para o alarme)

  3. Opcional: Reexecução manual (para testes adicionais):

    • Conecte-se à sua instância: console do EC2 → → Conectar AWS-DevOpsAgent-Test-Instance → Gerenciador de sessões

    • Execute o teste de estresse novamente: ./cpu-stress-test.sh

    • Perfeito para testar AWS DevOpsAgent a resposta várias vezes

Opção de teste B: teste de taxa de erro do Lambda

Etapa 1: implantar CloudFormation pilha para teste Lambda

  1. Navegue até CloudFormation:

    1. No AWS Console, acesse CloudFormation

    2. Escolha Criar pilha Com novos recursos (padrão)

  2. Modelo de upload:

    1. Crie um novo arquivo local chamado AWS-DevOpsAgent-lambda-test.yaml

    2. Copie e cole esse CloudFormation modelo no arquivo:

      1. AWSTemplateFormatVersion: '2010-09-09' Description: 'AWS DevOpsAgent Lambda Error Test Stack' Resources: # IAM Role for Lambda function LambdaExecutionRole: Type: AWS::IAM::Role Properties: RoleName: AWS-DevOpsAgentLambdaTestRole AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: lambda.amazonaws.com Action: sts:AssumeRole ManagedPolicyArns: - arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole Tags: - Key: Name Value: AWS-DevOpsAgent-Lambda-Test-Role - Key: Purpose Value: AWS-DevOpsAgent-Testing # Lambda function that generates errors TestLambdaFunction: Type: AWS::Lambda::Function Properties: FunctionName: AWS-DevOpsAgent-test-lambda Runtime: python3.12 Handler: index.lambda_handler Role: !GetAtt LambdaExecutionRole.Arn Code: ZipFile: | import json import random import time from datetime import datetime def lambda_handler(event, context): print(f"AWS DevOpsAgent Test Lambda - {datetime.now()}") print(f"Event: {json.dumps(event)}") # Intentionally generate errors for testing error_scenarios = [ "Simulated database connection timeout", "Test API rate limit exceeded", "Intentional validation error for AWS DevOpsAgent testing" ] # Always throw an error for testing purposes error_message = random.choice(error_scenarios) print(f"Generating test error: {error_message}") # This will create a Lambda error that CloudWatch will detect raise Exception(f"AWS DevOpsAgent Test Error: {error_message}") Description: AWS DevOpsAgent beta test function - intentionally generates errors Timeout: 30 Tags: - Key: Name Value: AWS-DevOpsAgent-Test-Lambda - Key: Purpose Value: AWS-DevOpsAgent-Testing # CloudWatch Alarm for Lambda errors LambdaErrorAlarm: Type: AWS::CloudWatch::Alarm Properties: AlarmName: AWS-DevOpsAgent-Lambda-Error-Test AlarmDescription: AWS-DevOpsAgent beta test - Lambda error rate alarm MetricName: Errors Namespace: AWS/Lambda Statistic: Sum Period: 60 EvaluationPeriods: 1 Threshold: 0 ComparisonOperator: GreaterThanThreshold Dimensions: - Name: FunctionName Value: !Ref TestLambdaFunction TreatMissingData: notBreaching Outputs: LambdaFunctionName: Description: Lambda Function Name for testing Value: !Ref TestLambdaFunction LambdaFunctionArn: Description: Lambda Function ARN Value: !GetAtt TestLambdaFunction.Arn AlarmName: Description: CloudWatch Alarm Name Value: !Ref LambdaErrorAlarm TestCommand: Description: AWS CLI command to test the function Value: !Sub 'aws lambda invoke --function-name ${TestLambdaFunction} --payload "{\"test\":\"AWS DevOpsAgent validation\"}" response.json'
    3. No CloudFormation console, selecione Carregar um arquivo de modelo

    4. Escolha Escolher arquivo

    5. Selecione o AWS-DevOpsAgent-lambda-test.yaml arquivo

    6. Escolha Próximo.

  3. Configurar pilha:

    1. Nome da pilha: AWS-DevOpsAgent-Lambda-Test

    2. Escolha Próximo.

  4. Configure as opções de pilha:

    1. Deixe os padrões, escolha Avançar

  5. Revisar e criar:

    1. Marque Eu reconheço que isso AWS CloudFormation pode criar recursos do IAM

    2. Escolha Enviar

  6. Aguarde a conclusão:

    1. A criação da pilha leva de 2 a 3 minutos

    2. O status mudará para CREATE_COMPLETE

Etapa 2: acionar erros do Lambda

  1. Navegue até o console Lambda:

    1. Vá para o console AWS Lambda

    2. Encontre sua função AWS-DevOpsAgent-test-lambda

  2. Teste a função:

    1. Escolha a guia Teste

    2. Escolha Criar novo evento

    3. Nome do evento: AWS-DevOpsAgent-test-event

    4. Use esta carga JSON:

      1. { "test": "AWS DevOpsAgent validation", "timestamp": "2024-01-01T00:00:00Z" }
    5. Escolha Salvar

  3. Gere erros:

    1. Escolha o botão Testar 3 vezes (aguarde 10 segundos entre cada um)

    2. Cada teste gerará um erro intencional

    3. CloudWatch o alarme deve disparar dentro de 2-3 minutos

    4. AWS DevOpsAgentagora deve ser capaz de detectar o alarme com uma investigação no aplicativo Operator, que você configurará a seguir.

Validar AWS DevOps Detecção de agentes

Etapa 1: CloudWatch alarmes de verificação de integridade (opcional)

Esta etapa é para garantir que os testes acima estejam agora em um estado de alarme.

Para o teste EC2:

  • No CloudWatch console, vá para Alarmes

  • Aguarde de 3 a 5 minutos após iniciar o teste de estresse

  • Seu alarme deve aparecer em estado de alarme

  • Se ainda estiver “OK”: aguarde mais 2 a 3 minutos (CloudWatch as métricas podem ser atrasadas)

Para teste Lambda:

  • Verifique o AWS-DevOpsAgent-Lambda-Error-Test alarme

  • Deve aparecer em alarme dentro de 2 a 3 minutos após a execução dos testes

Etapa 2: iniciar um AWS DevOps Investigação de agentes

  1. Abra seu AWS DevOps agente AgentSpace

  2. Escolha Acesso de administrador. Isso abrirá o aplicativo web DevOps Agent Space em uma nova janela

  3. Escolha o botão Iniciar investigação

  4. Preencha o seguinte formulário:

    1. Detalhes da investigação: descreva a investigação que você gostaria de realizar. Inclua todos os detalhes que puder sobre os objetivos da investigação, as áreas a serem exploradas ou as informações relevantes.

    2. Ponto de partida da investigação: descreva as informações com as quais você gostaria de iniciar a investigação. Você pode mencionar um alarme, uma métrica, um trecho de registro ou qualquer outra coisa para dar ao DevOps Agente um ponto de partida para trabalhar. Nesse caso, forneça um resumo dos alarmes que você acabou de criar.

    3. Data e hora do incidente (de preferência ISO 8601): YYYY-MM-DDTHH:MMZ

    4. Dê um nome à sua investigação: exemplo: Oncall_investigation_1:2025-10-27

    5. AWS ID da conta do incidente

    6. Região onde ocorreu o incidente

    7. Prioridade - AWS DevOpsAgent permite 2 investigações simultâneas. A Prioridade permite que você defina a ordem de execução de suas investigações.

  5. Escolha Investigar para iniciar a investigação.

  6. Escolha sua investigação listada no painel. Você será direcionado para a tela Detalhes da Investigação, onde poderá ver as etapas granulares que o DevOps Agente está tomando.

Resultados esperados

Resultados do teste EC2:

  • Detecta alarme de CPU EC2

  • Identifica a causa raiz: “Carga de trabalho de teste de estresse da CPU”

  • Mostra a linha do tempo: Teste de estresse → pico de CPU → Alarme

  • Fornece recomendações para monitoramento e escalabilidade

Resultados do teste lambda:

  • Detecta o pico da taxa de erro do Lambda

  • Identifica a causa raiz: “Exceções de teste intencionais”

  • Mostra a linha do tempo: invocações de funções → Erros → Alarme

  • Fornece recomendações para tratamento e monitoramento de erros

Instruções de limpeza

Teste de limpeza A (teste EC2)

Limpeza automática

  • A instância será encerrada automaticamente após 2 horas ( CloudFormation incorporada ao modelo)

Limpeza manual (imediata)

  1. Excluir CloudFormation pilha:

    1. Vá para o CloudFormation console

    2. Selecione a AWS-DevOpsAgent-EC2-Test pilha

    3. Escolha Delete (Excluir).

    4. Confirme a exclusão

    5. Isso excluirá automaticamente todos os recursos: instância do EC2, grupo de segurança, par de chaves e alarme CloudWatch

Teste de limpeza B (teste Lambda)

  1. Excluir CloudFormation pilha:

    1. Vá para o CloudFormation console

    2. Selecione a AWS-DevOpsAgent-Lambda-Test pilha

    3. Escolha Delete (Excluir).

    4. Confirme a exclusão

    5. Isso excluirá automaticamente todos os recursos: função Lambda, função do IAM e alarme CloudWatch

Solução de problemas

Problemas comuns

“Não é possível conectar-se à instância do EC2”

  • Verifique o grupo de segurança: verifique se o SSH (porta 22) está aberto ao seu IP

  • Verifique as permissões da chave: Executar chmod 400 AWS-DevOpsAgent-test-key.pem

  • Verificar IP público: a instância deve ter IP público atribuído

  • Aguarde a instância: certifique-se de que a instância esteja no estado “Em execução”

“O alarme não está sendo acionado”

  • Aguarde as métricas: CloudWatch as métricas podem levar de 2 a 5 minutos para aparecer

  • Verifique a carga da CPU: SSH na instância e execute top para verificar a CPU > 70%

  • Verifique o teste de estresse: execute ps aux | grep yes para ver se os processos de carregamento estão em execução

  • Espera prolongada: às vezes, leva de 7 a 8 minutos para o primeiro acionamento do alarme

Validação de testes

Seu teste de AWS DevOp agente é bem-sucedido quando:

Validação técnica

  • Precisão da investigação: Os resultados do teste EC2 devem indicar corretamente que o alarme foi acionado devido à carga da CPU. O resultado do teste Lambda deve indicar que essa foi uma falha intencional.

  • Precisão da linha do tempo: sequência correta de eventos mostrada

  • Qualidade da recomendação: sugestões acionáveis fornecidas