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 Agent antes de conectar seus sistemas de produção.

Pré-requisitos

  • AWS conta com acesso administrativo

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

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 - $0,05 para o teste completo

Características de segurança nesses testes

  • Terminação automática: desligamento automático embutido

  • Nível gratuito qualificado: 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 sua 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 estender facilmente seu Espaço do DevOps Agente para incluir contas secundárias e permitir investigações entre contas.

Escolha seu teste

Você pode executar qualquer um dos testes de forma independente ou os dois juntos:

Opção de teste A: teste de capacidade da CPU 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 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 da CPU EC2

Etapa 1: implantar a CloudFormation pilha para o 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 clique em CloudFormation

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

  2. Carregar modelo:

    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: 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: GroupName: AWS-DevOpsAgent-test-sg GroupDescription: AWS DevOps Agent beta testing security group 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 # 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 SecurityGroupIds: - !Ref TestSecurityGroup 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: !Ref TestSecurityGroup 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. Clique em Escolher arquivo

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

    6. Clique em Avançar.

  3. Configurar pilha:

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

    2. Parâmetros:

      1. MyIP: deixe como padrão 0.0.0.0/0 (você pode protegê-lo mais tarde, se necessário)

    3. Clique em Avançar.

  4. Configure as opções de pilha:

    1. Deixe os padrões, clique em Avançar

  5. Revisar e criar:

    1. Verifique, reconheço que isso AWS CloudFormation pode criar recursos do IAM

    2. Clique em 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 você quiser apenas executar o teste automatizado

  1. Navegue até os grupos de segurança do EC2:

    1. No AWS Console, acesse EC2Security Groups

    2. Encontre AWS-DevOpsAgent-test-sg

  2. Atualize a regra SSH:

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

    2. Encontre a regra SSH (porta 22)

    3. Altere a fonte de 0.0.0.0/0 para seu IP: [YOUR_IP]/32

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

    5. Clique em Salvar regras

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

  1. Execução automática de testes:

    • O teste de estresse da CPU será iniciado 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á > 70% de uso da CPU

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

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

    • Conecte-se à sua instância: console EC2 → → Connect AWS-DevOpsAgent-Test-InstanceSession Manager

    • 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 Lambda

Etapa 1: implantar a CloudFormation pilha para o teste Lambda

  1. Navegue até CloudFormation:

    1. No AWS Console, acesse CloudFormation

    2. Clique em Criar pilhaCom novos recursos (padrão)

  2. Carregar modelo:

    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. Clique em Escolher arquivo

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

    6. Clique em Avançar.

  3. Configurar pilha:

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

    2. Clique em Avançar.

  4. Configure as opções de pilha:

    1. Deixe os padrões, clique em Avançar

  5. Revisar e criar:

    1. Verifique, reconheço que isso AWS CloudFormation pode criar recursos do IAM

    2. Clique em 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. Clique na guia Teste

    2. Clique em Criar novo evento

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

    4. Use essa carga JSON:

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

  3. Gere erros:

    1. Clique no botão Testar 3 vezes (aguarde 10 segundos entre cada uma)

    2. Cada teste gerará um erro intencional

    3. CloudWatch o alarme deve ser acionado 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 a detecção AWS DevOps do agente

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

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

Para o teste EC2:

  • No CloudWatch console, acesse 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 o Teste Lambda:

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

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

Etapa 2: iniciar uma investigação AWS DevOps do agente

  1. Abra seu AWS DevOps agente AgentSpace

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

  3. Clique no botão Iniciar investigação no lado direito da tela

  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, áreas a serem exploradas ou informações relevantes.

    2. Ponto de partida da investigação: descreva as informações a partir das 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) ::MMZ YYYY-MM-DDTHH

    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 o incidente ocorreu

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

  5. Clique em Investigar para iniciar a investigação.

  6. Clique na 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á realizando.

Resultados esperados

Resultados do teste EC2:

  • Detecta o alarme da CPU EC2

  • Identifica a causa raiz: “carga de trabalho do 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 testes 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. Clique em Excluir

    4. Confirme a exclusão

    5. Isso excluirá automaticamente todos os recursos: instância do EC2, grupo de segurança, key pair 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. Clique em 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 se conectar à instância do EC2”

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

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

  • Verifique o IP público: a instância deve ter um IP público atribuído

  • Aguarde a instância: verifique se a instância está no estado “Executando”

“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 para a 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 se tratou de uma falha intencional.

  • Precisão do cronograma: sequência correta de eventos mostrados

  • Qualidade da recomendação: sugestões práticas fornecidas