Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Membuat lingkungan pengujian
Panduan ini menyediakan tes 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 DevOps Agen buat otomatis
Untuk pengujian EC2: VPC yang ada dengan setidaknya satu subnet di wilayah tempat Anda akan menerapkan.
Ikhtisar biaya dan keamanan
Perlindungan biaya
Tes EC2: GRATIS (Tingkat AWS Gratis) atau ~ $0.02 selama 2 jam
Tes Lambda: GRATIS (tingkat requests/month gratis 1M)
CloudWatch: GRATIS (10 alarm, termasuk metrik dasar)
Perkiraan total biaya yang diharapkan: $0.00 - $0.05 untuk pengujian lengkap
Fitur keamanan dalam tes ini
Auto-termination: pen Built-in utupan otomatis
Memenuhi syarat Tingkat Gratis: Menggunakan jenis instans terkecil
Ruang lingkup 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 Anda AWS akun untuk pengujian
penting
Sumber daya infrastruktur perlu digunakan di AWS akun tempat Anda membuat akun cloud utama Ruang DevOps Agen Anda. Wilayah spesifik tidak masalah.
Masuk ke AWS Konsol: https://console.aws.amazon.com
Pastikan Anda bekerja di AWS akun yang sama tempat Ruang DevOps Agen Anda berada
Anda dapat menggunakan wilayah apa 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 pengaturan pengujian. Anda dapat dengan mudah memperluas Ruang DevOps Agen Anda untuk menyertakan akun sekunder dan mengaktifkan penyelidikan lintas akun.
Pilih tes Anda
Anda dapat menjalankan tes secara independen atau keduanya bersama-sama:
Opsi uji A: Tes kapasitas CPU EC2
Tujuan: Validasi kemampuan AWS DevOps Agen untuk mendeteksi dan menyelidiki masalah kinerja EC2
Perkiraan waktu: 5 menit pengaturan + 10 menit eksekusi otomatis
Kesulitan: Sepenuhnya otomatis (tidak diperlukan langkah manual)
Opsi pengujian 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: Tes kapasitas CPU EC2
Langkah 1: Terapkan tum CloudFormation pukan untuk pengujian EC2
Kami akan menggunakan CloudFormation untuk membuat sumber daya pengujian kami, yang memungkinkan AWS DevOps Agen melacak dan menyelidikinya dengan benar.
Arahkan ke CloudFormation:
Di AWS Konsol, cari "CloudFormation" dan pilih CloudFormation
Pilih Buat tumpukan > Dengan sumber daya baru (standar)
Unggah template:
Buat file lokal baru yang disebut
AWS-DevOpsAgent-ec2-test.yamlSalin dan tempel CloudFormation template ini ke dalam file:
-
AWSTemplateFormatVersion: '2010-09-09' Description: 'AWS DevOps Agent EC2 CPU Test Stack' Parameters: VpcId: Type: AWS::EC2::VPC::Id Description: ID of an existing VPC where the test instance will be launched. SubnetId: Type: AWS::EC2::Subnet::Id Description: ID of an existing subnet within the selected VPC. Choose a subnet that routes to an internet gateway if you plan to connect via SSH. 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: GroupDescription: AWS DevOps Agent beta testing security group VpcId: !Ref VpcId 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 # IAM Role for Session Manager access SSMInstanceRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: ec2.amazonaws.com Action: sts:AssumeRole ManagedPolicyArns: - arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore Tags: - Key: Name Value: AWS-DevOpsAgent-Test-SSMRole - Key: Purpose Value: AWS-DevOpsAgent-Testing # Instance profile wrapping the SSM role SSMInstanceProfile: Type: AWS::IAM::InstanceProfile Properties: Roles: - !Ref SSMInstanceRole # 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 SubnetId: !Ref SubnetId SecurityGroupIds: - !GetAtt TestSecurityGroup.GroupId IamInstanceProfile: !Ref SSMInstanceProfile InstanceInitiatedShutdownBehavior: terminate 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: !GetAtt TestSecurityGroup.GroupId 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}'
-
Di CloudFormation konsol, pilih Unggah file template
Pilih Pilih file
Pilih
AWS-DevOpsAgent-ec2-test.yamlfilePilih Berikutnya
Konfigurasikan tumpukan:
Nama tumpukan:
AWS-DevOpsAgent-EC2-TestParameter:
VpcId: Pilih VPC yang ada dari dropdown.
SubnetId: Pilih subnet dalam VPC yang Anda pilih. Untuk akses SSH, subnet harus merutekan ke gateway internet, dan instance harus memiliki alamat IPv4 publik yang terkait. Jika tidak,
SSHCommandoutput akan kosong dan koneksi SSH tidak akan berhasil.MyIP: Tinggalkan sebagai default
0.0.0.0/0(Anda dapat mengamankan ini nanti jika diperlukan)
Pilih Berikutnya
Konfigurasikan opsi tumpukan:
Tinggalkan default, pilih Berikutnya
Tinjau dan buat:
Periksa Saya mengakui bahwa AWS CloudFormation mungkin membuat sumber daya IAM
Pilih K irim
Tunggu penyelesaian:
Pembuatan tumpukan membutuhkan waktu 3-5 menit
Status akan berubah dari
CREATE_IN_PROGRESSkeCREATE_COMPLETEPenting: 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 instance)
Lewati langkah ini jika Anda hanya ingin menjalankan pengujian otomatis
Temukan grup keamanan:
Di AWS Konsol, buka CloudFormation dan pilih
AWS-DevOpsAgent-EC2-TesttumpukanBuka tab Output dan salin nilai
SecurityGroupId(dimulai dengansg-)Buka EC2 → Grup Keamanan dan tempel ID ke bilah pencarian untuk membuka grup keamanan
Perbarui aturan SSH:
Pilih grup keamanan → tab Aturan masuk → Edit aturan masuk
Temukan aturan SSH (port 22)
Ubah sumber dari
0.0.0.0/0ke IP Anda:[YOUR_IP]/32Dapatkan IP Anda dari https://whatismyipaddress.com
Pilih Simpan aturan
Langkah 2: Tunggu eksekusi tes otomatis
Eksekusi tes otomatis:
Tes stres CPU akan secara otomatis dimulai 5 menit setelah peluncuran instance
Tidak diperlukan intervensi manual - tunggu saja, tes berjalan sepenuhnya di latar belakang
Pantau tes:
Instance melakukan boot 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 (penundaan 5 menit + 3-5 menit untuk alarm)
Opsional: Jalankan ulang manual (untuk pengujian tambahan):
Hubungkan ke instans Anda: Konsol EC2 → → Hubun gkan
AWS-DevOpsAgent-Test-Instance→ Manajer S esiJalankan tes stres lagi:
./cpu-stress-test.shSempurna untuk pengujian AWS DevOpsAgent respons beberapa kali
Opsi pengujian B: Tes tingkat kesalahan lambda
Langkah 1: Terapkan tum CloudFormation pukan untuk uji Lambda
Arahkan ke CloudFormation:
Di AWS Konsol, buka CloudFormation
Pilih Buat tumpukan → Dengan sumber daya baru (standar)
Unggah template:
Buat file lokal baru yang disebut
AWS-DevOpsAgent-lambda-test.yamlSalin dan tempel CloudFormation template ini ke dalam file:
-
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'
-
Di CloudFormation konsol, pilih Unggah file template
Pilih Pilih file
Pilih
AWS-DevOpsAgent-lambda-test.yamlfilePilih Berikutnya
Konfigurasikan tumpukan:
Nama tumpukan:
AWS-DevOpsAgent-Lambda-TestPilih Berikutnya
Konfigurasikan opsi tumpukan:
Tinggalkan default, pilih Berikutnya
Tinjau dan buat:
Periksa Saya mengakui bahwa AWS CloudFormation mungkin membuat sumber daya IAM
Pilih K irim
Tunggu penyelesaian:
Pembuatan tumpukan membutuhkan waktu 2-3 menit
Status akan berubah menjadi
CREATE_COMPLETE
Langkah 2: Memicu kesalahan Lambda
Arahkan ke konsol Lambda:
Pergi ke konsol AWS Lambda
Temukan fungsi Anda
AWS-DevOpsAgent-test-lambda
Uji fungsinya:
Pilih tab Tes
Pilih Buat acara baru
Nama acara:
AWS-DevOpsAgent-test-eventGunakan muatan JSON ini:
-
{ "test": "AWS DevOpsAgent validation", "timestamp": "2024-01-01T00:00:00Z" }
-
Pilih Simpan.
Menghasilkan kesalahan:
Pilih tombol U ji 3 kali (tunggu 10 detik di antara masing-masing)
Setiap tes akan menghasilkan kesalahan yang disengaja
CloudWatch alarm harus dipicu dalam 2-3 menit
AWS DevOpsAgentsekarang harus dapat mendeteksi alarm dengan Inves tigasi 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 tes stres
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-TestalarmHarus muncul dalam alarm dalam 2-3 menit setelah menjalankan tes
Langkah 2: Mulai AWS DevOps Investigasi Agen
Buka AWS DevOps Agen Anda AgentSpace
Pilih Ak ses Admin. Ini akan membuka aplikasi web DevOps Agent Space di jendela baru
Pilih tombol Mulai Investigasi
Lengkapi formulir berikut:
Detail investigasi: Jelaskan penyelidikan yang ingin Anda jalankan. Sertakan detail apa pun yang Anda bisa tentang tujuan investigasi, area untuk dijelajahi, atau informasi yang relevan.
Titik awal investig asi: Jelaskan informasi yang Anda inginkan untuk memulai 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.
Tanggal dan waktu kejadian (lebih disukai ISO 8601): YYYY-MM-DDTHH:MMZ
Sebutkan penyelidikan Anda: contoh:
Oncall_investigation_1:2025-10-27AWS ID Akun untuk insiden
Wilayah tempat kejadian terjadi
Priorit as - AWS DevOpsAgent memungkinkan untuk 2 investigasi bersamaan. Prioritas memungkinkan Anda untuk menentukan urutan pelaksanaan investigasi Anda.
Pilih Investigate untuk memulai penyelidikan.
Pilih 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”
Menunjukkan garis waktu: Tes stres → lonjakan CPU → Alarm
Memberikan rekomendasi untuk pemantauan dan penskalaan
Hasil tes Lambda:
Mendeteksi lonjakan tingkat kesalahan Lambda
Mengidentifikasi akar penyebab: “Pengecualian pengujian 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 berhenti secara otomatis setelah 2 jam (dibangun ke dalam CloudFormation template)
Pembersihan manual (segera)
Hapus CloudFormation tumpukan:
Pergi ke CloudFormation konsol
Pilih
AWS-DevOpsAgent-EC2-TesttumpukanPilih H apus
Konfirmasikan penghapusan
Ini akan secara otomatis menghapus semua sumber daya: instance EC2, grup keamanan, pasangan kunci, dan alarm CloudWatch
Tes pembersihan B (uji Lambda)
Hapus CloudFormation tumpukan:
Pergi ke CloudFormation konsol
Pilih
AWS-DevOpsAgent-Lambda-TesttumpukanPilih H apus
Konfirmasikan penghapusan
Ini akan secara otomatis menghapus semua sumber daya: fungsi Lambda, peran IAM, dan alarm CloudWatch
Pemecahan masalah
Masalah umum
“Tidak dapat terhubung ke instance EC2”
Periksa Grup Keamanan: Pastikan SSH (port 22) terbuka untuk IP Anda
Periksa Izin Utama: Jalankan
chmod 400 AWS-DevOpsAgent-test-key.pemVerifikasi IP Pu blik: Instans harus memiliki IP publik yang ditetapkan
Tunggu Inst ance: Pastikan instance dalam status “Running”
“Alarm tidak memicu”
Tunggu Metrik: CloudWatch metrik dapat memakan waktu 2-5 menit untuk muncul
Periksa Beb an CPU: SSH ke instance dan jalankan
topuntuk memverifikasi CPU> 70%Verifikasi Tes Stres: Jalan
ps aux | grep yeskan untuk melihat apakah proses pemuatan sedang berjalanPenantian Diperpanjang: Terkadang membutuhkan waktu hingga 7-8 menit untuk pemicu alarm pertama
Uji validasi
Pengujian AWS DevOp Agen Anda berhasil jika:
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 Gar is Waktu: Urutan peristiwa yang benar ditampilkan
Kualitas Rekomendasi: Saran yang dapat ditindaklanjuti diberikan