
AWS DevOps Agent (Preview)をテストシナリオに沿って試してみる #AWSreInvent
みなさん AWS re:Invent2025 楽しんでいるでしょうか?
昨日発表された AWS DevOps Agent がトラブルシューティングで非常に便利そうなので触っていきます。
すでに AWS DevOps Agent については以下の記事が出ていますので、そちらもぜひご覧ください。
AWS DevOps Agentとは
AWS DevOps Agent は、インシデントの解決と予防を自律的に行う「Frontier Agent(フロンティアエージェント)」として新たに発表された AI エージェントサービスです。
Frontier Agent は AWS が定義する新しいクラスの AI エージェントで、人の介入なしに独立して動作し多数のタスクを処理できる AI エージェントです。
他には AWS Security Agent や Kiro Autonomous Agent といったエージェントが発表されています。
その中で、AWS DevOps Agent はアラートなどから自動で調査を行なったり、自然言語で調査しインシデント解決までの調査や根本原因の特定などが可能です。
EC2のCPU使用率アラートによるテストを試してみる
幅広い機能がありますが、まずはシンプルな使い方を試したいですよね。
ちょうどよく AWS のドキュメントに EC2 の CPU 使用率が上昇してアラートを発生させるテストシナリオが用意されています。
Test option A: EC2 CPU capacity test
Purpose: Validate AWS DevOps Agent's ability to detect and investigate EC2 performance issues
Estimated time: 5 minutes setup + 10 minutes automatic execution
Difficulty: Fully automated (no manual steps required)
今回はこちらを試していきます。
テストシナリオの流れ
今回のテストシナリオの流れです。
EC2 へログインして CPU 負荷をかけるスクリプトを実行し、CloudWatch のアラームを発生させます。
発生したアラームの調査と根本原因の特定を AWS DevOps Agent にしてもらいましょう。
事前準備
Agent Space が作成されていることが前提です、作成していきましょう。
Agent Space作成
スペース名を入力し、使用するロールやタグの設定をします。今回はデフォルトのままロールを作成しました。

Operator accessからインシデント調査のための Web App を開くことができます。

この画面を開けることが確認できたら、準備 OK です。

次はテスト環境を作成していきましょう。
テスト環境作成
ドキュメントに記載されている以下 CFn テンプレートをAWS-AIDevOps-ec2-test.yamlで保存します。
AWS-AIDevOps-EC2-test.yaml
AWSTemplateFormatVersion: '2010-09-09'
Description: 'AWS AIDevOps 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-AIDevOps-test-sg
GroupDescription: AWS AIDevOps 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-AIDevOps-Test-SG
- Key: Purpose
Value: AWS-AIDevOps-Testing
# Key Pair for SSH access
TestKeyPair:
Type: AWS::EC2::KeyPair
Properties:
KeyName: AWS-AIDevOps-test-key
KeyType: rsa
Tags:
- Key: Name
Value: AWS-AIDevOps-Test-Key
- Key: Purpose
Value: AWS-AIDevOps-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 AIDevOps 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 AIDevOps test setup completed at $(date)" > /home/ec2-user/setup-complete.txt
Tags:
- Key: Name
Value: AWS-AIDevOps-Test-Instance
- Key: Purpose
Value: AWS-AIDevOps-Testing
# CloudWatch Alarm for CPU utilization
CPUAlarm:
Type: AWS::CloudWatch::Alarm
Properties:
AlarmName: AWS-AIDevOps-EC2-CPU-Test
AlarmDescription: AWS-AIDevOps 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-AIDevOps-test-key.pem" ec2-user@${TestInstance.PublicDnsName}'
このテンプレートを実行することで作成されるリソースの一覧は以下です。
| リソース | 種類 | 役割 |
|---|---|---|
| TestSecurityGroup | EC2::SecurityGroup | SSHアクセス(ポート22)を許可 |
| TestKeyPair | EC2::KeyPair | EC2へのSSH認証用RSAキー |
| TestInstance | EC2::Instance | CPU負荷テスト用インスタンス(t3.micro) |
| CPUAlarm | CloudWatch::Alarm | CPU使用率70%超過を検知 |
CloudFormation へアップロードして展開しましょう。

スタック名はAWS-AIDevOps-EC2-Testとします。

CPUストレステストはインスタンスの起動から5分後に自動的に開始されます。
https://docs.aws.amazon.com/devopsagent/latest/userguide/getting-started-create-a-test-environment.html
ドキュメントには上記の記載があったのですが、私の環境ではアラートが発生しなかったので EC2 へログインして./cpu-stress-test.shを手動実行しました。
, #_
~\_ ####_ Amazon Linux 2023
~~ \_#####\
~~ \###|
~~ \#/ ___ https://aws.amazon.com/linux/amazon-linux-2023
~~ V~' '->
~~~ /
~~._. _/
_/ _/
_/m/'
[ec2-user@ip-172-31-18-113 ~]$ ./cpu-stress-test.sh
Starting AWS AIDevOps CPU Stress Test
Time: Wed Dec 3 02:04:11 UTC 2025
Instance:
CPU Cores: 2
Starting stress test (5 minutes)...
This will generate >70% CPU usage to trigger CloudWatch alarm
Starting CPU load processes...
Started CPU load process 1 (PID: 26055)
Started CPU load process 2 (PID: 26056)
CPU load processes started for 5 minutes
Check CloudWatch for alarm trigger in 3-5 minutes
[ec2-user@ip-172-31-18-113 ~]$
無事アラートが確認できました。

ここまでの内容を AWS DevOps Agent がどのように調査していくのかみていきましょう。
AWS DevOps Agentでエラー内容を調査する
事前準備で開いた Web App に戻り、Start Investigationから詳細情報を入れていきましょう。

Investigation details
"AWS-AIDevOps-EC2-CPU-Test"が発生したことを入力。
Investigate the cause of the "AWS-AIDevOps-EC2-CPU-Test" alert.
Investigation starting point
CloudWatch Alarm がアラーム状態になった時刻を入力。
CloudWatch Alarm occurred in alarm state at 2025-12-03 11:06:45
Data and time of incident はアラームの発生時刻からそれほど時間が経っていなかったのでデフォルトのままにしました。
調査を開始すると、タイムラインが表示され調査を進めてくれます。自動で調査が進んでいくタイムラインを見るのは楽しいですね。

数分待つと、根本原因の特定まで確認できたためRoot Causeのタブが出てきました。

内容を確認すると、私がテストスクリプトを実行したことが特定できています。
- User executed CPU stress test script during SSH session
The CPU spike to 98.34% on EC2 instance i-0ac6ad9e37829b762 was caused by manual execution of the CPU stress test script '/home/EC2-user/cpu-stress-test.sh' during an SSH セッション. User cm-suzuki.jun established an SSH connection via EC2 Instance Connect at 02:04:02 UTC, and the CPU spike began at 02:05:00 UTC (1 minute later), lasting exactly 5 minutes until 02:10:00 UTC.
日本語訳
1.ユーザーがSSHセッション中にCPUストレステストスクリプトを実行した
EC2 インスタンス i-0ac6ad9e37829b762 で CPU 使用率が 98.34% まで急上昇したのは、SSH セッション中に CPU ストレステストスクリプト '/home/EC2-user/cpu-stress-test.sh' を手動で実行したためです。ユーザー cm-suzuki.jun が EC2 Instance Connect 経由で 02:04:02 UTC に SSH 接続を確立し、CPU 使用率が急上昇したのは 02:05:00 UTC (1 分後) に始まり、02:10:00 UTC までちょうど 5 分間続きました。
バッチリ合ってますね。誰がどうやって発生した事象なのかまで特定されています。
すでに原因はわかっていますがGenerate Mitigation Planという表示が出ているので試してみましょう。
発生した事象から対応策の提案をしてくれます。

すると、別タブが作成されて Mitigation Plan が表示されました。

↓一部抜粋した日本語訳
これは、修復を必要とする運用上の障害ではなく、テスト環境におけるシステムの動作の想定通りの結果です。システムは設計どおりに動作しているため、直ちに運用上の緩和策を講じる必要はありません。
今回はテストスクリプトの実行なので対応不要となりましたが、実際のインシデント対応では方針の策定までしてくれるのは嬉しいですね。
テストが終わったら作成した CloudFormation のスタック削除を忘れないようにしましょう。
まとめ
AWS DevOps Agent (Preview) で AWS 公式のテストシナリオを実行し、どのような動作をするのか確認できました。
根本原因特定、対応策の提案までを自動で実施してくれるのは本当にありがたいです。
特に、CloudTrail ログを手動で追う必要がなく、誰がいつ何を実行したかまで特定してくれる点は、インシデント対応の大幅な時間短縮につながりそうです。
GitHub 連携や MCP サーバー接続、Slack 通知などの統合機能もあるようです。気になる方はぜひ試してみてください!
参考
Frontier agent – AWS DevOps Agent – AWS
What is AWS DevOps Agent - AWS DevOps Agent
AWS DevOps Agent helps you accelerate incident response and improve system reliability (preview) | AWS News Blog






