View a markdown version of this page

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

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.

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

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

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

  1. Arahkan ke CloudFormation:

    1. Di AWS Konsol, cari "CloudFormation" dan pilih CloudFormation

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

  2. Unggah template:

    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: 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}'
    3. Di CloudFormation konsol, pilih Unggah file template

    4. Pilih Pilih file

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

    6. Pilih Berikutnya

  3. Konfigurasikan tumpukan:

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

    2. Parameter:

      1. VpcId: Pilih VPC yang ada dari dropdown.

      2. 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, SSHCommand output akan kosong dan koneksi SSH tidak akan berhasil.

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

    3. Pilih Berikutnya

  4. Konfigurasikan opsi tumpukan:

    1. Tinggalkan default, pilih Berikutnya

  5. Tinjau dan buat:

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

    2. Pilih K irim

  6. Tunggu penyelesaian:

    1. Pembuatan tumpukan membutuhkan waktu 3-5 menit

    2. Status akan berubah dari CREATE_IN_PROGRESS ke 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 instance)

Lewati langkah ini jika Anda hanya ingin menjalankan pengujian otomatis

  1. Temukan grup keamanan:

    1. Di AWS Konsol, buka CloudFormation dan pilih AWS-DevOpsAgent-EC2-Test tumpukan

    2. Buka tab Output dan salin nilai SecurityGroupId (dimulai dengansg-)

    3. Buka EC2 Grup Keamanan dan tempel ID ke bilah pencarian untuk membuka grup keamanan

  2. Perbarui aturan SSH:

    1. Pilih grup keamanan → tab Aturan masuk → Edit 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. Pilih Simpan aturan

Langkah 2: Tunggu eksekusi tes otomatis

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

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

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

    • Hubungkan ke instans Anda: Konsol EC2 → → Hubun gkan AWS-DevOpsAgent-Test-Instance → Manajer S esi

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

    • Sempurna untuk pengujian AWS DevOpsAgent respons beberapa kali

Opsi pengujian B: Tes tingkat kesalahan lambda

Langkah 1: Terapkan tum CloudFormation pukan untuk uji Lambda

  1. Arahkan ke CloudFormation:

    1. Di AWS Konsol, buka CloudFormation

    2. Pilih Buat tumpukan Dengan sumber daya baru (standar)

  2. Unggah template:

    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 template

    4. Pilih Pilih file

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

    6. Pilih Berikutnya

  3. Konfigurasikan tumpukan:

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

    2. Pilih Berikutnya

  4. Konfigurasikan opsi tumpukan:

    1. Tinggalkan default, pilih Berikutnya

  5. Tinjau dan buat:

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

    2. Pilih K irim

  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. Pilih tab Tes

    2. Pilih Buat acara baru

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

    4. Gunakan muatan JSON ini:

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

  3. Menghasilkan kesalahan:

    1. Pilih tombol U ji 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 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-Test alarm

  • Harus muncul dalam alarm dalam 2-3 menit setelah menjalankan tes

Langkah 2: Mulai AWS DevOps Investigasi Agen

  1. Buka AWS DevOps Agen Anda AgentSpace

  2. Pilih Ak ses Admin. Ini akan membuka aplikasi web DevOps Agent Space di jendela baru

  3. Pilih tombol Mulai Investigasi

  4. Lengkapi formulir berikut:

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

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

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

    4. Sebutkan penyelidikan Anda: contoh: Oncall_investigation_1:2025-10-27

    5. AWS ID Akun untuk insiden

    6. Wilayah tempat kejadian terjadi

    7. Priorit as - AWS DevOpsAgent memungkinkan untuk 2 investigasi bersamaan. Prioritas memungkinkan Anda untuk menentukan urutan pelaksanaan investigasi Anda.

  5. Pilih Investigate untuk memulai penyelidikan.

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

  1. Hapus CloudFormation tumpukan:

    1. Pergi ke CloudFormation konsol

    2. Pilih AWS-DevOpsAgent-EC2-Test tumpukan

    3. Pilih H apus

    4. Konfirmasikan penghapusan

    5. Ini akan secara otomatis menghapus semua sumber daya: instance EC2, grup keamanan, pasangan kunci, dan alarm CloudWatch

Tes pembersihan B (uji Lambda)

  1. Hapus CloudFormation tumpukan:

    1. Pergi ke CloudFormation konsol

    2. Pilih AWS-DevOpsAgent-Lambda-Test tumpukan

    3. Pilih H apus

    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 instance EC2”

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

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

  • Verifikasi 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 top untuk memverifikasi CPU> 70%

  • Verifikasi Tes Stres: Jalan ps aux | grep yes kan untuk melihat apakah proses pemuatan sedang berjalan

  • Penantian 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