View a markdown version of this page

Creación de un entorno de prueba - AWS DevOps Agente

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Creación de un entorno de prueba

Esta guía proporciona pruebas prácticas para validar la funcionalidad de respuesta a incidentes del AWS DevOps agente mediante una arquitectura de muestra. Utilice este suplemento si desea probar el DevOps Agent antes de conectar sus sistemas de producción.

Requisitos previos

  • AWS cuenta con acceso administrativo

  • AWS DevOps Espacio de agente creado y configurado mediante el flujo de roles de DevOps agente de creación automática

  • Para la prueba de EC2: una VPC existente con al menos una subred en la región en la que se va a implementar.

Descripción general de los costos y la seguridad

Protección de costos

  • Prueba EC2: GRATUITA (capa AWS gratuita) o aproximadamente 0,02 USD durante 2 horas

  • Prueba Lambda: GRATUITA (1 millón de usuarios gratis) requests/month

  • CloudWatch: GRATIS (10 alarmas, métricas básicas incluidas)

  • Coste total estimado: de 0,00 a 0,05 USD por completar las pruebas

Características de seguridad de estas pruebas

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

  • Apto para la capa gratuita: utiliza los tipos de instancias más pequeños

  • Alcance limitado: recursos de prueba mínimos y aislados

  • Limpieza sencilla: pasos sencillos en la consola para eliminarlo todo

  • Sin impacto en la producción: entorno de prueba completamente independiente

Configure su AWS cuenta para realizar pruebas

importante

Los recursos de infraestructura deben implementarse en la AWS cuenta en la que creó la cuenta de nube principal de DevOps Agent Space. La región específica no importa.

  1. Inicie sesión en AWS la consola: https://console.aws.amazon.com

  2. Asegúrese de trabajar en la misma AWS cuenta en la que se encuentra su espacio de DevOps agente

  3. Puedes usar cualquier región para tus recursos de prueba

nota

La asignación 1:1 entre la cuenta principal de su DevOps agente y los recursos del entorno de prueba que está creando simplifica la configuración de la prueba. Puede ampliar fácilmente su espacio de DevOps agente para incluir cuentas secundarias y permitir las investigaciones entre cuentas.

Elige tu prueba

Puede ejecutar cualquiera de las dos pruebas de forma independiente o ambas a la vez:

Opción de prueba A: prueba de capacidad de la CPU EC2

Propósito: validar la capacidad del AWS DevOps agente para detectar e investigar los problemas de rendimiento de EC2

Tiempo estimado: 5 minutos de configuración más 10 minutos de ejecución automática

Dificultad: Totalmente automatizada (no se requieren pasos manuales)

Opción de prueba B: prueba de tasa de errores lambda

Propósito: validar la capacidad del AWS DevOps agente para detectar e investigar los errores de las funciones de Lambda

Tiempo estimado: 10 minutos de configuración y 2 minutos de activación

Dificultad: Muy fácil

Opción de prueba A: prueba de capacidad de la CPU EC2

Paso 1: Implemente la CloudFormation pila para la prueba de EC2

Los utilizaremos CloudFormation para crear nuestros recursos de prueba, lo que permitirá al AWS DevOps Agente rastrearlos e investigarlos correctamente.

  1. Navega hasta CloudFormation:

    1. En AWS la consola, busca "CloudFormation" y elige CloudFormation

    2. Elija Crear pila > Con nuevos recursos (estándar)

  2. Subir plantilla:

    1. Crea un nuevo archivo local llamado AWS-DevOpsAgent-ec2-test.yaml

    2. Copia y pega esta CloudFormation plantilla en el archivo:

      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. En la CloudFormation consola, selecciona Cargar un archivo de plantilla

    4. Elige Elegir archivo

    5. Selecciona el AWS-DevOpsAgent-ec2-test.yaml archivo

    6. Elija Siguiente.

  3. Configure la pila:

    1. Nombre de la pila: AWS-DevOpsAgent-EC2-Test

    2. Parámetros:

      1. VpcId: Seleccione una VPC existente en el menú desplegable.

      2. SubnetId: Selecciona una subred dentro de la VPC que hayas elegido. Para el acceso mediante SSH, la subred debe dirigirse a una puerta de enlace de Internet y la instancia debe tener asociada una dirección IPv4 pública. De lo contrario, la SSHCommand salida estará vacía y las conexiones SSH no se realizarán correctamente.

      3. MyIP: déjalo como predeterminado 0.0.0.0/0 (puedes asegurarlo más adelante si es necesario)

    3. Elija Siguiente.

  4. Configure las opciones de pila:

    1. Deje los valores predeterminados y elija Siguiente

  5. Revise y cree:

    1. Marque Reconozco que eso AWS CloudFormation podría crear recursos de IAM

    2. Seleccione Enviar

  6. Espera a que se complete:

    1. La creación de pilas tarda entre 3 y 5 minutos

    2. El estado cambiará de CREATE_IN_PROGRESS a CREATE_COMPLETE

    3. Importante: ¡Su instancia EC2 ahora forma parte de una CloudFormation pila que AWS DevOpsAgent se puede rastrear!

Opcional: acceso SSH seguro (solo si planea conectarse a la instancia)

Omite este paso si solo quieres ejecutar la prueba automatizada

  1. Localice el grupo de seguridad:

    1. En la AWS consola, vaya a la AWS-DevOpsAgent-EC2-Test pila CloudFormation y selecciónela

    2. Abre la pestaña Salidas y copia el valor de SecurityGroupId (empieza porsg-)

    3. Vaya a EC2 → Grupos de seguridad y pegue el ID en la barra de búsqueda para abrir el grupo de seguridad

  2. Actualice la regla SSH:

    1. Seleccione el grupo de seguridad → pestaña Reglas de entrada → Editar reglas de entrada

    2. Busque la regla SSH (puerto 22)

    3. Cambia la fuente de 0.0.0.0/0 a tu IP: [YOUR_IP]/32

    4. Obtenga su IP de https://whatismyipaddress.com

    5. Seleccione Save rules (Guardar reglas).

Paso 2: Espere a que se ejecute la prueba automática

  1. Ejecución automática de la prueba:

    • La prueba de esfuerzo de la CPU se iniciará automáticamente 5 minutos después del lanzamiento de la instancia

    • No es necesaria ninguna intervención manual; basta con esperar, la prueba se ejecuta completamente en segundo plano

  2. Supervise la prueba:

    • La instancia arranca y prepara la prueba automáticamente

    • El script se ejecutará durante 5 minutos y generará un uso de CPU superior al 70%

    • CloudWatch la alarma debería activarse en un total de 8 a 10 minutos (5 minutos de retraso más de 3 a 5 minutos para la alarma)

  3. Opcional: repetición manual (para pruebas adicionales):

    • Conéctese a su instancia: consola EC2 → → Conectar AWS-DevOpsAgent-Test-Instance Administrador de sesiones

    • Vuelva a ejecutar la prueba de esfuerzo: ./cpu-stress-test.sh

    • Perfecto para probar AWS DevOpsAgent la respuesta varias veces

Opción de prueba B: prueba de tasa de error lambda

Paso 1: Implemente la CloudFormation pila para la prueba de Lambda

  1. Navegue hasta CloudFormation:

    1. En AWS la consola, vaya a CloudFormation

    2. Seleccione Crear pila Con nuevos recursos (estándar)

  2. Subir plantilla:

    1. Crea un nuevo archivo local llamado AWS-DevOpsAgent-lambda-test.yaml

    2. Copia y pega esta CloudFormation plantilla en el archivo:

      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. En la CloudFormation consola, selecciona Cargar un archivo de plantilla

    4. Elige Elegir archivo

    5. Selecciona el AWS-DevOpsAgent-lambda-test.yaml archivo

    6. Elija Siguiente.

  3. Configure la pila:

    1. Nombre de la pila: AWS-DevOpsAgent-Lambda-Test

    2. Elija Siguiente.

  4. Configure las opciones de pila:

    1. Deje los valores predeterminados y elija Siguiente

  5. Revise y cree:

    1. Marque Reconozco que eso AWS CloudFormation podría crear recursos de IAM

    2. Seleccione Enviar

  6. Espera a que se complete:

    1. La creación de pilas tarda entre 2 y 3 minutos

    2. El estado cambiará a CREATE_COMPLETE

Paso 2: Activar errores de Lambda

  1. Navegue hasta la consola Lambda:

    1. Vaya a la consola AWS Lambda

    2. Busque su función AWS-DevOpsAgent-test-lambda

  2. Pruebe la función:

    1. Seleccione la pestaña de prueba

    2. Elige Crear nuevo evento

    3. Nombre del evento: AWS-DevOpsAgent-test-event

    4. Usa esta carga útil de JSON:

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

  3. Genera errores:

    1. Pulse el botón de prueba 3 veces (espere 10 segundos entre cada una)

    2. Cada prueba generará un error intencional

    3. CloudWatch la alarma debería activarse en 2-3 minutos

    4. AWS DevOpsAgentahora deberías poder detectar la alarma con una investigación en la aplicación Operator, que configurarás a continuación.

Valide AWS DevOps Detección de agentes

Paso 1: CloudWatch alarmas para comprobar la integridad física (opcional)

Este paso es para garantizar que las pruebas anteriores estén ahora en estado de alarma.

Para la prueba EC2:

  • En la CloudWatch consola, vaya a Alarmas

  • Espere de 3 a 5 minutos después de iniciar la prueba de esfuerzo

  • La alarma debería mostrarse en estado de alarma

  • Si sigue «bien»: espera otros 2 o 3 minutos (CloudWatch las métricas pueden retrasarse)

Para la prueba Lambda:

  • Compruebe la alarma AWS-DevOpsAgent-Lambda-Error-Test

  • Debería mostrarse en estado de alarma entre 2 y 3 minutos después de realizar las pruebas

Paso 2: Inicie un AWS DevOps Investigación de un agente

  1. Abre tu AWS DevOps agente AgentSpace

  2. Elige Acceso de administrador. Esto abrirá la aplicación web de DevOps Agent Space en una ventana nueva

  3. Seleccione el botón Iniciar investigación

  4. Complete el siguiente formulario:

    1. Detalles de la investigación: describe la investigación que te gustaría llevar a cabo. Incluye todos los detalles que puedas sobre los objetivos de la investigación, las áreas a explorar o la información relevante.

    2. Punto de partida de la investigación: describe la información con la que quieres iniciar la investigación. Puedes mencionar una alarma, una métrica, un fragmento de registro o cualquier otra cosa para que el DevOps agente pueda empezar a trabajar. En este caso, proporcione un resumen de las alarmas que acaba de crear.

    3. Fecha y hora del incidente (se prefiere la norma ISO 8601): YYYY-MM-DDTHH:MMZ

    4. Dé un nombre a su investigación: ejemplo: Oncall_investigation_1:2025-10-27

    5. AWS ID de cuenta del incidente

    6. Región en la que ocurrió el incidente

    7. Prioridad: AWS DevOpsAgent permite realizar 2 investigaciones simultáneas. La prioridad le permite definir el orden de ejecución de sus investigaciones.

  5. Seleccione Investigar para iniciar la investigación.

  6. Selecciona tu investigación en la lista del panel de control. Accederás a la pantalla de detalles de la investigación, donde podrás ver los pasos detallados que está tomando el DevOps agente.

Resultados esperados

Resultados de la prueba EC2:

  • Detecta la alarma de la CPU EC2

  • Identifica la causa principal: «carga de trabajo de pruebas de esfuerzo de la CPU»

  • Muestra el cronograma: Prueba de esfuerzo → Pico de CPU → Alarma

  • Proporciona recomendaciones para la supervisión y el escalado

Resultados de la prueba Lambda:

  • Detecta el pico en la tasa de errores de Lambda

  • Identifica la causa principal: las «excepciones intencionales en las pruebas»

  • Muestra la cronología: Invocaciones de funciones → Errores → Alarma

  • Proporciona recomendaciones para el control y la supervisión de errores

Instrucciones de limpieza

Prueba de limpieza A (prueba EC2)

Limpieza automática

  • La instancia finalizará automáticamente después de 2 horas (integrada en CloudFormation la plantilla)

Limpieza manual (inmediata)

  1. Eliminar CloudFormation pila:

    1. Ir a la CloudFormation consola

    2. Selecciona la AWS-DevOpsAgent-EC2-Test pila

    3. Elija Delete (Eliminar)

    4. Confirme la eliminación

    5. Esto eliminará automáticamente todos los recursos: la instancia EC2, el grupo de seguridad, el par de claves y CloudWatch la alarma

Prueba de limpieza B (prueba lambda)

  1. Eliminar pila CloudFormation :

    1. Ir a la CloudFormation consola

    2. Selecciona la AWS-DevOpsAgent-Lambda-Test pila

    3. Elija Delete (Eliminar)

    4. Confirme la eliminación

    5. Esto eliminará automáticamente todos los recursos: la función Lambda, la función de IAM y la alarma CloudWatch

Resolución de problemas

Problemas comunes

«No se puede conectar a la instancia EC2»

  • Compruebe el grupo de seguridad: asegúrese de que SSH (puerto 22) esté abierto a su IP

  • Compruebe los permisos clave: Ejecute chmod 400 AWS-DevOpsAgent-test-key.pem

  • Verifique la IP pública: la instancia debe tener asignada una IP pública

  • Espere a que llegue la instancia: asegúrese de que la instancia esté en estado «en ejecución»

«La alarma no se activa»

  • Espere a que aparezcan las métricas: CloudWatch las métricas pueden tardar entre 2 y 5 minutos en aparecer

  • Comprueba la carga de la CPU: conecta con SSH a la instancia y ejecútala top para comprobar que la CPU supera el 70%

  • Verifique la prueba de esfuerzo: ps aux | grep yes ejecútela para ver si los procesos de carga se están ejecutando

  • Espera prolongada: a veces, la primera alarma tarda entre 7 y 8 minutos

Validación de prueba

La prueba de su AWS DevOp agente se realiza correctamente cuando:

Validación técnica

  • Precisión de la investigación: los resultados de la prueba EC2 deben indicar correctamente que la alarma se activó debido a la carga de la CPU. El resultado de la prueba Lambda debe indicar que se trató de una falla intencional.

  • Precisión cronológica: se muestra la secuencia correcta de eventos

  • Calidad de la recomendación: se proporcionan sugerencias prácticas