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.
Connectez-vous à AWS la console : https://console.aws.amazon.com
Assurez-vous que vous travaillez sur le même AWS compte que celui où se trouve votre espace d' DevOps agent
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.
Naviguez vers CloudFormation :
Dans AWS la console, recherchez « CloudFormation » et cliquez sur CloudFormation
Cliquez sur Créer une pile > Avec de nouvelles ressources (standard)
Téléchargez le modèle :
Créez un nouveau fichier local appelé
AWS-DevOpsAgent-ec2-test.yamlCopiez et collez ce CloudFormation modèle dans le fichier :
-
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}'
-
Dans la CloudFormation console, sélectionnez Télécharger un fichier modèle
Cliquez sur Choisir un fichier
Sélectionnez le
AWS-DevOpsAgent-ec2-test.yamlfichierCliquez sur Suivant
Configurer la pile :
Nom de la pile :
AWS-DevOpsAgent-EC2-TestParamètres :
MyIP : Laisser par défaut
0.0.0.0/0(vous pouvez le sécuriser ultérieurement si nécessaire)
Cliquez sur Suivant
Configurez les options de pile :
Laissez les valeurs par défaut, cliquez sur Suivant
Vérifiez et créez :
Vérifiez que je reconnais que cela AWS CloudFormation peut créer des ressources IAM
Cliquez sur Soumettre
Attendez la fin :
La création d'une pile prend 3 à 5 minutes
Le statut passera de
CREATE_IN_PROGRESSàCREATE_COMPLETEImportant : 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
Accédez aux groupes de sécurité EC2 :
Dans AWS la console, accédez à EC2 → Groupes de sécurité
Trouvez
AWS-DevOpsAgent-test-sg
Mettre à jour la règle SSH :
Sélectionnez le groupe de sécurité → onglet Règles entrantes → Modifier les règles entrantes
Trouvez la règle SSH (port 22)
Changez la source
0.0.0.0/0de votre adresse IP :[YOUR_IP]/32Obtenez votre adresse IP auprès de https://whatismyipaddress.com
Cliquez sur Enregistrer les règles
Étape 2 : Attendre l'exécution automatique du test
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
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)
Facultatif : réexécution manuelle (pour des tests supplémentaires) :
Connectez-vous à votre instance : console EC2 → → Connect
AWS-DevOpsAgent-Test-Instance→ Gestionnaire de sessionRéexécutez le test de stress :
./cpu-stress-test.shParfait 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
Naviguez vers CloudFormation :
Dans AWS la console, accédez à CloudFormation
Cliquez sur Créer une pile → Avec de nouvelles ressources (standard)
Téléchargez le modèle :
Créez un nouveau fichier local appelé
AWS-DevOpsAgent-lambda-test.yamlCopiez et collez ce CloudFormation modèle dans le fichier :
-
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'
-
Dans la CloudFormation console, sélectionnez Télécharger un fichier modèle
Cliquez sur Choisir un fichier
Sélectionnez le
AWS-DevOpsAgent-lambda-test.yamlfichierCliquez sur Suivant
Configurer la pile :
Nom de la pile :
AWS-DevOpsAgent-Lambda-TestCliquez sur Suivant
Configurez les options de pile :
Laissez les valeurs par défaut, cliquez sur Suivant
Vérifiez et créez :
Vérifiez que je reconnais que cela AWS CloudFormation peut créer des ressources IAM
Cliquez sur Soumettre
Attendez la fin :
La création d'une pile prend 2 à 3 minutes
Le statut passera à
CREATE_COMPLETE
Étape 2 : Déclencher des erreurs Lambda
Accédez à la console Lambda :
Accéder à la console AWS Lambda
Trouvez votre fonction
AWS-DevOpsAgent-test-lambda
Testez la fonction :
Cliquez sur l'onglet Test
Cliquez sur Créer un nouvel événement
Nom de l'événement :
AWS-DevOpsAgent-test-eventUtilisez cette charge utile JSON :
-
{ "test": "AWS DevOpsAgent validation", "timestamp": "2024-01-01T00:00:00Z" }
-
Cliquez sur Enregistrer
Générer des erreurs :
Cliquez sur le bouton Test 3 fois (attendez 10 secondes entre chaque)
Chaque test générera une erreur intentionnelle
CloudWatch l'alarme devrait se déclencher dans les 2 à 3 minutes
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-TestalarmeDevrait 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
Ouvrez votre AWS DevOps agent AgentSpace
Cliquez sur Accès administrateur. Cela ouvrira l'application Web DevOps Agent Space dans une nouvelle fenêtre
Cliquez sur le bouton Démarrer l'enquête sur le côté droit de l'écran
Complétez le formulaire suivant :
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.
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.
Date et heure de l'incident (norme ISO 8601 préférée) ::MMZ YYYY-MM-DDTHH
Donnez un nom à votre enquête : exemple :
Oncall_investigation_1:2025-10-27AWS Numéro de compte associé à l'incident
Région où l'incident s'est produit
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.
Cliquez sur Enquêter pour lancer l'enquête.
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)
Supprimer la CloudFormation pile :
Accéder à la CloudFormation console
Sélectionnez une
AWS-DevOpsAgent-EC2-TestpileCliquez sur Supprimer
Confirmer la suppression
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)
Supprimer la CloudFormation pile :
Accéder à la CloudFormation console
Sélectionnez une
AWS-DevOpsAgent-Lambda-TestpileCliquez sur Supprimer
Confirmer la suppression
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.pemVé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
tople processeur est supérieur à 70 %Vérifier le test de résistance : exécuter
ps aux | grep yespour voir si les processus de chargement sont en cours d'exécutionAttente 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