View a markdown version of this page

Eine Testumgebung erstellen - AWS DevOps Agentin

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.

  1. Loggen Sie sich in die AWS Konsole ein: https://console.aws.amazon.com

  2. Stellen Sie sicher, dass Sie mit demselben AWS Konto arbeiten, in dem sich Ihr DevOps Agent Space befindet

  3. 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.

  1. Navigieren Sie zu CloudFormation:

    1. Suchen Sie in der AWS Konsole nach "CloudFormation" und klicken Sie auf CloudFormation

    2. Klicken Sie auf Stack erstellen > Mit neuen Ressourcen (Standard)

  2. Vorlage hochladen:

    1. Erstellen Sie eine neue lokale Datei mit dem Namen AWS-DevOpsAgent-ec2-test.yaml

    2. Kopieren Sie diese CloudFormation Vorlage und fügen Sie sie in die Datei ein:

      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. Wählen Sie in der CloudFormation Konsole die Option Vorlagendatei hochladen

    4. Klicken Sie auf Datei auswählen

    5. Wählen Sie die AWS-DevOpsAgent-ec2-test.yaml Datei

    6. Klicken Sie auf Weiter

  3. Stack konfigurieren:

    1. Name des Stapels: AWS-DevOpsAgent-EC2-Test

    2. Parameter:

      1. MyIP: Als Standard belassen 0.0.0.0/0 (Sie können dies bei Bedarf später sichern)

    3. Klicken Sie auf Weiter

  4. Stack-Optionen konfigurieren:

    1. Behalten Sie die Standardeinstellungen bei und klicken Sie auf Weiter

  5. Überprüfen und erstellen

    1. Markieren Sie Ich bestätige, dass dadurch AWS CloudFormation IAM-Ressourcen erstellt werden könnten

    2. Klicken Sie auf Absenden

  6. Warten Sie auf den Abschluss:

    1. Die Erstellung des Stapels dauert 3—5 Minuten

    2. Der Status ändert sich von CREATE_IN_PROGRESS zu CREATE_COMPLETE

    3. Wichtig: 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

  1. Navigieren Sie zu EC2-Sicherheitsgruppen:

    1. Gehen Sie in der AWS Konsole zu EC2 → Sicherheitsgruppen

    2. Finden Sie AWS-DevOpsAgent-test-sg

  2. SSH-Regel aktualisieren:

    1. Wählen Sie die Sicherheitsgruppe → Registerkarte Regeln für eingehenden Datenverkehr → Regeln für eingehenden Datenverkehr bearbeiten

    2. Suchen Sie die SSH-Regel (Port 22)

    3. Ändern Sie die Quelle von 0.0.0.0/0 zu Ihrer IP: [YOUR_IP]/32

    4. Hol dir deine IP von https://whatismyipaddress.com

    5. Klicken Sie auf Regeln speichern

Schritt 2: Warten Sie auf die automatische Testausführung

  1. 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

  2. Ü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)

  3. Optional: Manueller Wiederholungslauf (für zusätzliche Tests):

    • Connect zu Ihrer Instance her: EC2-Konsole → → Connect AWS-DevOpsAgent-Test-InstanceSession Manager

    • Führen Sie den Stresstest erneut durch: ./cpu-stress-test.sh

    • Perfekt, um AWS DevOpsAgent die Reaktion mehrmals zu testen

Testoption B: Lambda-Fehlerratentest

Schritt 1: CloudFormation Stack für Lambda-Test bereitstellen

  1. Navigieren Sie zu CloudFormation:

    1. Gehen Sie in der AWS Konsole zu CloudFormation

    2. Klicken Sie auf Stack erstellenMit neuen Ressourcen (Standard)

  2. Vorlage hochladen:

    1. Erstellen Sie eine neue lokale Datei mit dem Namen AWS-DevOpsAgent-lambda-test.yaml

    2. Kopieren Sie diese CloudFormation Vorlage und fügen Sie sie in die Datei ein:

      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. Wählen Sie in der CloudFormation Konsole die Option Vorlagendatei hochladen

    4. Klicken Sie auf Datei auswählen

    5. Wählen Sie die AWS-DevOpsAgent-lambda-test.yaml Datei

    6. Klicken Sie auf Weiter

  3. Stack konfigurieren:

    1. Name des Stapels: AWS-DevOpsAgent-Lambda-Test

    2. Klicken Sie auf Weiter

  4. Stack-Optionen konfigurieren:

    1. Behalten Sie die Standardeinstellungen bei und klicken Sie auf Weiter

  5. Überprüfen und erstellen

    1. Markieren Sie Ich bestätige, dass dadurch AWS CloudFormation IAM-Ressourcen erstellt werden könnten

    2. Klicken Sie auf Absenden

  6. Warten Sie auf den Abschluss:

    1. Die Erstellung des Stapels dauert 2-3 Minuten

    2. Der Status wird geändert zu CREATE_COMPLETE

Schritt 2: Lambda-Fehler auslösen

  1. Navigieren Sie zur Lambda-Konsole:

    1. Gehen Sie zur AWS Lambda-Konsole

    2. Finden Sie Ihre Funktion AWS-DevOpsAgent-test-lambda

  2. Testen Sie die Funktion:

    1. Klicken Sie auf die Registerkarte Test

    2. Klicken Sie auf Neues Ereignis erstellen

    3. Name des Ereignisses: AWS-DevOpsAgent-test-event

    4. Verwenden Sie diese JSON-Nutzlast:

      1. { "test": "AWS DevOpsAgent validation", "timestamp": "2024-01-01T00:00:00Z" }
    5. Klicken Sie auf Speichern

  3. Fehler generieren:

    1. Klicken Sie dreimal auf die Testtaste (warten Sie jeweils 10 Sekunden)

    2. Bei jedem Test wird ein absichtlicher Fehler generiert

    3. CloudWatch Der Alarm sollte innerhalb von 2-3 Minuten ausgelöst werden

    4. 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-Test

  • Sollte innerhalb von 2-3 Minuten nach dem Ausführen der Tests als Alarm angezeigt werden

Schritt 2: Starten Sie eine AWS DevOps Agentenuntersuchung

  1. Öffnen Sie Ihren AWS DevOps Agenten AgentSpace

  2. Klicken Sie auf Admin-Zugriff. Dadurch wird die DevOps Agent Space-Web-App in einem neuen Fenster geöffnet

  3. Klicken Sie auf der rechten Seite des Bildschirms auf die Schaltfläche Untersuchung starten

  4. Füllen Sie das folgende Formular aus:

    1. 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.

    2. 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.

    3. Datum und Uhrzeit des Vorfalls (bevorzugt ISO 8601) ::MMZ YYYY-MM-DDTHH

    4. Benennen Sie Ihre Untersuchung: Beispiel: Oncall_investigation_1:2025-10-27

    5. AWS Konto-ID für den Vorfall

    6. Region, in der sich der Vorfall ereignet hat

    7. 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.

  5. Klicken Sie auf Untersuchen, um die Untersuchung zu starten.

  6. 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)

  1. CloudFormation Stapel löschen:

    1. Gehe zur CloudFormation Konsole

    2. Wählen Sie AWS-DevOpsAgent-EC2-Test Stapel

    3. Klicken Sie auf Löschen

    4. Bestätigen Sie das Löschen

    5. Dadurch werden automatisch alle Ressourcen gelöscht: EC2-Instance, Sicherheitsgruppe, key pair und Alarm CloudWatch

Bereinigungstest B (Lambda-Test)

  1. Stapel löschen CloudFormation :

    1. Gehe zur CloudFormation Konsole

    2. Wählen Sie AWS-DevOpsAgent-Lambda-Test Stapel

    3. Klicken Sie auf Löschen

    4. Bestätigen Sie das Löschen

    5. 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 austop, um zu überprüfen, ob die CPU-

  • Überprüfen Sie den Stresstest: Führen Sie ps aux | grep yes ihn aus, um festzustellen, ob Ladeprozesse ausgeführt werden

  • Verlä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