AIエージェントで指示した作業の結果をレポートするシステムのインフラ構成を構築しました!

概要

今回はAIエージェントで作業を指示し、MCPで作業した結果を要約してレポートとして保持するシステムのインフラを構築しました!

システムを構築する上で色々と考慮しながら進めたので、実際にやった結果について共有します。

システムアーキテクチャの全体像

以下アーキテクチャにより、タスクの実行・実行結果の要約・レポート生成というワークフローをフルマネージドで運用コストを低く自動化できます。

詳細ワークフロー

  1. AIエージェントで使用する情報をjson形式でSQSに送信
  2. SQSがキューをポーリングし、EventBridgeでメッセージを受信
  3. RunTask APIでAIエージェントコンテナとMCPコンテナを起動
  4. AIエージェントコンテナがMCPコンテナに指定した作業をするよう指示
  5. MCPコンテナが指定された作業を行い、結果をAIエージェントコンテナに返す
  6. AIエージェントコンテナで作業した結果を集約する
  7. 生成したレポートをS3にアップロード

各サービスの役割

Amazon SQS

データを収集するサーバーからJSON形式でメッセージを送信し、EventBridge Pipesでポーリングさせます。

バッチ処理ではなくイベントで処理をしたかったので、SQSを選定しました。

Amazon EventBridge Pipes

SQSからメッセージを受信し、ECSでAIエージェントコンテナとMCPコンテナを起動してタスクを実行します。

Lambdaよりもシンプルに管理できるため、EventBridge Pipesを選定しました。

Amazon ECS

MCP経由で作業を指示し、作業した結果からレポートを作成してAIエージェントに返します。

膨大な量のタスクを実行する必要があるので、スケーラビリティの観点からECS on Fargateを採用しました。

導入メリットと考慮事項

スケーラビリティ

ECS Fargateでサイドカーコンテナで立ち上げることでタスク数が増えてもスケールが可能です。

非同期処理

SQSによるメッセージ駆動で非同期的に処理が可能です。

運用負荷軽減

完全マネージドサービス活用により、インフラ管理コストを削減です。

メリット・デメリットのまとめ

メリットとデメリットは以下のようになります。

サービス メリット デメリット
SQS フルマネージドかつイベント駆動で処理できるため、非同期で処理できます。 正常に処理できない時はデッドレターキューで処理する必要があります。
EventBridge Pipes フルマネージドかつ簡単にSQSをトリガーとしてECSを実行できます。 コンテナの環境変数を上書きする場合、CUIで設定を管理する必要があります。
ECS Fargateを使うとスケーラビリティがあり、フルマネージドのため運用コストを下げられます。 実行するタスクが多いほどコストが上がるため、コストの見積もりが重要になります。

留意点

実際に構築する上で以下の点に気を付けて進めていました。

1.APIやAWSなど利用するサービスの制約を確認する

タスクを実行数が多いなら使用するAPIのRate LimitやAWSのサービスクォータなど制限を確認しました。

2.管理工数を少なくする

50万のタスクを2日間で実行する想定だったので、フルマネージドサービスを活用して人の手で管理をしなくて良い状態にしました。

3.コストの増加を抑える

実行するタスクが増えるほどコストが増えるので、なるべくコストを増やさないようにメモリやCPUは可能な限り少なく設定しました。

4.環境変数を上書きする

コンテナの環境変数を上書きする必要があったので、 EventBridge PipesにContainerOverridesを設定しました。

コンソール上だとContainerOverridesの設定項目がなかったのでCUIで設定しました。

まとめ

紹介したアーキテクチャでSQSによる非同期なメッセージ処理、ECS Fargateのサイドカーコンテナによるスケーラビリティ、AIエージェントとMCPの連携による作業の効率化、成果物をS3へ保存まで実現出来ました!

今回構築するにあたって短い期間で設計から実装をする必要がありました。

スピード感を持って運用面やコスト面を考慮しながらアーキテクチャを考えるのが大変で、コストの見積もりや技術の選定など作業する上でAIを手放せませんでした。

ぜひ皆さんも効率良く自動化・効率化する仕組みを考えて作成してみて下さい!