Amazon Web Services ブログ

AWS DevOps Agent で調査コストを事前に制御する

はじめに

AWS DevOps Agent の調査において、最初の課金対象クエリを実行する前に、どれくらいの費用がかかるかを確認の上、利用するかどうかを判断できます。Investigation Cost Guardrail スキルは、AWS DevOps Agent にコスト意識をもたらし、調査の開始前にどこまで調べるかをチームが把握・制御できるようにします。

本記事では、オープンソースの AWS DevOps Agent スキルである Investigation Cost Guardrail を紹介します。このスキルは、Amazon CloudWatch、AWS X-Ray、Amazon Athena、Amazon DynamoDB、Amazon S3、AWS CloudTrail といった設定済みの AWS サービスや、サードパーティーツール、エージェント自身のネイティブツールをまたいでエージェントが実行するオペレーションを分類します。そのうえで、見積もり時点における対象リージョンの最新料金を取得します。本記事では、仕組みを説明し、具体的なシナリオを示しながら、自律型 AI にとってコスト意識がセキュリティガードレールと同じくらい重要になりつつある理由を解説します。

DevOps の考え方は、開発と運用の間にあるサイロを取り除くことです。AWS DevOps Agent も同じ原則を体現しています。アプリケーションに関する知識と運用の専門知識の隔たりを埋め、両方の領域を横断してデバッグできる、チームのもう一人の SRE のように機能します。DevOps の考え方が文化とプラクティスをもたらすのに対し、エージェントは自律的な実行をもたらします。

「You build it, you run it(作った人が運用する)」が説明責任を意味していたのに対し、AWS DevOps Agent が目指すのは、大規模環境における持続可能性です。チームの専門知識を 24 時間 365 日利用できるように拡張することで、システムが成長し、単一のチームだけでは監視しきれなくなっても、このオーナーシップモデルを維持できるようになります。

本記事のシナリオとコストの数値はあくまで例です。実際のコストと結果は、リージョン、データ量、現在の AWS 料金によって異なります。

安心して任せるための原則:場数で培われるコスト感覚

あるアクションにどれくらいの費用がかかるかを見積もることは、クラウドで身につけるのが最も難しい感覚の一つです。広範なクエリやテーブル全体のスキャンから学び、実行前にスコープを絞ることが自然にできるようになるまで、時間をかけて身につけていくものです。

AWS DevOps Agent は、シニア SRE が持つ自律性と高度な調査能力をもたらします。このガードレールを使うことで、エージェントは初日から同じコスト意識を備え、実行する各アクションに一貫して適用します。経験豊富なエンジニアが本能的に実践するのと同じ規律で、実行前にスコープとコストを見積もります。

AI ガードレールを取り巻く状況

AI ガードレールとは、AI システムが安全かつ責任を持って、定義された境界内で動作し続けるための安全装置です。AI モデルがどのように出力を生成し、アクションを実行するかを統制するポリシー、技術的な制御、監視の仕組みが含まれます。

ガードレールに関する議論の多くは、コンテンツの安全性、プロンプトインジェクションの防止、意図しない情報開示に焦点を当てています。これらは重要ですが、AI エージェントが「考える」段階から「行動する」段階に移った瞬間、もう一つの側面が極めて重要になります。それは、アクションを実行する前に、そのアクションのコストを把握することです。

従来のソフトウェアのコストは決定論的です。API コールのコストは、呼び出す前にわかります。一方、自律型エージェントは、どの API を呼び出すか、何回呼び出すか、どのスコープを対象にするかを動的に判断します。このスキルにより、こうした動的なコスト構造を事前に可視化し、調整できるようになります。これにより、コストは調査において明示的に考慮される判断材料になります。

AI エージェントの責任共有モデル

AWS DevOps Agent では、責任共有モデルを自律型エージェントにまで拡張できます。

  • AWS DevOps Agent は、調査機能と、それを統制するためのエージェント指示やスキルなどの制御手段を提供します。
  • 利用者はガードレールを設定し、しきい値を決め、エージェントが動作する境界を定義します。

実際の運用で定着するガードレールには、次の 3 つの共通点があります。

  • 必要に応じて有効・無効を切り替えられる(オプトインまたはオプトアウト)
  • 理解するための専門知識が不要
  • 介入時に明確なガイダンスを提供する

これが、このガードレールの設計思想です。クラウド料金の専門家にならなくても、コストの透明性を得られます。

AWS DevOps Agent スキルとは

コストガードレールの詳細に入る前に、スキルとは何か、そしてエージェントインストラクションとどう違うのかを理解しておくと役立ちます。

スキルは、調査手順と運用ナレッジをまとめた再利用可能なパッケージです。現在のタスクに関連する場合、エージェントによってオンデマンドで読み込まれます。これにより、AWS DevOps Agent は汎用アシスタントから、利用者のインフラストラクチャに精通したスペシャリストへと変わります。

最もシンプルな形では、スキルは SKILL.md とオプションの参照ファイルを含むディレクトリです。SKILL.md ファイルには、次の内容が含まれます。

  • フロントマター:名前と説明
  • エージェントが調査中に従う段階的なインストラクション

description フィールドは非常に重要です。エージェントはこのフィールドを使って、そのスキルを読み込むかどうかを判断します。調査が始まると、エージェントは利用可能なすべてのスキルの説明を読み、関連するものを選択します。複数のスキルを同時に読み込むこともできます。

スキルとインストラクション:スーパーパワーと基本命令

AWS DevOps Agent には、運用ナレッジを注入するための 2 つの仕組みがあります。

 

スキル エージェントインストラクション(AGENTS.md)
読み込まれるタイミング オンデマンド(エージェントが説明と現在のタスクを照合) 常時(無条件、すべてのセッション)
コンテンツ形式 Markdown、または補助ファイルを含む ZIP バンドル Markdown のみ、補助ファイルなし
適用範囲 特定のイベントタイプに特化 セッションをまたいで適用されるグローバルポリシー
例えるなら 必要なときにエージェントが発動するスーパーパワー エージェントが常に従う基本命令
ユースケース 調査手順、トラブルシューティングのプレイブック セキュリティポリシー、コーディング標準、組織のガイドライン

エージェントインストラクションは、すべてのセッションで無条件にエージェントのコンテキストへ注入されるシステムプロンプトです。常に適用しなければならない常設ポリシーには、インストラクションを使用します。

スキルは、関連するときにだけオンデマンドで読み込まれるスーパーパワーです。参照ファイル、メトリクステーブル、複数ステップの手順を含めることができ、必要のないセッションに読み込むと無駄になるような、深く専門的な能力を表現します。

重要な違いは、インストラクションがエージェントにどのように振る舞うかを教えるのに対し、スキルは特定の問題をどのように調査するかを教える点です。

ソリューション概要:調査コストガードレールのワークフロー

次の図は、調査におけるコストガードレールの位置を示しています。エージェントが調査対象リソースを特定した後、課金対象クエリを実行する前という、可能な限り早い段階でワークフローに介入します。

Figure 1: How the Investigation Cost Guardrail skill works in AWS DevOps Agent

図 1:AWS DevOps Agent における Investigation Cost Guardrail スキルの仕組み

仕組み:4 層アーキテクチャ

各 AWS サービスの各操作について課金対象かどうかをハードコードするのではなく、このスキルは上の図 1 に示した 4 層アーキテクチャを使用します。これらの層は連携して、レジストリに登録されていないサービスやエージェント自身のネイティブツールも含め、AWS サービス全体の操作を分類します。

Layer 0:ネイティブツールの分類

エージェント自身の各ツールには、課金対象か非課金対象かが明示されています。PromQL(get_prometheus_metrics)、use_splunk とその他のサードパーティー統合、shell、サブエージェントの起動はすべて分類されます。use_aws もこれらと同様ですが、後続のレイヤーでさらに詳細に分類されます。

Layer 1:ヒューリスティックルール

動詞に基づく分類は、レジストリに記載されていないサービスも含め、サービスを横断して機能します。Describe、List、Get、Lookup、Check、Validate、Tag、Untag はメタデータを返すもので、通常はデータスキャンの料金が発生しません。Query、Scan、Execute、Invoke、Insights などの動詞はデータを処理またはスキャンするため、課金対象として扱われます。多数のページにわたるページネーションを伴う広範な List や Describe の呼び出しには、注意フラグが付けられます。

Layer 2:既知の有料操作レジストリ

有料操作について、レジストリは、正確な計算式と、料金を取得するために使用する AWS Price List API のフィルターを保持しています。レジストリ自体は料金を保持しません。Amazon CloudWatch(Logs Insights、GetMetricData、GetInsightRuleReport、Live Tail、スキャンされた PromQL サンプルを含む)、AWS X-Ray、Amazon Athena、Amazon DynamoDB、Amazon S3 のリクエストが対象です。運用担当者は独自のエントリーでレジストリを拡張できます。

Layer 3:自己学習型のレスポンス検証

操作の実行後、スキルは BytesScanned、ConsumedCapacity、TracesProcessedCount など、課金対象の使用量を示すフィールドがレスポンスに含まれていないかを確認します。以前は未分類だった操作がこれらのフィールドのいずれかを返した場合、スキルは調査の残りの期間、その操作を課金対象として分類します。これにより、調査が進むにつれてカバレッジが向上します。

これらのレイヤーが連携することで、レジストリに記載されていないサービスの操作も含め、ほとんどの操作を動詞に基づいて分類できるように設計されています。レスポンス検証は、ルールが見落とした操作を検出するのに役立ちます。

リージョンごとのライブ料金

料金は AWS リージョンによって異なるため、基準料金を保持せず、見積もり時に AWS Price List API を使用して、ワークロードのリージョンの料金をリアルタイムで取得します。

  • リージョンはリソース ARN から取得されます。
  • 各料金は pricing:GetProducts で検索され、ワークロードのリージョンを使って一致する料金が選択されます。

その結果、ワークロードが実行されるリージョンの現在の定価に基づくコスト見積もりが得られます。

クロスリージョンへの対応

対象リージョンが Agent Space のリージョンと異なる場合、スキルはデータ転送コストを追加します。特定の送信元から送信先までの経路に対応する料金をリアルタイムで取得し、経路ごとにキャッシュします。リージョン間の料金は地域によって大きく異なるため、一律の料金を仮定せず、その経路に対応する正確な料金を検索します。

判定ゲート

計画された呼び出しの分類、料金の取得、予算との照合が完了すると、ガードレールは次の 3 つの方法のいずれかで判定します。番号は、上の図 1 に示した結果に対応します。

  1. Proceed(続行):見積もりが残りの予算内に収まっています。呼び出しは中断なく実行され、調査タイムラインにはステップごとの見積もりと累計額の両方が記録されます。
  2. Warn(警告):呼び出しは予算内ですが、非効率の兆候が見られます。たとえば、広範な PromQL クエリ、単一サービスに対する 200 回以上の呼び出し、リージョン間の転送などです。ガードレールは呼び出しの実行を許可しつつ、時間枠の短縮、ラベルフィルター、ステップ間隔の拡大など、コスト効率の高い代替案を添えます。
  3. Halt(停止):見積もりが残りの予算を超える場合、時間枠が指定されずにスキャンが要求された場合、またはライブ料金検索で料金を取得できなかった場合、呼び出しは実行されません。ガードレールは最悪ケースの見積もりを提示し、データをスキャンする前に指示を求めて一時停止します。

ガードレールが停止した場合は、必ず次に進むための方法を提案します。

  • 正確なタイムスタンプ、またはより短い時間枠を指定する
  • 特定の 1 つのサービスまたはロググループを対象にする
  • 既知のエラーメッセージを指定する。これにより、エージェントは Logs Insights クエリの代わりに、GB 単位のスキャン料金が発生しない FilterLogEvents API で検索できる
  • リージョン間の転送料金を避けるため、クエリを同一リージョンのソースに限定する

シナリオ例

次のシナリオは、同じ決済ワークロードに対する 3 つのリクエストを示しています。いずれもエンジニアが DevOps Agent コンソールに入力したものです。課金対象の呼び出しを実行する前に、ガードレールは必ずライブ料金を取得し、コストを見積もり、調査ごとの予算 $10.00 と照合します。異なるのは結果だけです。見積もりは定価に基づいており、AWS 無料利用枠の適用分は含まれません。

シナリオ A:対象を絞り、時間枠を指定したリクエスト(続行)

SRE は次のように依頼します。

「今日の 13:57~14:27 UTC に us-east-1 の payments-prod-alb で発生した 5xx エラーを調査してください」

30 分の時間枠が指定されているため、スキルは Amazon CloudWatch Logs Insights のスキャン量を算出できます。スキャン量は 1.34 GB で、ライブ料金は $0.005/GB なので、コストは $0.0067 です。$10.00 の予算内なので、クエリは実行され、調査が続行されます。

Figure 2: Live rate, scan estimate, and budget check before the first paid call, followed by validation of the actual cost. Actual costs vary by Region, data volume, and current pricing.

図 2:最初の課金対象呼び出し前にライブ料金、スキャン見積もり、予算チェックが実施され、その後、実際のコストを検証。実際のコストはリージョン、データ量、現在の料金によって異なります。

シナリオ B:1 か月分のデータを対象とする広範なリクエスト(停止して確認)

クラウドアーキテクトは次のように依頼します。

「9 月全体の payments-api のすべての 5xx エラーと DynamoDB のスロットリングを相関分析してください」

スキャン対象は 2,673 GB、コストは $13.37 になるため、エージェントは開始前に停止し、料金付きの選択肢を提示します。追加の $3.37 を承認する、対象期間を 7 日間($3.74)、24 時間($0.54)、またはインシデントの時間枠($0.007)に短縮する、データスキャン料金のないメトリクス相関を使用する、あるいはここで終了する、という選択肢です。この時点では、データは一切スキャンされていません。

Figure 3: The agent halts over budget and gives the engineer priced ways to continue. Actual costs vary by Region, data volume, and current pricing.

図 3:エージェントは予算超過時に停止し、エンジニアが続行するための選択肢を料金付きで提示。実際のコストはリージョン、データ量、現在の料金によって異なります。

シナリオ C:有料スキャンを行わないよう指示したリクエスト(スキャン料金のない API に切り替え)

DevOps エンジニアは次のように依頼します。

「02:45~03:15 UTC に payments-worker が payments-events-dlq へイベントを送信している理由を調べてください。今回は有料のスキャンを一切実行しないでください」

2 つの有料呼び出しについて料金が算出されます。ワーカーのロググループに対する Amazon CloudWatch Logs Insights クエリ(38.37 GB、$0.19)と、12 個のメトリクスを取得する GetMetricData バッチ($0.004)です。どちらも予算内ですが、エンジニアが有料スキャンを除外したため、エージェントはデータスキャン料金のない代替手段に切り替えます。エラーが既知の文字列であるため FilterLogEvents を使用し、GetMetricData の代わりに、メトリクスを 1 つずつ取得する GetMetricStatistics を使用します。後者は AWS 無料利用枠の CloudWatch API リクエスト数に計上されます。その結果、checkout-api の新しいリリースによってイベントスキーマが変更されたことが判明しました。

Figure 4: Within budget but skipped on the engineer’s instruction; the agent shows which calls without data-scan charge replace the Logs Insights query and the GetMetricData batch.

図 4:予算内でもエンジニアの指示に従ってスキップし、Logs Insights クエリと GetMetricData バッチの代わりとなる、データスキャン料金のない呼び出しを表示。

より広いパターン:トークン予算からアクション予算へ

このガードレールは、従量課金 API を呼び出す自律型 AI エージェントの設計パターンを示しています。エージェントは行動する前に、その行動にどれくらいの費用がかかるかを把握できます。

これは、AI エージェントの経済性を、トークン予算(推論のコスト)からアクション予算(実行のコスト)へと捉え直すものです。エージェントがツールへアクセスできる場合、真の価値が生まれるのは、エージェントが実行する下流のアクションです。その価値を事前に可視化することで、意図的かつ利用者が承認した予算へと変えることができます。

クラウドアーキテクトや SRE は、何年もかけてこの感覚を身につけます。コストガードレールにより、エージェントは初日からこの感覚を備え、一貫して適用します。午前 3 時のインシデント対応を含め、プレッシャーのかかる状況でも、この規律を維持できるように設計されています。

技術的な実装

このスキルは、コアエージェントを変更することなく、エージェントの既存のスキル階層へ組み込まれます。各調査の前に、次の手順で事前チェックとして実行されます。

  1. エージェントによる探索結果(クエリを実行する予定のロググループ、メトリクス、トレース)を読み取る
  2. 計画された各操作を 4 つのレイヤーで分類する
  3. AWS Price List API からリージョンごとのライブ料金を取得する
  4. コストの完全な内訳とともに、構造化された判定(続行または一時停止)を返す
  5. 一時停止する場合は、スコープを絞るための具体的なガイダンスを提供する

AWS DevOps Agent は、すべてのセッションに権限のガードレールを適用します。常時適用されるポリシーであるエージェントインストラクションと、オペレーターに明示的な承認を求めるダイレクテッドアクションを組み合わせることで、利用者が定義した境界内でエージェントを運用し続けることができます。

開始方法

Investigation Cost Guardrail は、AWS の GitHub 組織にあるオープンソースリポジトリ aws/tools-for-devops-agent で公開されており、AWS DevOps Agent サービスチームが管理しています。このリポジトリには、インポートしたり独自にカスタマイズしたりできる、コミュニティ作成のスキル、カスタムエージェント、MCP サーバーが含まれています。

前提条件

  • 少なくとも 1 つの AWS アカウントが接続された AWS DevOps Agent の Agent Space
  • Agent Space が引き受ける IAM ロールを更新する権限

手順 1:IAM 権限を付与する

このスキルは、見積もり時に AWS Price List Query API を使用してすべての料金を取得します。接続されている各アカウントで、Agent Space が引き受ける IAM ロールに、次のポリシーをアタッチします。権限の詳細については、スキルの README にある Required IAM permissions を参照してください。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "ResolveLivePricing",
      "Effect": "Allow",
      "Action": "pricing:GetProducts",
      "Resource": "*"
    }
  ]
}

手順 2:スキルをインストールする

次の 2 つの方法のいずれかで、スキルを Agent Space に追加します。

オプション A:GitHub 統合(チームに推奨):aws/tools-for-devops-agent をフォークするか、skills/investigation-cost-guardrail/ ディレクトリを自分で管理するリポジトリにコピーし、Agent Space の GitHub 統合を通じてインポートします。これにより、スキルをバージョン管理下に置き、コミットを固定し、プルリクエストで SKILL.md の変更をレビューし、独自の検索パターンで references/pricing-reference.md を拡張できます。

オプション B:直接アップロード:リポジトリからスキルを .zip としてダウンロードし、Agent Space コンソールでユーザー定義スキルとしてアップロードします。アーカイブでは、スキルディレクトリのルートに SKILL.md を置き、その隣に references/ フォルダーを配置する必要があります。

investigation-cost-guardrail/
├── SKILL.md
└── references/
    └── pricing-reference.md

手順 3:スペースレベルの指示を追加する

スキルは、説明とのマッチングに基づいてオンデマンドで読み込まれます。各調査でコストガードレールが読み込まれるようにするためには、Agent Space のインストラクションに次の内容を追加します。

“Before executing any tool call that interacts with AWS or third-party
services, ALWAYS consult the cost guardrail skill to estimate cost and check
budget. Never skip cost evaluation”

日本語訳:「AWS またはサードパーティーサービスとやり取りするツール呼び出しを実行する前に、コストの見積もりと予算の確認のため、必ずコストガードレールスキルを参照してください。コスト評価を決して省略しないでください」

これは、前述した 2 つの仕組みを組み合わせたものです。指示は常設命令であり、スキルはその命令によって呼び出される能力です。

手順 4:環境に合わせてしきい値を調整する

このスキルには、調査ごとに $10.00 という保守的なデフォルト予算が設定されています。Agent Space の設定に自然言語の指示を追加するか、SKILL.md ファイルを直接編集することで上書きできます。たとえば、「調査ごとの予算を $25.00 にしてください」と指定します。

スキルファイルを編集せずに、既知の有料操作レジストリを拡張したり、特定の操作に対する制御を強化したりすることもできます。

  • opensearch:Search を、1,000 リクエストあたり $0.01 の有料操作として扱う
  • Athena クエリを実行する前に必ず承認を求める

手順 5:検証する

ガードレールが有効であることを確認するため、2 つの調査を実行します。

最初に、データ量の多いロググループに対して時間枠を指定せず、たとえば「order-service のエラーを調査してください」という調査を開始します。エージェントは logs:StartQuery を実行する前に停止し、ロググループに保持されている全データ量から算出した最悪ケースの見積もりを提示し、時間枠または既知のエラー文字列を求めるはずです。

次に、時間枠を限定して繰り返します。「今日の 14:00~14:30 UTC に order-service で発生したエラーを調査してください」と入力します。調査タイムラインには、最初の課金対象呼び出しの前に予算ステータスブロックが表示され、各料金には、その料金がどのリージョン向けに取得されたかが明記され、調査が続行されるはずです。

COST CHECK
Budget: $10.00 | Spent: $0.00000 | Next: 1 × logs:StartQuery (6.4 GB × $0.005/GB) → $0.03200 | Projected: $0.03200
WITHIN BUDGET
Proceeding

最初の調査が一時停止せずに進んだ場合は、手順 3 のスペースレベルの指示が存在することを確認してください。2 つ目の調査が料金取得エラーで停止した場合は、pricing:GetProducts のアクセス許可とツールポリシーにおける us-east-1 の許可を再確認してください。

クリーンアップ

ガードレールと、それを支える設定を削除するには、セットアップ手順を元に戻します。

  • 手順 3 で追加したスペースレベルの指示を Agent Space の指示から削除する
  • Agent Space が引き受ける IAM ロールから、pricing:GetProducts のインラインポリシー(および追加した読み取り専用のサイジングポリシー)を削除する
  • Agent Space から Investigation Cost Guardrail スキルを削除する

まとめ

AWS DevOps Agent は自律的なイベント対応を実現します。その自律性にコスト意識を加えることで、チームは運用成熟度の次の段階へ進むことができます。つまり、利用者が定義した透明性のある予算内でインシデントを迅速に解決できます。

Investigation Cost Guardrail は、経験豊富なエンジニアが本能的に理解している原則、すなわち実行前にコストを評価するという原則を適用します。サービスを横断して操作を分類し、AWS Price List API からリージョンごとの現在の料金を取得して、調査コストを透明性があり、利用者が管理できる予算へと変えます。エージェントの速度を低下させるものではありません。エージェントにコスト判断力を与えるものです。

開始するには、GitHub の tools-for-devops-agent から Investigation Cost Guardrail スキルをクローンし、AWS DevOps Agent の設定に追加して、調査にコストを意識した事前チェックを導入してください。

新しいコスト分類や料金パターンについてアイデアがありますか。このガードレールは自由に拡張できます。investigation-cost-guardrail をフォークし、チームが最も頻繁に実行する操作を追加して、独自の料金モデルを参照するようにしてください。構築したものを共有するには、Issue を作成するか、プルリクエストを送信してください。

Ines Attia

Ines Attia

Ines は AWS のテクニカルアカウントマネージャーです。エンタープライズのお客様と協力し、スケーラブルでレジリエントかつ Well-Architected なワークロードを設計しています。クラウドアーキテクチャに関する専門知識を生かし、オブザーバビリティと AIOps を運用上の優秀性の向上に適用し、技術上の選択をビジネス成果へ結び付けています。

Tipu Qureshi

Tipu Qureshi

Tipu は AWS のシニアプリンシパルエンジニアで、DevSecOps 向けエージェンティック AI システムのフルスタック設計と実装を率いています。最先端の AI モデル、専門スキル、MCP ツールを活用する自律型エージェントを構築し、クラウド運用、開発者ワークフロー、カスタマーサポートを変革しています。15 年以上にわたり、運用上の優秀性への情熱を持って、多様な分散システムを大規模に設計、運用、構築してきました。

本ブログは、2026 年 10 月 6 日に公開された「Control investigation costs before they start with AWS DevOps Agent」の日本語訳です。翻訳はテクニカルアカウントマネージャーの日平が行いました。