View a markdown version of this page

Menciptakan lingkungan pengujian - AWS DevOps Agen

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menciptakan lingkungan pengujian

Panduan ini menyediakan pengujian langsung untuk memvalidasi fungsionalitas respons insiden AWS DevOps Agen menggunakan arsitektur sampel. Gunakan suplemen ini jika Anda ingin menguji DevOps Agen sebelum menghubungkan sistem produksi Anda.

Prasyarat

  • AWS akun dengan akses administratif

  • AWS DevOps Ruang Agen dibuat dengan dan dikonfigurasi menggunakan alur peran Auto create DevOps Agent

Ikhtisar biaya dan keamanan

Perlindungan biaya

  • Tes EC2: GRATIS (Tingkat AWS Gratis) atau ~ $0,02 selama 2 jam

  • Tes Lambda: GRATIS (tingkat gratis 1M requests/month )

  • CloudWatch: GRATIS (10 alarm, termasuk metrik dasar)

  • Perkiraan biaya total yang diharapkan: $0,00 - $0,05 untuk pengujian lengkap

Fitur keamanan dalam tes ini

  • Pengakhiran otomatis: Shutdown otomatis bawaan

  • Tingkat Gratis memenuhi syarat: Menggunakan jenis instans terkecil

  • Cakupan terbatas: Sumber daya uji minimal dan terisolasi

  • Pembersihan mudah: Langkah-langkah konsol sederhana untuk menghapus semuanya

  • Tidak ada dampak produksi: Lingkungan pengujian yang benar-benar terpisah

Siapkan AWS akun Anda untuk pengujian

penting

Sumber daya infrastruktur perlu digunakan di AWS akun tempat Anda membuat akun cloud utama DevOps Agen Space. Wilayah spesifik tidak masalah.

  1. Masuk ke AWS Konsol: https://console.aws.amazon.com

  2. Pastikan Anda bekerja di AWS akun yang sama di mana Ruang DevOps Agen Anda berada

  3. Anda dapat menggunakan wilayah mana pun untuk sumber daya pengujian Anda

catatan

Pemetaan 1:1 antara akun utama DevOps Agen Anda dan sumber daya lingkungan pengujian yang Anda buat menyederhanakan penyiapan pengujian. Anda dapat dengan mudah memperluas Ruang DevOps Agen Anda untuk memasukkan akun sekunder dan mengaktifkan investigasi lintas akun.

Pilih tes Anda

Anda dapat menjalankan tes secara independen atau keduanya bersama-sama:

Opsi uji A: Uji kapasitas CPU EC2

Tujuan: Validasi kemampuan AWS DevOps Agen untuk mendeteksi dan menyelidiki masalah kinerja EC2

Perkiraan waktu: 5 menit setup +10 menit eksekusi otomatis

Kesulitan: Sepenuhnya otomatis (tidak perlu langkah manual)

Opsi uji B: Tes tingkat kesalahan Lambda

Tujuan: Validasi kemampuan AWS DevOps Agen untuk mendeteksi dan menyelidiki kesalahan fungsi Lambda

Perkiraan waktu: pengaturan 10 menit+2 menit untuk memicu

Kesulitan: Sangat mudah

Opsi uji A: Uji kapasitas CPU EC2

Langkah 1: Menyebarkan CloudFormation tumpukan untuk tes EC2

Kami akan menggunakannya CloudFormation untuk membuat sumber daya pengujian kami, yang memungkinkan AWS DevOps Agen melacak dan menyelidikinya dengan benar.

  1. Arahkan ke CloudFormation:

    1. Di AWS Console, cari "CloudFormation" dan klik CloudFormation

    2. Klik Buat tumpukan> Dengan sumber daya baru (standar)

  2. Unggah templat:

    1. Buat file lokal baru yang disebut AWS-DevOpsAgent-ec2-test.yaml

    2. Salin dan tempel CloudFormation template ini ke dalam file:

      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. Di CloudFormation konsol, pilih Unggah file templat

    4. Klik Pilih berkas

    5. Pilih AWS-DevOpsAgent-ec2-test.yaml file

    6. Klik Berikutnya

  3. Konfigurasikan tumpukan:

    1. Nama tumpukan: AWS-DevOpsAgent-EC2-Test

    2. Parameter:

      1. MyIP: Biarkan sebagai default 0.0.0.0/0 (Anda dapat mengamankan ini nanti jika diperlukan)

    3. Klik Berikutnya

  4. Konfigurasikan opsi tumpukan:

    1. Tinggalkan default, klik Berikutnya

  5. Tinjau dan buat:

    1. Periksa Saya mengakui bahwa AWS CloudFormation mungkin membuat sumber daya IAM

    2. Klik Kirim

  6. Tunggu penyelesaian:

    1. Pembuatan tumpukan membutuhkan waktu 3-5 menit

    2. Status akan berubah dari CREATE_IN_PROGRESS menjadi CREATE_COMPLETE

    3. Penting: Instans EC2 Anda sekarang menjadi bagian dari CloudFormation tumpukan yang AWS DevOpsAgent dapat melacak!

Opsional: Akses SSH aman (hanya jika Anda berencana untuk terhubung ke instans)

Lewati langkah ini jika Anda hanya ingin menjalankan pengujian otomatis

  1. Arahkan ke Grup Keamanan EC2:

    1. Di AWS Konsol, buka EC2 → Grup Keamanan

    2. Menemukan AWS-DevOpsAgent-test-sg

  2. Perbarui aturan SSH:

    1. Pilih grup keamanan → tab Aturan masukEdit aturan masuk

    2. Temukan aturan SSH (port 22)

    3. Ubah sumber dari 0.0.0.0/0 ke IP Anda: [YOUR_IP]/32

    4. Dapatkan IP Anda dari https://whatismyipaddress.com

    5. Klik Simpan aturan

Langkah 2: Tunggu eksekusi tes otomatis

  1. Eksekusi uji otomatis:

    • Tes stress CPU akan secara otomatis dimulai 5 menit setelah peluncuran instance

    • Tidak diperlukan intervensi manual - tunggu saja, tes berjalan sepenuhnya di latar belakang

  2. Pantau tes:

    • Instans melakukan booting dan menyiapkan tes secara otomatis

    • Skrip akan berjalan selama 5 menit dan menghasilkan> 70% penggunaan CPU

    • CloudWatch alarm harus dipicu dalam 8-10 menit total (5 menit penundaan+3-5 menit untuk alarm)

  3. Opsional: Jalankan ulang manual (untuk pengujian tambahan):

    • Connect ke instans Anda: konsol EC2 → → Connect AWS-DevOpsAgent-Test-InstanceSession Manager

    • Jalankan stress test lagi: ./cpu-stress-test.sh

    • Sempurna untuk AWS DevOpsAgent respons pengujian beberapa kali

Opsi uji B: Tes tingkat kesalahan Lambda

Langkah 1: Menyebarkan CloudFormation tumpukan untuk tes Lambda

  1. Arahkan ke CloudFormation:

    1. Di AWS konsol, pergi ke CloudFormation

    2. Klik Buat tumpukanDengan sumber daya baru (standar)

  2. Unggah templat:

    1. Buat file lokal baru yang disebut AWS-DevOpsAgent-lambda-test.yaml

    2. Salin dan tempel CloudFormation template ini ke dalam file:

      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. Di CloudFormation konsol, pilih Unggah file templat

    4. Klik Pilih berkas

    5. Pilih AWS-DevOpsAgent-lambda-test.yaml file

    6. Klik Berikutnya

  3. Konfigurasikan tumpukan:

    1. Nama tumpukan: AWS-DevOpsAgent-Lambda-Test

    2. Klik Berikutnya

  4. Konfigurasikan opsi tumpukan:

    1. Tinggalkan default, klik Berikutnya

  5. Tinjau dan buat:

    1. Periksa Saya mengakui bahwa AWS CloudFormation mungkin membuat sumber daya IAM

    2. Klik Kirim

  6. Tunggu penyelesaian:

    1. Pembuatan tumpukan membutuhkan waktu 2-3 menit

    2. Status akan berubah menjadi CREATE_COMPLETE

Langkah 2: Memicu kesalahan Lambda

  1. Arahkan ke konsol Lambda:

    1. Pergi ke konsol AWS Lambda

    2. Temukan fungsi Anda AWS-DevOpsAgent-test-lambda

  2. Uji fungsinya:

    1. Klik tab Uji

    2. Klik Buat acara baru

    3. Nama acara: AWS-DevOpsAgent-test-event

    4. Gunakan payload JSON ini:

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

  3. Menghasilkan kesalahan:

    1. Klik tombol Uji 3 kali (tunggu 10 detik di antara masing-masing)

    2. Setiap tes akan menghasilkan kesalahan yang disengaja

    3. CloudWatch alarm harus dipicu dalam 2-3 menit

    4. AWS DevOpsAgentseharusnya sekarang dapat mendeteksi alarm dengan Investigasi di aplikasi Operator yang akan Anda atur selanjutnya.

Validasi AWS DevOps Deteksi Agen

Langkah 1: CloudWatch Alarm periksa kewarasan (opsional)

Langkah ini untuk memastikan bahwa tes di atas sekarang dalam keadaan alarm.

Untuk Tes EC2:

  • Di CloudWatch konsol, buka Alarm

  • Tunggu 3-5 menit setelah memulai stress test

  • Alarm Anda harus ditampilkan Dalam keadaan alarm

  • Jika masih “OK”: Tunggu 2-3 menit lagi (CloudWatch metrik dapat ditunda)

Untuk Tes Lambda:

  • Periksa AWS-DevOpsAgent-Lambda-Error-Test alarm

  • Harus ditampilkan Dalam alarm dalam 2-3 menit setelah menjalankan tes

Langkah 2: Mulai Investigasi AWS DevOps Agen

  1. Buka AWS DevOps Agen Anda AgentSpace

  2. Klik Akses admin. Ini akan membuka aplikasi web DevOps Agent Space di jendela baru

  3. Klik tombol Mulai Investigasi di sisi kanan layar

  4. Lengkapi formulir berikut:

    1. Detail investigasi: Jelaskan investigasi yang ingin Anda jalankan. Sertakan detail apa pun yang Anda bisa tentang tujuan investigasi, area untuk dijelajahi, atau informasi yang relevan.

    2. Titik awal investigasi: Jelaskan informasi yang ingin Anda mulai penyelidikan. Anda dapat menyebutkan alarm, metrik, cuplikan log, atau apa pun untuk memberi DevOps Agen titik awal untuk bekerja. Dalam hal ini, berikan ringkasan alarm yang baru saja Anda buat.

    3. Tanggal dan waktu kejadian (ISO 8601 lebih disukai) ::MMZ YYYY-MM-DDTHH

    4. Beri nama investigasi Anda: contoh: Oncall_investigation_1:2025-10-27

    5. AWS ID akun untuk insiden tersebut

    6. Wilayah tempat kejadian itu terjadi

    7. Prioritas - AWS DevOpsAgent memungkinkan untuk dua investigasi bersamaan. Prioritas memungkinkan Anda untuk menentukan urutan pelaksanaan investigasi Anda.

  5. Klik Selidiki untuk meluncurkan penyelidikan.

  6. Klik Investigasi Anda yang tercantum di dasbor. Anda akan dibawa ke layar Detail Investigasi di mana Anda dapat melihat langkah-langkah terperinci yang diambil DevOps Agen.

Hasil yang Diharapkan

Hasil tes EC2:

  • Mendeteksi alarm CPU EC2

  • Mengidentifikasi akar penyebab: “beban kerja pengujian stres CPU”

  • Menampilkan garis waktu: Uji stres → Lonjakan CPU → Alarm

  • Memberikan rekomendasi untuk pemantauan dan penskalaan

Hasil tes Lambda:

  • Mendeteksi lonjakan tingkat kesalahan Lambda

  • Mengidentifikasi akar penyebab: “Pengecualian uji yang disengaja”

  • Menampilkan garis waktu: Pemanggilan fungsi → Kesalahan → Alarm

  • Memberikan rekomendasi untuk penanganan dan pemantauan kesalahan

Instruksi pembersihan

Tes pembersihan A (tes EC2)

Pembersihan otomatis

  • Instance akan otomatis berakhir setelah 2 jam (dibangun ke dalam CloudFormation template)

Pembersihan manual (segera)

  1. Hapus CloudFormation Stack:

    1. Pergi ke CloudFormation konsol

    2. Pilih AWS-DevOpsAgent-EC2-Test tumpukan

    3. Klik Hapus

    4. Konfirmasikan penghapusan

    5. Ini akan secara otomatis menghapus semua sumber daya: instans EC2, grup keamanan, key pair, dan alarm CloudWatch

Tes pembersihan B (tes Lambda)

  1. Hapus CloudFormation Stack:

    1. Pergi ke CloudFormation konsol

    2. Pilih AWS-DevOpsAgent-Lambda-Test tumpukan

    3. Klik Hapus

    4. Konfirmasikan penghapusan

    5. Ini akan secara otomatis menghapus semua sumber daya: Fungsi Lambda, peran IAM, dan alarm CloudWatch

Pemecahan masalah

Masalah umum

“Tidak dapat terhubung ke instans EC2"

  • Periksa Grup Keamanan: Pastikan SSH (port 22) terbuka untuk IP Anda

  • Periksa Izin Kunci: Jalankan chmod 400 AWS-DevOpsAgent-test-key.pem

  • Verifikasi IP Publik: Instance harus memiliki IP publik yang ditetapkan

  • Tunggu Instance: Pastikan instance dalam status “Running”

“Alarm tidak memicu”

  • Tunggu Metrik: CloudWatch metrik dapat memakan waktu 2-5 menit untuk muncul

  • Periksa CPU Load: SSH ke instance dan jalankan top untuk memverifikasi CPU> 70%

  • Verifikasi Uji Stres: Jalankan ps aux | grep yes untuk melihat apakah proses pemuatan sedang berjalan

  • Tunggu Diperpanjang: Terkadang membutuhkan waktu hingga 7-8 menit untuk pemicu alarm pertama

Validasi uji

Pengujian AWS DevOp Agen Anda berhasil ketika:

Validasi teknis

  • Akurasi Investigasi: Hasil tes EC2 harus menunjukkan dengan benar bahwa alarm dipicu karena beban CPU. Hasil tes Lambda harus menunjukkan bahwa ini adalah kegagalan yang disengaja.

  • Akurasi Garis Waktu: Urutan peristiwa yang ditampilkan dengan benar

  • Kualitas Rekomendasi: Saran yang dapat ditindaklanjuti disediakan