View a markdown version of this page

Création d'un environnement de test - AWS DevOps Agent

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Création d'un environnement de test

Ce guide propose des tests pratiques pour valider la fonctionnalité de réponse aux incidents de l' AWS DevOps agent à l'aide d'un exemple d'architecture. Utilisez ce supplément si vous souhaitez tester l' DevOps agent avant de connecter vos systèmes de production.

Conditions préalables

  • AWS compte avec accès administratif

  • AWS DevOps Espace d'agent créé et configuré à l'aide du flux de rôles d' DevOps agent Auto Create

Vue d'ensemble des coûts et de la sécurité

Protection des coûts

  • Test EC2 : GRATUIT (niveau AWS gratuit) ou ~0,02 $ pour 2 heures

  • Test Lambda : GRATUIT (niveau gratuit de 1 million requests/month )

  • CloudWatch: GRATUIT (10 alarmes, mesures de base incluses)

  • Coût total estimé prévu : 0,00$ - 0,05$ pour un test complet

Caractéristiques de sécurité de ces tests

  • Arrêt automatique : arrêt automatique intégré

  • Éligibilité au niveau gratuit : utilise les plus petits types d'instances

  • Champ d'application limité : ressources de test isolées et minimales

  • Nettoyage facile : étapes simples sur console pour tout retirer

  • Aucun impact sur la production : environnement de test complètement séparé

Configurez votre AWS compte pour les tests

Important

Les ressources d'infrastructure doivent être déployées dans le AWS compte sur lequel vous avez créé le compte cloud principal de votre DevOps Agent Space. La région spécifique n'a pas d'importance.

  1. Connectez-vous à AWS la console : https://console.aws.amazon.com

  2. Assurez-vous que vous travaillez sur le même AWS compte que celui où se trouve votre espace d' DevOps agent

  3. Vous pouvez utiliser n'importe quelle région pour vos ressources de test

Note

Le mappage 1:1 entre le compte principal de votre DevOps agent et les ressources de l'environnement de test que vous créez simplifie la configuration des tests. Vous pouvez facilement étendre votre espace d' DevOps agent pour inclure des comptes secondaires et permettre des enquêtes entre comptes.

Choisissez votre test

Vous pouvez exécuter l'un des tests indépendamment ou les deux ensemble :

Option de test A : test de capacité du processeur EC2

Objectif : valider la capacité de l' AWS DevOps agent à détecter et à étudier les problèmes de performance EC2

Temps estimé : 5 minutes de configuration+10 minutes d'exécution automatique

Difficulté : Entièrement automatisé (aucune étape manuelle requise)

Option de test B : test du taux d'erreur Lambda

Objectif : Valider la capacité de l' AWS DevOps agent à détecter et à étudier les erreurs liées aux fonctions Lambda

Temps estimé : 10 minutes de configuration + 2 minutes de déclenchement

Difficulté : Très facile

Option de test A : test de capacité du processeur EC2

Étape 1 : Déployer la CloudFormation pile pour le test EC2

Nous les utiliserons CloudFormation pour créer nos ressources de test, ce qui permettra à AWS DevOps l'agent de les suivre et de les étudier correctement.

  1. Naviguez vers CloudFormation :

    1. Dans AWS la console, recherchez « CloudFormation » et cliquez sur CloudFormation

    2. Cliquez sur Créer une pile > Avec de nouvelles ressources (standard)

  2. Téléchargez le modèle :

    1. Créez un nouveau fichier local appelé AWS-DevOpsAgent-ec2-test.yaml

    2. Copiez et collez ce CloudFormation modèle dans le fichier :

      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. Dans la CloudFormation console, sélectionnez Télécharger un fichier modèle

    4. Cliquez sur Choisir un fichier

    5. Sélectionnez le AWS-DevOpsAgent-ec2-test.yaml fichier

    6. Cliquez sur Suivant

  3. Configurer la pile :

    1. Nom de la pile : AWS-DevOpsAgent-EC2-Test

    2. Paramètres :

      1. MyIP : Laisser par défaut 0.0.0.0/0 (vous pouvez le sécuriser ultérieurement si nécessaire)

    3. Cliquez sur Suivant

  4. Configurez les options de pile :

    1. Laissez les valeurs par défaut, cliquez sur Suivant

  5. Vérifiez et créez :

    1. Vérifiez que je reconnais que cela AWS CloudFormation peut créer des ressources IAM

    2. Cliquez sur Soumettre

  6. Attendez la fin :

    1. La création d'une pile prend 3 à 5 minutes

    2. Le statut passera de CREATE_IN_PROGRESS à CREATE_COMPLETE

    3. Important : votre instance EC2 fait désormais partie d'une CloudFormation pile AWS DevOpsAgent capable de suivre !

Facultatif : accès SSH sécurisé (uniquement si vous prévoyez de vous connecter à l'instance)

Ignorez cette étape si vous souhaitez simplement exécuter le test automatique

  1. Accédez aux groupes de sécurité EC2 :

    1. Dans AWS la console, accédez à EC2 → Groupes de sécurité

    2. Trouvez AWS-DevOpsAgent-test-sg

  2. Mettre à jour la règle SSH :

    1. Sélectionnez le groupe de sécurité → onglet Règles entrantesModifier les règles entrantes

    2. Trouvez la règle SSH (port 22)

    3. Changez la source 0.0.0.0/0 de votre adresse IP : [YOUR_IP]/32

    4. Obtenez votre adresse IP auprès de https://whatismyipaddress.com

    5. Cliquez sur Enregistrer les règles

Étape 2 : Attendre l'exécution automatique du test

  1. Exécution automatique des tests :

    • Le test de stress du processeur démarre automatiquement 5 minutes après le lancement de l'instance

    • Aucune intervention manuelle requise : attendez, le test s'exécute complètement en arrière-plan

  2. Surveillez le test :

    • L'instance démarre et prépare le test automatiquement

    • Le script s'exécutera pendant 5 minutes et générera une utilisation du processeur supérieure à 70 %

    • CloudWatch l'alarme devrait se déclencher dans un délai de 8 à 10 minutes au total (délai de 5 minutes + 3 à 5 minutes pour l'alarme)

  3. Facultatif : réexécution manuelle (pour des tests supplémentaires) :

    • Connectez-vous à votre instance : console EC2 → → Connect AWS-DevOpsAgent-Test-Instance → Gestionnaire de session

    • Réexécutez le test de stress : ./cpu-stress-test.sh

    • Parfait pour tester AWS DevOpsAgent la réponse à plusieurs reprises

Option de test B : test du taux d'erreur Lambda

Étape 1 : Déployer la CloudFormation pile pour le test Lambda

  1. Naviguez vers CloudFormation :

    1. Dans AWS la console, accédez à CloudFormation

    2. Cliquez sur Créer une pileAvec de nouvelles ressources (standard)

  2. Téléchargez le modèle :

    1. Créez un nouveau fichier local appelé AWS-DevOpsAgent-lambda-test.yaml

    2. Copiez et collez ce CloudFormation modèle dans le fichier :

      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. Dans la CloudFormation console, sélectionnez Télécharger un fichier modèle

    4. Cliquez sur Choisir un fichier

    5. Sélectionnez le AWS-DevOpsAgent-lambda-test.yaml fichier

    6. Cliquez sur Suivant

  3. Configurer la pile :

    1. Nom de la pile : AWS-DevOpsAgent-Lambda-Test

    2. Cliquez sur Suivant

  4. Configurez les options de pile :

    1. Laissez les valeurs par défaut, cliquez sur Suivant

  5. Vérifiez et créez :

    1. Vérifiez que je reconnais que cela AWS CloudFormation peut créer des ressources IAM

    2. Cliquez sur Soumettre

  6. Attendez la fin :

    1. La création d'une pile prend 2 à 3 minutes

    2. Le statut passera à CREATE_COMPLETE

Étape 2 : Déclencher des erreurs Lambda

  1. Accédez à la console Lambda :

    1. Accéder à la console AWS Lambda

    2. Trouvez votre fonction AWS-DevOpsAgent-test-lambda

  2. Testez la fonction :

    1. Cliquez sur l'onglet Test

    2. Cliquez sur Créer un nouvel événement

    3. Nom de l'événement : AWS-DevOpsAgent-test-event

    4. Utilisez cette charge utile JSON :

      1. { "test": "AWS DevOpsAgent validation", "timestamp": "2024-01-01T00:00:00Z" }
    5. Cliquez sur Enregistrer

  3. Générer des erreurs :

    1. Cliquez sur le bouton Test 3 fois (attendez 10 secondes entre chaque)

    2. Chaque test générera une erreur intentionnelle

    3. CloudWatch l'alarme devrait se déclencher dans les 2 à 3 minutes

    4. AWS DevOpsAgentdevrait désormais être en mesure de détecter l'alarme grâce à une investigation dans l'application Operator que vous allez configurer ensuite.

Valider la détection des AWS DevOps agents

Étape 1 : CloudWatch alarmes de contrôle d'intégrité (en option)

Cette étape permet de s'assurer que les tests ci-dessus sont maintenant en état d'alarme.

Pour le test EC2 :

  • Dans CloudWatch la console, accédez à Alarmes

  • Attendez 3 à 5 minutes après le début du test de stress

  • Votre alarme devrait afficher « En état d'alarme »

  • Si le message est toujours « OK » : attendez encore 2 à 3 minutes (CloudWatch les mesures peuvent être retardées)

Pour le test Lambda :

  • Vérifiez l'AWS-DevOpsAgent-Lambda-Error-Testalarme

  • Devrait s'afficher en alarme dans les 2 à 3 minutes suivant l'exécution des tests

Étape 2 : Lancer une enquête sur un AWS DevOps agent

  1. Ouvrez votre AWS DevOps agent AgentSpace

  2. Cliquez sur Accès administrateur. Cela ouvrira l'application Web DevOps Agent Space dans une nouvelle fenêtre

  3. Cliquez sur le bouton Démarrer l'enquête sur le côté droit de l'écran

  4. Complétez le formulaire suivant :

    1. Détails de l'enquête : Décrivez l'enquête que vous souhaitez mener. Incluez tous les détails possibles sur les objectifs de l'enquête, les domaines à explorer ou les informations pertinentes.

    2. Point de départ de l'enquête : Décrivez les informations à partir desquelles vous souhaitez démarrer l'enquête. Vous pouvez mentionner une alarme, une métrique, un extrait de journal ou tout autre élément pour donner à l' DevOps Agent un point de départ à partir duquel travailler. Dans ce cas, fournissez un résumé des alarmes que vous venez de créer.

    3. Date et heure de l'incident (norme ISO 8601 préférée) ::MMZ YYYY-MM-DDTHH

    4. Donnez un nom à votre enquête : exemple : Oncall_investigation_1:2025-10-27

    5. AWS Numéro de compte associé à l'incident

    6. Région où l'incident s'est produit

    7. Priorité : AWS DevOpsAgent permet de mener deux enquêtes simultanées. La Priorité vous permet de définir l'ordre d'exécution de vos enquêtes.

  5. Cliquez sur Enquêter pour lancer l'enquête.

  6. Cliquez sur votre enquête répertoriée dans le tableau de bord. Vous serez redirigé vers l'écran Détails de l'enquête où vous pourrez voir les étapes détaillées suivies par DevOps l'agent.

Résultats attendus

Résultats du test EC2 :

  • Détecte l'alarme du processeur EC2

  • Identifie la cause première : « Charge de travail liée aux tests de stress du processeur »

  • Affiche la chronologie : Stress test → CPU spike → Alarm

  • Fournit des recommandations pour la surveillance et le dimensionnement

Résultats du test Lambda :

  • Détecte le pic du taux d'erreur Lambda

  • Identifie la cause première : « Exceptions de test intentionnelles »

  • Affiche la chronologie : Invocations de fonctions → Erreurs → Alarme

  • Fournit des recommandations pour la gestion et la surveillance des erreurs

Instructions de nettoyage

Test de nettoyage A (test EC2)

Nettoyage automatique

  • L'instance se terminera automatiquement au bout de 2 heures (intégrée au CloudFormation modèle)

Nettoyage manuel (immédiat)

  1. Supprimer la CloudFormation pile :

    1. Accéder à la CloudFormation console

    2. Sélectionnez une AWS-DevOpsAgent-EC2-Test pile

    3. Cliquez sur Supprimer

    4. Confirmer la suppression

    5. Cela supprimera automatiquement toutes les ressources : instance EC2, groupe de sécurité, paire de clés et alarme CloudWatch

Test de nettoyage B (test Lambda)

  1. Supprimer la CloudFormation pile :

    1. Accéder à la CloudFormation console

    2. Sélectionnez une AWS-DevOpsAgent-Lambda-Test pile

    3. Cliquez sur Supprimer

    4. Confirmer la suppression

    5. Cela supprimera automatiquement toutes les ressources : fonction Lambda, rôle IAM et alarme CloudWatch

Résolution des problèmes

Problèmes courants

« Impossible de se connecter à l'instance EC2 »

  • Vérifiez le groupe de sécurité : assurez-vous que le SSH (port 22) est ouvert à votre adresse IP

  • Vérifier les autorisations clés : Exécuter chmod 400 AWS-DevOpsAgent-test-key.pem

  • Vérifier l'adresse IP publique : l'instance doit avoir une adresse IP publique attribuée

  • Attendre l'instance : assurez-vous que l'instance est en état « En cours d'exécution »

« L'alarme ne se déclenche pas »

  • Attendre les mesures : CloudWatch les mesures peuvent prendre de 2 à 5 minutes pour apparaître

  • Vérifiez la charge du processeur : SSH vers l'instance et exécutez pour vérifier que top le processeur est supérieur à 70 %

  • Vérifier le test de résistance : exécuter ps aux | grep yes pour voir si les processus de chargement sont en cours d'exécution

  • Attente prolongée : le déclenchement de la première alarme prend parfois jusqu'à 7 à 8 minutes

Validation des tests

Le test de votre AWS DevOp agent est réussi lorsque :

Validation technique

  • Précision de l'enquête : les résultats du test EC2 doivent correctement indiquer que l'alarme a été déclenchée en raison de la charge du processeur. Le résultat du test Lambda devrait indiquer qu'il s'agissait d'une défaillance intentionnelle.

  • Précision de la chronologie : séquence correcte des événements affichée

  • Qualité des recommandations : suggestions exploitables fournies