

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Terraform を使用して CrewAI フレームワークで Amazon Bedrock にエージェンティックシステムを展開する
<a name="deploy-agentic-systems-on-amazon-bedrock-with-the-crewai-framework"></a>

*Amazon Web Services、Vanitha Dontireddy*

## 概要
<a name="deploy-agentic-systems-on-amazon-bedrock-with-the-crewai-framework-summary"></a>

このパターンは、[Amazon Bedrock](https://aws.amazon.com/bedrock/?nc1=h_ls) および [Terraform](https://registry.terraform.io/) と統合された [CrewAI](https://www.crewai.com/) フレームワークを使用して、拡張性のあるマルチエージェント AI システムを実装する方法を示しています。このソリューションにより、組織は Infrastructure as Code (IaC) を通じて高度な AI エージェントワークフローを作成、展開、管理できます。このパターンでは、CrewAI マルチエージェントオーケストレーション機能を Amazon Bedrock 基盤モデルと Terraform インフラストラクチャ自動化と組み合わせています。その結果、チームは人間による監視を最小限に抑えながら、複雑なタスクに取り組むためのリリース可能な AI システムを構築できます。このパターンは、エンタープライズ等級のセキュリティ、スケーラビリティ、運用に対する最良の手法を実装しています。

## 前提条件と制限
<a name="deploy-agentic-systems-on-amazon-bedrock-with-the-crewai-framework-prereqs"></a>

**前提条件**
+ [Amazon Bedrock 基盤モデルにアクセス](https://docs.aws.amazon.com/bedrock/latest/userguide/model-access.html)するための適切なアクセス許可 AWS アカウント を持つアクティブな
+ Terraform バージョン 1.5 以降が[インストール済み](https://developer.hashicorp.com/terraform/install)
+ Python バージョン 3.9 以降[がインストールされている](https://www.python.org/downloads/)
+ CrewAI フレームワークが[インストール済み](https://docs.crewai.com/installation)

**制限事項**
+ エージェントとのやり取りは、モデルコンテキストウィンドウによって制限されます。
+ 大規模なデプロイでは、Terraform ステート管理に関する考慮事項がこのパターンに適用されます。
+ 一部の AWS のサービス は では使用できません AWS リージョン。利用可能なリージョンについては、「[AWS サービス (リージョン別)](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)」を参照してください。特定のエンドポイントについては、「[サービスエンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html)」を参照して、サービスのリンクを選択してください。

## アーキテクチャ
<a name="deploy-agentic-systems-on-amazon-bedrock-with-the-crewai-framework-architecture"></a>

このパターンでは、次の相互作用が発生します。
+ Amazon Bedrock は、一連の基盤モデル (FM) を通じてエージェントインテリジェンスの基盤を提供します。これにより、高可用性とスケーラビリティを維持しながら、AI エージェントの自然言語処理 (NLP)、論理的思考、意思決定能力を実現します。
+ CrewAI フレームワークは、AI エージェントを作成および管理するためのコアオーケストレーションレイヤーとして機能します。Amazon Bedrock と統合しながら、エージェントの通信プロトコル、タスクの委譲、ワークフロー管理を処理します。
+ Terraform は、コンピューティングリソース、ネットワーク、セキュリティグループ、 AWS Identity and Access Management (IAM) ロールなどのコードを通じてインフラストラクチャスタック全体を管理します。これにより、環境間で一貫性のある、バージョン管理されたデプロイが保証されます。Terraform デプロイでは、次の機能が作成されます。
  + AWS Lambda CrewAI アプリケーションを実行する 関数
  + コードとレポート用の Amazon Simple Storage Service (Amazon S3) バケット
  + 適切なアクセス許可を持つ IAM ロール
  + Amazon CloudWatch ログ
  + Amazon EventBridge によってスケジュールされた実行

次の図は、Amazon Bedrock と Terraform を使用して CrewAI マルチエージェントシステムを展開するためのアーキテクチャを示しています。

![\[Terraform と Amazon Bedrock を使用して CrewAI マルチエージェントシステムを展開するワークフロー。\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/images/pattern-img/b46069e9-4c38-405f-b0f0-310eabb06b06/images/b3296b17-e388-46ba-8d71-2ec7ce3ed3e0.png)


この図表は、次のワークフローを示しています:

1. ユーザーはリポジトリを複製します。

1. ユーザーは コマンドを実行して AWS リソース`terraform apply`をデプロイします。

1. Amazon Bedrock モデル設定には、CrewAI エージェントの設定に使用する基盤モデル (FM) の指定が含まれます。

1. EventBridge ルールが確立され、定義されたスケジュールに従って Lambda 関数の実行が開始されます。

1. (スケジュールまたは手動で) トリガーされると、Lambda 関数は と Amazon Bedrock へのアクセス許可を持つ IAM ロールを初期化 AWS のサービス して引き受けます。

1. CrewAI フレームワークは、YAML ファイルからエージェント設定をロードし、特殊な AI エージェント (*AWS インフラストラクチャセキュリティ監査*クルー) を作成します。Lambda 関数は、これらのエージェントを順次実行して、 AWS リソースをスキャンし、セキュリティの脆弱性を分析し、包括的な監査レポートを生成します。

1. CloudWatch Logs は、365 日間の保持期間とコンプライアンス要件のための AWS Key Management Service (AWS KMS) 暗号化を使用して、Lambda 関数から詳細な実行情報をキャプチャします。ログは、エージェントのアクティビティ、エラー追跡、パフォーマンスメトリックを可視化し、セキュリティ監査プロセスの効果的なモニタリングとトラブルシューティングを可能にします。

1. セキュリティ監査レポートが自動的に生成され、指定された Amazon S3 バケットに保存されます。自動セットアップは、運用上のオーバーヘッドを最小限に抑えながら、セキュリティモニタリングの一貫性を維持するのに役立ちます。

最初のデプロイ後、ワークフローは、手動で介入することなく AWS 、インフラストラクチャの継続的なセキュリティ監査とレポートを提供します。

**AI エージェントの概要**

このパターンでは、それぞれに一意のロール、目標、ツールを持つ、複数の AI エージェントを作成します。
+ **セキュリティアナリストエージェント**は、 AWS リソース情報を収集して分析します。
+ **ペネトレーションテスターエージェント**は、 AWS リソースの脆弱性を特定します。
+ **コンプライアンスエキスパートエージェント**は、コンプライアンス標準に照らして設定をチェックします。
+ **レポートライターエージェント**は、検出結果を包括的なレポートに編集します。

これらのエージェントは、一連のタスクで共同作業を行い、集合的なスキルを活用してセキュリティ監査を実行し、包括的なレポートを生成します。(この `config/agents.yaml` ファイルは、このクルーでの各エージェントの機能と設定の概要を示しています。)

セキュリティ分析処理は、次のアクションで構成されます。

1. セキュリティアナリストエージェントは、次のような AWS リソースについて収集されたデータを調べます。
   + Amazon Elastic Compute Cloud (Amazon EC2) インスタンスとセキュリティグループ
   + Amazon S3 バケットと設定
   + IAM ロール、ポリシー、およびアクセス権限
   + 仮想プライベートクラウド (VPC) の設定とネットワーク設定
   + Amazon RDS データベースとセキュリティ設定
   + Lambda 関数と設定
   + 監査範囲内 AWS のサービス のその他

1. 侵入テスターエージェントは潜在的な脆弱性を特定します。

1. エージェントは CrewAI フレームワークを通じて共同作業を行い、検出結果を共有します。

レポート生成は、次のアクションで構成されます。

1. レポートライターエージェントは、他のすべてのエージェントの検出結果を編集します。

1. セキュリティの問題は、サービス、重要度、コンプライアンスへの影響の分類で整理されています。

1. 特定された問題ごとに修復のための推奨事項が生成されます。

1. 包括的なセキュリティ監査レポートはマークダウン記法で作成され、指定された Amazon S3 バケットにアップロードされます。履歴レポートは、コンプライアンス追跡とセキュリティ体制の改善のために保持されます。

ログ記録とモニタリングアクティビティには以下が含まれます。
+ CloudWatch ログは、実行の詳細とエラーをキャプチャします。
+ Lambda 実行メトリックはモニタリングのために記録されます。

**注記**  
のコード`aws-security-auditor-crew`は、 AWS サンプルコレクションで利用可能な GitHub [3P-Agentic\$1frameworks](https://github.com/aws-samples/3P-Agentic-Frameworks/blob/main/crewai/aws-security-auditor-crew/README.md) リポジトリから取得されます。

**可用性とスケール**

使用可能なエージェントは、4 つ以上のコアエージェントに拡張できます。追加の専門エージェントに合わせてスケールするには、次の新しいエージェントタイプを検討します。
+ *脅威インテリジェンススペシャリスト*エージェントは、以下を実行できます。
  + 外部の脅威フィードをモニタリングし、内部検出結果と関連付けます
  + インフラストラクチャに関連する新たな脅威に関する背景を提供します。
  + 実環境での悪用に基づいて脆弱性の優先順位付けをする
+ *コンプライアンスフレームワーク*エージェントは、次のような特定の規制分野に集中できます。
  + Payment Card Industry Data Security Standard (PCI DSS) コンプライアンスエージェント
  + 1996 年の医療保険の携行性と責任に関する法律 (HIPAA) コンプライアンスエージェント
  + System and Organization Controls 2 (SOC 2) コンプライアンスエージェント
  + EU 一般データ保護規則 (GDPR) コンプライアンスエージェント

利用可能なエージェントを慎重に拡張することで、このソリューションは大規模な AWS 環境全体でスケーラビリティを維持しながら、より深く、より専門的なセキュリティインサイトを提供できます。実装方法、ツール開発、スケールに関する考慮事項の詳細については、「[追加情報](#deploy-agentic-systems-on-amazon-bedrock-with-the-crewai-framework-additional)」を参照してください。

## ツール
<a name="deploy-agentic-systems-on-amazon-bedrock-with-the-crewai-framework-tools"></a>

**AWS のサービス**
+ [Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-bedrock.html) は、高パフォーマンスな基盤モデル (FM) を、統合 API を通じて利用できるようにする完全管理型 AI サービスです。
+ [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) を使用すると、すべてのシステム、アプリケーション、および からのログを一元化 AWS のサービス できるため、ログをモニタリングして安全にアーカイブできます。
+ [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) は、アプリケーションをさまざまなソースのリアルタイムデータに接続できるようにするサーバーレスイベントバスサービスです。例えば、 AWS Lambda 関数、API 送信先を使用する HTTP 呼び出しエンドポイント、その他のイベントバスなどです AWS アカウント。このパターンでは、エージェントワークフローのスケジューリングとオーケストレーションに使用されます。
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) は、誰が認証され、誰に使用を許可するかを制御することで、 AWS リソースへのアクセスを安全に管理できます。
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) は、サーバーのプロビジョニングや管理を行うことなくコードを実行できるコンピューティングサービスです。必要に応じてコードを実行し、自動的にスケーリングするため、課金は実際に使用したコンピューティング時間に対してのみ発生します。
+ [AWS SDK for Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) は、Python アプリケーション、ライブラリ、またはスクリプトを と統合するのに役立つソフトウェア開発キットです AWS のサービス。
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) は、あらゆる量のデータを保存、保護、取得できるクラウドベースのオブジェクトストレージサービスです。このパターンでは、エージェントアーティファクトとステート管理用のオブジェクトストレージを提供します。

**その他のツール**
+ [CrewAI](https://www.crewai.com/open-source) は、マルチエージェント AI システムを構築するためのオープンソースで Python ベースのフレームワークです。
+ 「[Terraform](https://www.terraform.io/)」は、HashiCorp の infrastructure as code (IaC) ツールで、クラウドとオンプレミスのリソースの作成と管理を支援します。

**コードリポジトリ**

このパターンのコードは、GitHub 「[deploy-crewai-agents-terraform](https://github.com/aws-samples/deploy-crewai-agents-terraform.git)」リポジトリから入手可能です。

## ベストプラクティス
<a name="deploy-agentic-systems-on-amazon-bedrock-with-the-crewai-framework-best-practices"></a>
+ Amazon S3 バックエンドを Amazon DynamoDB ロックと共に使用して、Terraform の適切な状態管理を実装します。詳細については、*「Terraform AWS プロバイダーを使用するためのベストプラクティス*」の[「バックエンド](https://docs.aws.amazon.com/prescriptive-guidance/latest/terraform-aws-provider-best-practices/backend.html)のベストプラクティス」を参照してください。
+ ワークスペースを使用して、開発環境、ステージング環境、本番環境を分離します。
+ 最小特権の原則に従い、タスクの実行に必要最小限のアクセス許可を付与します。詳細については、IAM ドキュメントの「[最小限の特権を認める。](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv)」と「[IAM でのセキュリティのベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)」を参照してください。
+ CloudWatch ログを使用して詳細なログ記録とモニタリングを有効にします。
+ エージェントオペレーションの再試行メカニズムとエラー処理を実装します。

## エピック
<a name="deploy-agentic-systems-on-amazon-bedrock-with-the-crewai-framework-epics"></a>

### CrewAI フレームワークを展開する
<a name="deploy-crewai-framework"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| リポジトリのクローン作成 | ローカルマシンでこのパターンのリポジトリの複製を作成するには、次のコマンドを実行します。<pre>git clone "git@github.com:aws-samples/deploy-crewai-agents-terraform.git"<br />cd deploy-crewai-agents-terraform</pre> | DevOps エンジニア | 
| 環境変数を編集します。 | 環境変数を編集するには、以下の手順を実行します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/deploy-agentic-systems-on-amazon-bedrock-with-the-crewai-framework.html) | DevOps エンジニア | 
| インフラストラクチャを作成する。 | インフラストラクチャを作成するには、次のコマンドを実行します。<pre>cd terraform</pre><pre>terraform init</pre><pre>terraform plan</pre>実行計画を注意深く確認します。計画された変更が許容できる場合は、次のコマンドを実行します。<pre>terraform apply --auto-approve</pre> | DevOps エンジニア | 

### CrewAI エージェントにアクセスする
<a name="access-crewai-agents"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| エージェントにアクセスする。 |  AWS インフラストラクチャセキュリティ監査およびレポートクルーのエージェントは、Lambda 関数としてデプロイされます。エージェントにアクセスするには、次の手順を使用します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/deploy-agentic-systems-on-amazon-bedrock-with-the-crewai-framework.html) | DevOps エンジニア | 
| (オプション) エージェントの手動実行を設定する。 | エージェントは、毎日のスケジュール (UTC 午前 0 時) で自動的に実行されるように設定されています。ただし、次の手順を使用して手動で実行を開始できます。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/deploy-agentic-systems-on-amazon-bedrock-with-the-crewai-framework.html)詳細については、「Lambda ドキュメント」の「[コンソールでの Lambda 関数のテスト](https://docs.aws.amazon.com/lambda/latest/dg/testing-functions.html)」を参照してください。 | DevOps エンジニア | 
| デバッグ用のエージェントログにアクセスする。 | CrewAI エージェントは、セキュリティ監査を実行し、Amazon S3 にレポートを保存するために必要なアクセス許可を持つ Lambda 環境で実行されています。出力は、 AWS インフラストラクチャの包括的なセキュリティ分析を提供するマークダウンレポートです。エージェントの動作の詳細なデバッグを支援するには、以下の手順を実行します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/deploy-agentic-systems-on-amazon-bedrock-with-the-crewai-framework.html) | DevOps エンジニア | 
| エージェント実行の結果を表示する。 | エージェント実行の結果を表示するには、次の手順を実行します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/deploy-agentic-systems-on-amazon-bedrock-with-the-crewai-framework.html)レポートは、次のようなタイムスタンプベースのファイル名で保存されます。`security-audit-report-YYYY-MM-DD-HH-MM-SS.md)` | DevOps エンジニア | 
| エージェントの実行をモニタリングする。 | CloudWatch Logs を使用してエージェントの実行をモニタリングするには、次の手順を実行します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/deploy-agentic-systems-on-amazon-bedrock-with-the-crewai-framework.html) | DevOps エンジニア | 
|  エージェントの動作をカスタマイズする。 | エージェントもしくはそのタスクを変更するには、次の手順を実行します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/deploy-agentic-systems-on-amazon-bedrock-with-the-crewai-framework.html)<pre>cd terraform </pre><pre>terraform apply</pre> | DevOps エンジニア | 

### リソースをクリーンアップする
<a name="clean-up-resources"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| 作成したリソースを削除します。 | このパターンによって作成されたすべてのインフラストラクチャを削除するには、次のコマンドを実行します。<pre>terraform plan -destroy </pre>次のコマンドは、このパターンによって作成されたすべてのリソースを完全に削除します。リソースを削除する前にコマンドから確認を求められます。破棄計画は注意して確認してください。計画された削除が許容される場合は、次のコマンドを実行します。<pre>terraform destroy</pre> | DevOps エンジニア | 

## トラブルシューティング
<a name="deploy-agentic-systems-on-amazon-bedrock-with-the-crewai-framework-troubleshooting"></a>


| 問題 | ソリューション | 
| --- | --- | 
| エージェントの動作 | この問題の詳細については、Amazon Bedrock ドキュメントの「[Test and troubleshoot agent behavior](https://docs.aws.amazon.com/lambda/latest/dg/troubleshooting-networking.html)」を参照してください。 | 
| Lambda ネットワークの問題 | これらの問題の詳細については、「Lambda ドキュメント」の「[Lambda でのネットワーク問題のトラブルシューティング](https://docs.aws.amazon.com/lambda/latest/dg/troubleshooting-networking.html)」を参照してください。 | 
| IAM アクセス許可 | これらの問題の詳細については、IAM ドキュメントの「[IAM のトラブルシューティング](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot.html)」を参照してください。 | 

## 関連リソース
<a name="deploy-agentic-systems-on-amazon-bedrock-with-the-crewai-framework-resources"></a>

**AWS ブログ**
+ 「[Build agentic systems with CrewAI and Amazon Bedrock](https://aws.amazon.com/blogs/machine-learning/build-agentic-systems-with-crewai-and-amazon-bedrock/)」

**AWS ドキュメント**
+ [Amazon Bedrock ドキュメント](https://docs.aws.amazon.com/bedrock/)
+ [Amazon Bedrock エージェントの仕組み](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-how.html)
+ [AWS Well-Architected フレームワーク](https://docs.aws.amazon.com/wellarchitected/latest/framework/welcome.html)

**その他のリソース**
+ [CrewAI ドキュメント](https://docs.crewai.com/introduction)
+ [Terraform AWS プロバイダーのドキュメント](https://registry.terraform.io/providers/hashicorp/aws/latest/docs)

## 追加情報
<a name="deploy-agentic-systems-on-amazon-bedrock-with-the-crewai-framework-additional"></a>

このセクションでは、先の[自動化とスケール](#deploy-agentic-systems-on-amazon-bedrock-with-the-crewai-framework-architecture)の議論に関連して、実装アプローチ、ツール開発、スケールに関する考慮事項について説明します。

**実装アプローチ**

エージェントを追加する際、次のアプローチを検討してください。

1. エージェントの設定
   + `config/agents.yaml` ファイルに新しいエージェント定義を追加します。
   + エージェントごとに特殊なバックストーリー、目標、ツールを定義します。
   + エージェントの専門分野に基づいてメモリと分析機能を設定します。

1. タスクのオーケストレーション
   + `config/tasks.yaml` ファイルを更新して、新しいエージェント固有のタスクを含めます。
   + タスク間に依存関係を作成して、適切な情報フローを確保します。
   + 必要に応じて並列タスク実行を実装します。

**技術的な実装**

次に示すのは、提案された脅威インテリジェンススペシャリストエージェントの `agents.yaml` ファイルへの追加です。

```
Example new agent configuration in agents.yaml
threat_intelligence_agent:
 name: "Threat Intelligence Specialist"
 role: "Cybersecurity Threat Intelligence Analyst"
 goal: "Correlate AWS security findings with external threat intelligence"
 backstory: "Expert in threat intelligence with experience in identifying emerging threats and attack patterns relevant to cloud infrastructure." 
verbose: true 
allow_delegation: true 
tools: 
- "ThreatIntelligenceTool" 
- "AWSResourceAnalyzer"
```

**ツール開発**

CrewAI フレームワークを使用すると、セキュリティ監査のクルーの有効性を高めるために、次のアクションを取ることができます。
+ 新しいエージェントのカスタムツールを作成します。
+ 脅威インテリジェンスのために外部 API と統合します。
+ さまざまな 専用のアナライザーを開発します AWS のサービス。

**スケーリングに関する考慮事項**

 AWS インフラストラクチャセキュリティ監査およびレポートシステムを拡張して大規模な環境やより包括的な監査を処理する場合は、次のスケーリング要因に対処します。
+ **計算リソース**
  + Lambda メモリ割り当てを増やして、追加のエージェントを処理します。
  + エージェントワークロードを複数の Lambda 関数に分割することを検討します。
+ **コスト管理**
  + エージェント数の増加に応じて Amazon Bedrock API の使用状況をモニタリングします。
  + 監査範囲に基づいて選択的なエージェントの有効化を実装します。
+ **コラボレーション効率**
  + エージェント間の情報共有を最適化します。
  + 複雑な環境のために階層型エージェント構成を実装します。
+ **知識ベースの機能強化**
  + エージェントにドメインの専門知識ベースを提供します。
  + 新しいセキュリティのベストプラクティスを使用して、エージェントの知識を定期的に更新します。