AWS DevOps Agentとは
AWS DevOps Agentは、 「Frontier Agent(フロンティアエージェント)」 と呼ばれる自律型AIエージェントです。Amazon Qのような「人間が質問してAIが答える」受動的なスタイルとは違い、「AIが自律的に監視し、調査し、提案する」能動的な動作をしてくれます。
https://docs.aws.amazon.com/devopsagent/latest/userguide/what-is.html
まさにAmbient AgentのリファレンスのようなものをAWSが出してくれたと心が躍っています
このほかにも、Security AgentとKiro Autonomous Agentがフロンティアエージェントとして発表されています。
まずは動かす
公式の Getting started に内容がわかりやすくまとまっています
https://docs.aws.amazon.com/devopsagent/latest/userguide/getting-started-creating-an-agent-space.html
マネジメントコンソールから既に使用可能になっていました

セットアップ
- 現在は
us-east-1のみ利用可能なので、他のリージョンで作業している場合は親切にus-east-1のページへのリンクが出てきます - アクセスするとこのような画面が出ます
- オレンジ色の Begin setup ボタンをクリックしてセットアップ画面に進みます
-
色々と項目がありますが、 Agent Space Name さえ入れればセットアップは完了します
-
他にもロールを自動作成するか、既存のロールを使用するかなど選択できます
-
自動作成が推奨されていますが、エージェントの動作範囲を最初は参照系だけにしておくなど、 IAM Role である程度ガードレールを作るのも良さそうですね

-
セットアップが完了すると、デフォルトでは、すべてのCloudFormationスタックとそのリソースが検出されます
-
リソースがCloudFormationでデプロイされていない場合は、特定のAWSタグを持つリソースを検出できるようです
-
Terraform利用者はDevOps Agentに検出させるタグをつけておくとよさそうですね
-
Operator Access で DevOps Agent のオペレーター画面に遷移します
-
ここまでで一通りのセットアップは完了です!
Lambdaのエラー率を調査するシナリオ
公式のページにシナリオが2つあるので、 Lambda のシナリオを試してみます
シナリオ準備(CloudFormation Templateのデプロイ)
- まずは手順に沿って、検証用の CloudFormation template をデプロイしましょう
- テスト用のテンプレートがあるのは嬉しいですね!
- 以下の内容を AWS-AIDevOps-lambda-test.yaml という名前でローカルに保存します
AWSTemplateFormatVersion: '2010-09-09'
Description: 'AWS AIDevOps Lambda Error Test Stack'
Resources:
# IAM Role for Lambda function
LambdaExecutionRole:
Type: AWS::IAM::Role
Properties:
RoleName: AWS-AIDevOpsLambdaTestRole
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-AIDevOps-Lambda-Test-Role
- Key: Purpose
Value: AWS-AIDevOps-Testing
# Lambda function that generates errors
TestLambdaFunction:
Type: AWS::Lambda::Function
Properties:
FunctionName: AWS-AIDevOps-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 AIDevOps 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 AIDevOps 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 AIDevOps Test Error: {error_message}")
Description: AWS AIDevOps beta test function - intentionally generates errors
Timeout: 30
Tags:
- Key: Name
Value: AWS-AIDevOps-Test-Lambda
- Key: Purpose
Value: AWS-AIDevOps-Testing
# CloudWatch Alarm for Lambda errors
LambdaErrorAlarm:
Type: AWS::CloudWatch::Alarm
Properties:
AlarmName: AWS-AIDevOps-Lambda-Error-Test
AlarmDescription: AWS-AIDevOps 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 AIDevOps validation\"}" response.json'
- CloudFormation コンソールで、テンプレートファイルのアップロードを選択します
- ファイルを選択から先ほど保存した AWS-AIDevOps-lambda-test.yaml を選択します
- スタック名: AWS-AIDevOps-Lambda-Test
デプロイに数分かかりました
エラーをトリガーする
テスト用JSONペイロード
{
"test": "AWS AIDevOps validation",
"timestamp": "2024-01-01T00:00:00Z"
}
- テストボタンを3回クリックします(クリックごとに10秒待ちます)
- 各テストは意図的なエラーを生成します
- CloudWatchアラームは2~3分以内にトリガーされます
これで、 AWS DevOps Agent は、次に設定するOperator アプリの調査でアラームを検出できるようになります。
エラーを調査する
-
Insident Response ページから Start an investigation に調査する内容を書きます
-
気を取り直して英語で入れてみます
I'm getting a Lambda error. Check the CloudWatch alarm for errors and investigate the cause.
-
調査の状況がわかりやすいように、ブラウザで画面翻訳しています
-
エージェントが調査してくれていますね
-
裏では AWS MCP Server を使用しているのでしょうかね、セッションなどで確認できれば情報を更新したいと思います

-
今回は意図的に出したエラーのため、特に緩和措置は特定されませんでした
まとめ
- エージェントが自律的に動作して原因を追究、対応方法の提案(Runbookの作成)まで実施してくれるのは運用の未来を感じました
- MCP連携など紹介できていない機能もあるので、NewRelicなど他のSaaSとも連携しての調査も捗りそうです
- 私自身似たようなエージェントを作成してIT運用の自動化、自律化にチャレンジしていますが、公式からこのような素晴らしいアップデートが登場したことで、巨人の肩に乗りつつもう一歩先のことを考えようとラスベガスで思考を巡らせています










