
AWS が公開した AI エージェント向けベンチマーク aws-bench の仕組みを確認してみた
はじめに
2026年7月24日、AWS が AI エージェントの AWS 操作能力を測るオープンソースベンチマーク aws-bench をリサーチプレビューとして公開しました。実際の AWS アカウントにシナリオごとのリソースをデプロイし、AI エージェントに操作させて、回答内容や操作後のリソース状態を採点する仕組みです。
本記事では公式リポジトリとドキュメントをもとに aws-bench の仕組みの確認を試みました。ベンチマークそのものの実行結果、AI エージェントやモデル間の性能比較、公開スコアの再現、独自ベンチマークの設計は扱いません。
aws-bench の実行フロー
- AWS Organizations の管理アカウントから、ベンチマーク用の OU とテストアカウントを準備します。テストアカウントはシナリオごとに1つ使います。
- シナリオに含まれる CDK 定義で、評価対象となる AWS リソースをテストアカウントへデプロイします。
- コンテナで構成されるサンドボックス環境内の AI エージェントに、タスクの指示文とテストアカウントの AWS 認証情報を渡し、制限時間内に AWS を操作させます。
- 採点はタスクの種類で分かれます。読み取り・診断系のタスクはエージェントの回答を参照回答と比較して判定し、作成・変更系のタスクは実際のリソース状態を検証します。
- 実行後は
env verifyで drift と残留リソースを確認し、env resetで同一環境を再初期化するか、リソースを撤去します。
読み取り・診断系の introspection タスクは99本あり、参照回答との同等性を LLM judge が二値で判定します。introspection では check.py のような検証コードは実行されず、回答文の判定のみです。作成・変更系の mutation タスクは35本あり、シナリオごとに用意された check.py の判定基準をすべてクリアした場合のみ合格となり、部分点はありません。
データセットとシナリオ
データセットは8シナリオ・134タスクで構成されています。
| シナリオ | タスク数 | 主な性格 |
|---|---|---|
ec2-multiregion |
9 | 複数リージョンの EC2 環境を調査する quickstart |
databases-and-storage |
30 | データベース・ストレージの調査 |
compute-and-data |
27 | コンピュート・データ基盤の作成や設定変更 |
serverless-apps |
13 | サーバーレスアプリケーションの調査 |
streaming-and-iot |
8 | ストリーミング・IoT の作成や設定変更 |
api-and-observability |
15 | API・監視基盤の診断 |
reference-architectures |
11 | 参照アーキテクチャの診断 |
troubleshooting-multiservice |
21 | 複数サービスにまたがる障害診断 |
「主な性格」は、各タスクの task.toml にある request_type と intent を静的に集計して分類したものです。
quickstart が使うのは ec2-multiregion の9タスクのみなので、最初から8シナリオすべてを実行する必要はありません。
実行に必要な条件
AWS 環境:
- AWS Organizations の管理アカウント
- 実行するシナリオ数分のテストアカウントを追加できること(1シナリオ1アカウント。空き枠、メールを受信できるドメイン、アカウント数クォータの充足が必要)
- シナリオが使うリージョンとサービスのクォータ(
env init --wait-for-quotasで自動申請されますが、即時承認されない場合があります) - Amazon Bedrock のモデルアクセス(LLM による判定に使用します)
ローカル環境:
- Python 3.12 以降
- uv
- Docker Compose v2
- Docker buildx
所要時間と費用の目安
シナリオごとに設定されたタイムアウト時間と、ワーストケースの概算最大費用です。
| シナリオ | timeout 上限 | 概算最大費用 | 主な課金ドライバー |
|---|---|---|---|
ec2-multiregion |
4.2h | 約 $0.4 | t3.micro、EBS gp3、パブリック IPv4 |
databases-and-storage |
10.0h | $10 | EC2、NAT Gateway、ECS、RDS |
serverless-apps |
6.9h | $14 | MSK、DocumentDB、NAT Gateway、ALB |
reference-architectures |
5.9h | $18 | RabbitMQ、Aurora Serverless v2、Transfer Family、NAT Gateway、Batch |
streaming-and-iot |
10.4h | $21 | MSK、Neptune、RDS |
api-and-observability |
9.3h | $37 | Redshift、OpenSearch、OpenSearch Serverless、NAT Gateway、Fargate |
troubleshooting-multiservice |
9.3h | $84 | EMR、Redshift、NAT Gateway、Network Firewall、Transit Gateway |
compute-and-data |
23.7h | $142 | EKS、Redshift Serverless、NAT Gateway、EC2 / EBS |
timeout 上限はデプロイから撤去までのタイムアウト合算値で、概算最大費用は主要高額リソースの時間課金を積み上げたワーストケースの静的概算です。いずれも実測ではなく、実際の費用は稼働時間や従量課金の量によって変わります。
これらに加え、エージェントのモデル呼び出しと LLM judge によるトークン費用が別途かかります。
quickstart(ec2-multiregion)は、1時間あたり約 $0.1 の AWS リソース費用で試せる規模です。
ec2-multiregion の9タスクで調べること
quickstart が使う9タスクはすべて introspection(読み取り・診断系)で、タスクごとの制限時間は600秒です。いずれも読み取りのみを求めるタスクで、リソースの作成・変更は含まれません。
| タスク名 | エージェントに求めること |
|---|---|
describe-cloudformation-stack-resources |
us-west-1 の指定スタックに含まれるリソースを説明する |
describe-ec-instances-cross-region-connectivity |
3リージョンの EC2 を数え、us-east-1 で同じ VPC にあるインスタンスを特定する |
ec-instances-without-default-vpc |
全リージョンで、デフォルト VPC を使っていないインスタンスを列挙する |
find-ec-instances-in-public-subnets |
3リージョンで、パブリックサブネットにあるインスタンスを見つける |
list-ec-instances-all-regions-1 |
指定リージョンで、SSH でインターネットから到達可能なインスタンスを特定する |
list-ec-instances-all-regions |
対象リージョンにある EC2 インスタンス ID を列挙する |
list-ec-instances-by-vpc-across-regions |
全リージョンで、各インスタンスが属する VPC を対応付ける |
list-ec-private-ips-all-regions |
全リージョンの EC2 とプライベート IP を表形式で返す |
list-unused-security-groups-all-regions |
全リージョンで、未使用のセキュリティグループを列挙する |
troubleshooting-multiservice の21タスクで診断すること
読み取り系で実務に近い障害診断を扱うシナリオとして、troubleshooting-multiservice の中身も確認しました。21タスクもすべて introspection で、診断結果や調査結果を文字列で回答させます。
| タスク名 | エージェントに求めること |
|---|---|
asg-instance-health-check-failure |
Auto Scaling Group のインスタンスがヘルスチェックに失敗している原因を調査する |
asg-secondary-network-interface-attach-failure |
Auto Scaling Group のインスタンスがセカンダリ NIC の attach に失敗している原因を診断する |
diagnose-asg-instance-issues |
Auto Scaling Group のインスタンス障害を調査・診断する |
check-vpc-flow-log-destinations |
指定 VPC のフローログ送信先を確認する |
diagnose-auto-scaling-group-launch-failure |
Auto Scaling Group でインスタンスが起動できない根本原因を特定する |
diagnose-ecs-cluster-no-traffic |
ECS クラスターがトラフィックを受け付けていない原因を特定する |
diagnose-ecs-service-no-running-tasks-1 |
ECS サービスに実行中タスクがない理由と修正が必要な点を特定する |
diagnose-emr-cluster-performance-issues |
EMR クラスターで Spark ジョブが遅い原因を調査する |
diagnose-redshift-cluster-health-issues |
Redshift クラスターのヘルス異常の原因を調査する |
diagnose-step-functions-failing-executions |
Step Functions ステートマシンの実行が失敗している原因を調査する |
ec-instance-security-vulnerability-scan |
EC2 インスタンスのセキュリティ脆弱性と古いパッケージを特定する |
ec-secrets-manager-exit-code-error |
EC2 インスタンスが Secrets Manager からシークレット取得時に exit code 255 になる原因を診断する |
ecs-elasticache-transit-gateway-connectivity |
Transit Gateway 経由の ECS→ElastiCache 接続失敗をルート・SG・NACL から診断する |
ecs-service-deployment-failure-diagnosis |
ECS サービスのデプロイ失敗の原因と関連する問題を診断する |
eventbridge-ecs-task-trigger-debugging |
EventBridge ルールが ECS タスクを起動しない問題とコード変更が反映されない原因をデバッグする |
fix-cloudformation-update-failed-stack |
UPDATE_FAILED 状態の CloudFormation スタックの原因を診断し復旧手順を示す |
glue-job-wrong-deployment-region |
Glue ジョブが意図しないリージョンにデプロイされている原因を調査する |
lambda-appconfig-stale-value-troubleshoot |
Lambda が AppConfig の更新後も古い設定値を読み続ける原因を診断する |
troubleshoot-asg-ssh-connectivity |
Auto Scaling Group インスタンスへの SSH 接続問題を診断し代替接続手段を特定する |
troubleshoot-glue-job-table-read-failure |
Glue ジョブが指定テーブルの読み取りに失敗する原因を診断する |
verify-ec-traffic-routes-through-network-firewall |
EC2 インスタンスの外向きトラフィックが Network Firewall を経由しているか確認する |
まとめ
aws-bench は、AI エージェントの AWS 操作能力を、読み取り・診断系では回答内容、作成・変更系では操作後のリソース状態を用いて評価するベンチマークです。
実行には、AWS Organizations でシナリオごとにテストアカウントを用意できる環境が必要です。この点は導入時のハードルになりますが、AI エージェントに実際の AWS 環境を安全に操作させるための設計としては妥当だと感じました。
次は、AWS Organizations 環境の準備ができ次第、Kiro で比較的低コストで試せる ec2-multiregion で一連の流れを確認する予定です。
その後は公式リポジトリをフォークし、高コストになりやすいサービスや構成を除外したうえで、Step Functions、Lambda、ECS、VPC などを対象にベンチマークを試してみたいと思います。











