8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS DevOps Agent とは何か

8
Last updated at Posted at 2025-12-03

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
マネジメントコンソールから既に使用可能になっていました
image.png

セットアップ

  • 現在は us-east-1 のみ利用可能なので、他のリージョンで作業している場合は親切にus-east-1のページへのリンクが出てきます
  • アクセスするとこのような画面が出ます
  • オレンジ色の Begin setup ボタンをクリックしてセットアップ画面に進みます

image.png

  • 色々と項目がありますが、 Agent Space Name さえ入れればセットアップは完了します

  • 他にもロールを自動作成するか、既存のロールを使用するかなど選択できます

  • 自動作成が推奨されていますが、エージェントの動作範囲を最初は参照系だけにしておくなど、 IAM Role である程度ガードレールを作るのも良さそうですね
    image.png

  • セットアップが完了すると、デフォルトでは、すべてのCloudFormationスタックとそのリソースが検出されます

  • リソースがCloudFormationでデプロイされていない場合は、特定のAWSタグを持つリソースを検出できるようです

  • Terraform利用者はDevOps Agentに検出させるタグをつけておくとよさそうですね

  • 現在作業中のアカウントはほぼ全てのリソースをCDKでデプロイしているので、多くのリソースが検出されました
    image.png

  • Operator Access で DevOps Agent のオペレーター画面に遷移します

  • ここでも検出されたリソースが確認できるのと、インシデントレスポンス及び対応について実行するメニューがあります
    image.png

  • ここまでで一通りのセットアップは完了です!

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

デプロイに数分かかりました

  • デプロイされると、CloudWatchに AWS-AIDevOps-Lambda-Error-Test という名前でアラームが作成されています
    image.png

エラーをトリガーする

  • AWS-AIDevOps-test-lambda というLambda関数が作成されているのでアクセスします
  • 以下のようにテストイベントを作成します
    image.png

テスト用JSONペイロード

{
  "test": "AWS AIDevOps validation",
  "timestamp": "2024-01-01T00:00:00Z"
}
  • テストボタンを3回クリックします(クリックごとに10秒待ちます)
  • 各テストは意図的なエラーを生成します
  • CloudWatchアラームは2~3分以内にトリガーされます

これで、 AWS DevOps Agent は、次に設定するOperator アプリの調査でアラームを検出できるようになります。

  • 2~3分後に CloudWatch Alerm がエラーになります
    image.png

エラーを調査する

  • Insident Response ページから Start an investigation に調査する内容を書きます

  • 日本語でできるかやってみましたが、ダブルバイト文字は使えないようですね
    image.png

  • 気を取り直して英語で入れてみます

I'm getting a Lambda error. Check the CloudWatch alarm for errors and investigate the cause.
  • 調査が開始されました!
    image.png

  • 調査の状況がわかりやすいように、ブラウザで画面翻訳しています

  • エージェントが調査してくれていますね

  • 裏では AWS MCP Server を使用しているのでしょうかね、セッションなどで確認できれば情報を更新したいと思います
    image.png

  • 最終的に調査結果が出ました、想定通り Lambda関数 のテストエラーを見抜いてくれています
    image.png

  • 根本原因を突き止める のボタンをクリックして、 緩和計画 を作成できます
    image.png

  • 今回は意図的に出したエラーのため、特に緩和措置は特定されませんでした

  • 実際のワークロードでどのような提案が来るのか楽しみですね
    image.png

まとめ

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?