Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Eine Testumgebung erstellen
Dieses Handbuch enthält praktische Tests zur Validierung der Incident-Response-Funktionalität des AWS DevOps Agenten anhand einer Beispielarchitektur. Verwenden Sie diese Ergänzung, wenn Sie DevOps Agent testen möchten, bevor Sie Ihre Produktionssysteme anschließen.
Voraussetzungen
AWS Konto mit Administratorzugriff
AWS DevOps Agent Space wurde mit dem Rollenablauf „ DevOps Agent automatisch erstellen“ erstellt und konfiguriert
Überblick über Kosten und Sicherheit
Kostenschutz
EC2-Test: KOSTENLOS (AWS kostenloses Kontingent) oder ~0,02 $ für 2 Stunden
Lambda-Test: KOSTENLOS (1 Mio. € requests/month kostenloses Kontingent)
CloudWatch: KOSTENLOS (10 Alarme, grundlegende Messwerte enthalten)
Voraussichtliche Gesamtkosten: 0,00$ bis 0,05$ für vollständige Tests
Sicherheitsmerkmale bei diesen Tests
Automatische Kündigung: Integrierte automatische Abschaltung
Kostenloses Kontingent berechtigt: Verwendet die kleinsten Instance-Typen
Eingeschränkter Umfang: Minimale, isolierte Testressourcen
Einfache Bereinigung: Einfache Konsolenschritte, um alles zu entfernen
Keine Auswirkungen auf die Produktion: Vollständig separate Testumgebung
Richten Sie Ihr AWS Testkonto ein
Wichtig
Infrastrukturressourcen müssen in dem AWS Konto bereitgestellt werden, in dem Sie das primäre Cloud-Konto Ihres DevOps Agent Space erstellt haben. Die spezifische Region spielt keine Rolle.
Loggen Sie sich in die AWS Konsole ein: https://console.aws.amazon.com
Stellen Sie sicher, dass Sie mit demselben AWS Konto arbeiten, in dem sich Ihr DevOps Agent Space befindet
Sie können jede Region für Ihre Testressourcen verwenden
Anmerkung
Die 1:1 -Zuordnung zwischen dem Hauptkonto Ihres DevOps Agenten und den Ressourcen der Testumgebung, die Sie erstellen, vereinfacht den Testaufbau. Sie können Ihren DevOps Agent-Bereich ganz einfach um sekundäre Konten erweitern und kontenübergreifende Untersuchungen ermöglichen.
Wählen Sie Ihren Test
Sie können einen der Tests unabhängig voneinander oder beide zusammen ausführen:
Testoption A: EC2-CPU-Kapazitätstest
Zweck: Überprüfen Sie, ob der AWS DevOps Agent in der Lage ist, EC2-Leistungsprobleme zu erkennen und zu untersuchen
Geschätzte Zeit: 5 Minuten Einrichtung + 10 Minuten automatische Ausführung
Schwierigkeit: Vollständig automatisiert (keine manuellen Schritte erforderlich)
Testoption B: Lambda-Fehlerratentest
Zweck: Überprüfung der Fähigkeit des AWS DevOps Agenten, Lambda-Funktionsfehler zu erkennen und zu untersuchen
Geschätzte Zeit: 10 Minuten für die Einrichtung +2 Minuten bis zum Auslösen
Schwierigkeitsgrad: Sehr einfach
Testoption A: EC2-CPU-Kapazitätstest
Schritt 1: CloudFormation Stack für den EC2-Test bereitstellen
Wir verwenden CloudFormation , um unsere Testressourcen zu erstellen, die es dem AWS DevOps Agenten ermöglichen, sie ordnungsgemäß zu verfolgen und zu untersuchen.
Navigieren Sie zu CloudFormation:
Suchen Sie in der AWS Konsole nach "CloudFormation" und klicken Sie auf CloudFormation
Klicken Sie auf Stack erstellen > Mit neuen Ressourcen (Standard)
Vorlage hochladen:
Erstellen Sie eine neue lokale Datei mit dem Namen
AWS-DevOpsAgent-ec2-test.yamlKopieren Sie diese CloudFormation Vorlage und fügen Sie sie in die Datei ein:
-
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}'
-
Wählen Sie in der CloudFormation Konsole die Option Vorlagendatei hochladen
Klicken Sie auf Datei auswählen
Wählen Sie die
AWS-DevOpsAgent-ec2-test.yamlDateiKlicken Sie auf Weiter
Stack konfigurieren:
Name des Stapels:
AWS-DevOpsAgent-EC2-TestParameter:
MyIP: Als Standard belassen
0.0.0.0/0(Sie können dies bei Bedarf später sichern)
Klicken Sie auf Weiter
Stack-Optionen konfigurieren:
Behalten Sie die Standardeinstellungen bei und klicken Sie auf Weiter
Überprüfen und erstellen
Markieren Sie Ich bestätige, dass dadurch AWS CloudFormation IAM-Ressourcen erstellt werden könnten
Klicken Sie auf Absenden
Warten Sie auf den Abschluss:
Die Erstellung des Stapels dauert 3—5 Minuten
Der Status ändert sich von
CREATE_IN_PROGRESSzuCREATE_COMPLETEWichtig: Ihre EC2-Instance ist jetzt Teil eines CloudFormation Stacks, der nachverfolgt AWS DevOpsAgent werden kann!
Optional: Sicherer SSH-Zugriff (nur, wenn Sie eine Verbindung zur Instance herstellen möchten)
Überspringen Sie diesen Schritt, wenn Sie nur den automatisierten Test ausführen möchten
Navigieren Sie zu EC2-Sicherheitsgruppen:
Gehen Sie in der AWS Konsole zu EC2 → Sicherheitsgruppen
Finden Sie
AWS-DevOpsAgent-test-sg
SSH-Regel aktualisieren:
Wählen Sie die Sicherheitsgruppe → Registerkarte Regeln für eingehenden Datenverkehr → Regeln für eingehenden Datenverkehr bearbeiten
Suchen Sie die SSH-Regel (Port 22)
Ändern Sie die Quelle von
0.0.0.0/0zu Ihrer IP:[YOUR_IP]/32Hol dir deine IP von https://whatismyipaddress.com
Klicken Sie auf Regeln speichern
Schritt 2: Warten Sie auf die automatische Testausführung
Automatische Testausführung:
Der CPU-Stresstest wird automatisch 5 Minuten nach dem Start der Instance gestartet
Es ist kein manuelles Eingreifen erforderlich — warten Sie einfach, der Test läuft komplett im Hintergrund
Überwachen Sie den Test:
Die Instanz startet und bereitet den Test automatisch vor
Das Skript wird 5 Minuten lang ausgeführt und generiert eine CPU-Auslastung von > 70%
CloudWatch Der Alarm sollte innerhalb von insgesamt 8 bis 10 Minuten ausgelöst werden (5 Minuten Verzögerung + 3 bis 5 Minuten für den Alarm)
Optional: Manueller Wiederholungslauf (für zusätzliche Tests):
Connect zu Ihrer Instance her: EC2-Konsole → → Connect
AWS-DevOpsAgent-Test-Instance→ Session ManagerFühren Sie den Stresstest erneut durch:
./cpu-stress-test.shPerfekt, um AWS DevOpsAgent die Reaktion mehrmals zu testen
Testoption B: Lambda-Fehlerratentest
Schritt 1: CloudFormation Stack für Lambda-Test bereitstellen
Navigieren Sie zu CloudFormation:
Gehen Sie in der AWS Konsole zu CloudFormation
Klicken Sie auf Stack erstellen → Mit neuen Ressourcen (Standard)
Vorlage hochladen:
Erstellen Sie eine neue lokale Datei mit dem Namen
AWS-DevOpsAgent-lambda-test.yamlKopieren Sie diese CloudFormation Vorlage und fügen Sie sie in die Datei ein:
-
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'
-
Wählen Sie in der CloudFormation Konsole die Option Vorlagendatei hochladen
Klicken Sie auf Datei auswählen
Wählen Sie die
AWS-DevOpsAgent-lambda-test.yamlDateiKlicken Sie auf Weiter
Stack konfigurieren:
Name des Stapels:
AWS-DevOpsAgent-Lambda-TestKlicken Sie auf Weiter
Stack-Optionen konfigurieren:
Behalten Sie die Standardeinstellungen bei und klicken Sie auf Weiter
Überprüfen und erstellen
Markieren Sie Ich bestätige, dass dadurch AWS CloudFormation IAM-Ressourcen erstellt werden könnten
Klicken Sie auf Absenden
Warten Sie auf den Abschluss:
Die Erstellung des Stapels dauert 2-3 Minuten
Der Status wird geändert zu
CREATE_COMPLETE
Schritt 2: Lambda-Fehler auslösen
Navigieren Sie zur Lambda-Konsole:
Gehen Sie zur AWS Lambda-Konsole
Finden Sie Ihre Funktion
AWS-DevOpsAgent-test-lambda
Testen Sie die Funktion:
Klicken Sie auf die Registerkarte Test
Klicken Sie auf Neues Ereignis erstellen
Name des Ereignisses:
AWS-DevOpsAgent-test-eventVerwenden Sie diese JSON-Nutzlast:
-
{ "test": "AWS DevOpsAgent validation", "timestamp": "2024-01-01T00:00:00Z" }
-
Klicken Sie auf Speichern
Fehler generieren:
Klicken Sie dreimal auf die Testtaste (warten Sie jeweils 10 Sekunden)
Bei jedem Test wird ein absichtlicher Fehler generiert
CloudWatch Der Alarm sollte innerhalb von 2-3 Minuten ausgelöst werden
AWS DevOpsAgentsollte nun in der Lage sein, den Alarm mit einer Untersuchung in der Operator-App zu erkennen, die Sie als Nächstes einrichten werden.
Bestätigen Sie die AWS DevOps Agentenerkennung
Schritt 1: CloudWatch Alarme zur Überprüfung der Integrität (optional)
Mit diesem Schritt wird sichergestellt, dass sich die oben genannten Tests jetzt im Alarmzustand befinden.
Für den EC2-Test:
Gehen Sie in der CloudWatch Konsole zu Alarme
Warten Sie nach dem Start des Stresstests 3-5 Minuten
Ihr Alarm sollte Im Alarmzustand angezeigt werden
Falls immer noch „OK“: Warten Sie weitere 2-3 Minuten (die CloudWatch Messwerte können sich verzögern)
Für den Lambda-Test:
Alarmanlage überprüfen
AWS-DevOpsAgent-Lambda-Error-TestSollte innerhalb von 2-3 Minuten nach dem Ausführen der Tests als Alarm angezeigt werden
Schritt 2: Starten Sie eine AWS DevOps Agentenuntersuchung
Öffnen Sie Ihren AWS DevOps Agenten AgentSpace
Klicken Sie auf Admin-Zugriff. Dadurch wird die DevOps Agent Space-Web-App in einem neuen Fenster geöffnet
Klicken Sie auf der rechten Seite des Bildschirms auf die Schaltfläche Untersuchung starten
Füllen Sie das folgende Formular aus:
Einzelheiten der Untersuchung: Beschreiben Sie die Untersuchung, die Sie durchführen möchten. Geben Sie alle möglichen Details zu den Ermittlungszielen, zu erforschenden Bereichen oder zu relevanten Informationen an.
Ausgangspunkt der Untersuchung: Beschreiben Sie die Informationen, mit denen Sie die Untersuchung beginnen möchten. Sie können einen Alarm, eine Metrik, einen Protokollausschnitt oder etwas anderes angeben, um dem DevOps Agenten einen Ausgangspunkt zu geben, von dem aus er arbeiten kann. Geben Sie in diesem Fall eine Zusammenfassung der Alarme an, die Sie gerade erstellt haben.
Datum und Uhrzeit des Vorfalls (bevorzugt ISO 8601) ::MMZ YYYY-MM-DDTHH
Benennen Sie Ihre Untersuchung: Beispiel:
Oncall_investigation_1:2025-10-27AWS Konto-ID für den Vorfall
Region, in der sich der Vorfall ereignet hat
Priorität — AWS DevOpsAgent ermöglicht zwei gleichzeitige Untersuchungen. Mit der Priorität können Sie die Reihenfolge festlegen, in der Ihre Untersuchungen ausgeführt werden.
Klicken Sie auf Untersuchen, um die Untersuchung zu starten.
Klicken Sie auf Ihre Untersuchung, die im Dashboard aufgeführt ist. Sie werden zum Bildschirm mit den Ermittlungsdetails weitergeleitet, auf dem Sie die detaillierten Schritte sehen können, die der DevOps Agent unternimmt.
Erwartete Ergebnisse
EC2-Testergebnisse:
Erkennt den EC2-CPU-Alarm
Identifiziert die Hauptursache: „CPU-Stresstest-Workload“
Zeigt den Zeitplan an: Stresstest → CPU-Spitze → Alarm
Bietet Empfehlungen für die Überwachung und Skalierung
Lambda-Testergebnisse:
Erkennt einen Anstieg der Lambda-Fehlerrate
Identifiziert die Hauptursache: „Absichtliche Testausnahmen“
Zeigt die Zeitleiste an: Funktionsaufrufe → Fehler → Alarm
Bietet Empfehlungen zur Fehlerbehandlung und -überwachung
Anweisungen zur Säuberung
Bereinigungstest A (EC2-Test)
Automatische Säuberung
Die Instanz wird nach 2 Stunden automatisch beendet (in die CloudFormation Vorlage integriert)
Manuelle Bereinigung (sofort)
CloudFormation Stapel löschen:
Gehe zur CloudFormation Konsole
Wählen Sie
AWS-DevOpsAgent-EC2-TestStapelKlicken Sie auf Löschen
Bestätigen Sie das Löschen
Dadurch werden automatisch alle Ressourcen gelöscht: EC2-Instance, Sicherheitsgruppe, key pair und Alarm CloudWatch
Bereinigungstest B (Lambda-Test)
Stapel löschen CloudFormation :
Gehe zur CloudFormation Konsole
Wählen Sie
AWS-DevOpsAgent-Lambda-TestStapelKlicken Sie auf Löschen
Bestätigen Sie das Löschen
Dadurch werden automatisch alle Ressourcen gelöscht: Lambda-Funktion, IAM-Rolle und Alarm CloudWatch
Fehlerbehebung
Häufige Probleme
„Es kann keine Verbindung zur EC2-Instance hergestellt werden“
Überprüfen Sie die Sicherheitsgruppe: Stellen Sie sicher, dass SSH (Port 22) für Ihre IP geöffnet ist
Überprüfen Sie die wichtigsten Berechtigungen: Ausführen
chmod 400 AWS-DevOpsAgent-test-key.pemÖffentliche IP überprüfen: Der Instanz muss eine öffentliche IP zugewiesen sein
Auf Instanz warten: Stellen Sie sicher, dass sich die Instanz im Status „Running“ befindet
„Alarm wird nicht ausgelöst“
Warten Sie auf CloudWatch Metriken: Es kann 2-5 Minuten dauern, bis Metriken angezeigt werden
Überprüfen Sie die CPU-Auslastung: Stellen Sie eine SSH-Verbindung zur Instanz her und führen Sie die Ausführung aus
top, um zu überprüfen, ob die CPU-Überprüfen Sie den Stresstest: Führen Sie
ps aux | grep yesihn aus, um festzustellen, ob Ladeprozesse ausgeführt werdenVerlängerte Wartezeit: Manchmal dauert es bis zu 7-8 Minuten, bis der erste Alarm ausgelöst wird
Testvalidierung
Ihr AWS DevOp Agententest ist erfolgreich, wenn:
Technische Validierung
Genauigkeit der Untersuchung: Die Ergebnisse des EC2-Tests sollten korrekt darauf hinweisen, dass der Alarm aufgrund einer CPU-Last ausgelöst wurde. Das Ergebnis des Lambda-Tests sollte darauf hindeuten, dass es sich um einen vorsätzlichen Fehler handelte.
Genauigkeit des Zeitplans: Die korrekte Reihenfolge der Ereignisse wird angezeigt
Qualität der Empfehlungen: Es wurden umsetzbare Vorschläge gemacht