Terraform을 사용하여 CrewAI 프레임워크를 사용하여 Amazon Bedrock에 에이전트 시스템 배포 - 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Terraform을 사용하여 CrewAI 프레임워크를 사용하여 Amazon Bedrock에 에이전트 시스템 배포

Vanitha Dontireddy, Amazon Web Services

요약

이 패턴은 Amazon BedrockTerraform과 통합된 CrewAI 프레임워크를 사용하여 확장 가능한 다중 에이전트 AI 시스템을 구현하는 방법을 보여줍니다. 이 솔루션을 통해 조직은 코드형 인프라(IaC)를 통해 정교한 AI 에이전트 워크플로를 생성, 배포 및 관리할 수 있습니다. 이 패턴에서 CrewAI 다중 에이전트 오케스트레이션 기능은 Amazon Bedrock 파운데이션 모델 및 Terraform 인프라 자동화와 결합됩니다. 따라서 팀은 최소한의 인적 감독으로 복잡한 작업을 처리하는 프로덕션 지원 AI 시스템을 구축할 수 있습니다. 이 패턴은 엔터프라이즈급 보안, 확장성 및 운영 모범 사례를 구현합니다.

사전 조건 및 제한 사항

사전 조건 

제한 사항

  • 에이전트 상호 작용은 모델 컨텍스트 기간에 따라 제한됩니다.

  • 대규모 배포에 대한 Terraform 상태 관리 고려 사항이이 패턴에 적용됩니다.

  • 일부 AWS 서비스 는 전혀 사용할 수 없습니다 AWS 리전. 리전 가용성은 AWS 리전별 서비스를 참조하세요. 특정 엔드포인트는 서비스 엔드포인트 및 할당량을 참조하고 서비스 링크를 선택합니다.

아키텍처

이 패턴에서는 다음과 같은 상호 작용이 발생합니다.

  • Amazon Bedrock은 파운데이션 모델(FMs) 제품군을 통해 에이전트 인텔리전스의 기반을 제공합니다. 이를 통해 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 다중 에이전트 시스템을 배포하는 워크플로입니다.

이 다이어그램은 다음 워크플로를 보여줍니다.

  1. 사용자가 리포지토리를 복제합니다.

  2. 사용자가 명령을 실행terraform apply하여 AWS 리소스를 배포합니다.

  3. Amazon Bedrock 모델 구성에는 CrewAI 에이전트를 구성하는 데 사용할 파운데이션 모델(FM)을 지정하는 작업이 포함됩니다.

  4. EventBridge 규칙은 정의된 일정에 따라 Lambda 함수를 트리거하도록 설정됩니다.

  5. 트리거되면(일정에 따라 또는 수동으로) Lambda 함수는 및 Amazon Bedrock에 액세스할 수 있는 권한이 있는 IAM 역할을 초기화 AWS 서비스 하고 수임합니다.

  6. CrewAI 프레임워크는 YAML 파일에서 에이전트 구성을 로드하고 특수 AI 에이전트(AWS 인프라 보안 감사 팀)를 생성합니다. Lambda 함수는 이러한 에이전트를 순차적으로 실행하여 AWS 리소스를 스캔하고, 보안 취약성을 분석하고, 포괄적인 감사 보고서를 생성합니다.

  7. CloudWatch Logs는 365일의 보존 기간과 규정 준수 요구 사항에 대한 AWS Key Management Service (AWS KMS) 암호화를 사용하여 Lambda 함수에서 자세한 실행 정보를 캡처합니다. 로그는 에이전트 활동, 오류 추적 및 성능 지표에 대한 가시성을 제공하여 보안 감사 프로세스의 효과적인 모니터링 및 문제 해결을 지원합니다.

  8. 보안 감사 보고서는 자동으로 생성되어 지정된 Amazon S3 버킷에 저장됩니다. 자동 설정은 운영 오버헤드를 최소화하면서 일관된 보안 모니터링을 유지하는 데 도움이 됩니다.

초기 배포 후 워크플로는 수동 개입 없이 AWS 인프라에 대한 지속적인 보안 감사 및 보고를 제공합니다.

AI 에이전트 개요

이 패턴은 각각 고유한 역할, 목표 및 도구를 가진 여러 AI 에이전트를 생성합니다.

  • 보안 분석가 에이전트는 AWS 리소스 정보를 수집하고 분석합니다.

  • 침투 테스터 에이전트는 AWS 리소스의 취약성을 식별합니다.

  • 규정 준수 전문가 에이전트는 규정 준수 표준을 기준으로 구성을 확인합니다.

  • 보고서 작성자 에이전트는 조사 결과를 포괄적인 보고서로 컴파일합니다.

이러한 에이전트는 보안 감사를 수행하고 포괄적인 보고서를 생성하기 위해 집합적 기술을 활용하여 일련의 작업에 협업합니다. (이 config/agents.yaml 파일은이 트러프에 있는 각 에이전트의 기능과 구성을 간략하게 설명합니다.)

보안 분석 처리는 다음 작업으로 구성됩니다.

  1. 보안 분석가 에이전트는 다음과 같은 AWS 리소스에 대해 수집된 데이터를 검사합니다.

    • Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스 및 보안 그룹

    • Amazon S3 버킷 및 구성

    • IAM 역할, 정책 및 권한

    • Virtual Private Cloud(VPC) 구성 및 네트워크 설정

    • Amazon RDS 데이터베이스 및 보안 설정

    • Lambda 함수 및 구성

    • 기타 감사 범위 AWS 서비스 내

  2. 침투 테스터 에이전트는 잠재적 취약성을 식별합니다.

  3. 에이전트는 CrewAI 프레임워크를 통해 협업하여 결과를 공유합니다.

보고서 생성은 다음 작업으로 구성됩니다.

  1. 보고서 작성자 에이전트는 다른 모든 에이전트의 결과를 컴파일합니다.

  2. 보안 문제는 서비스, 심각도 및 규정 준수 영향별로 구성됩니다.

  3. 식별된 각 문제에 대해 해결 권장 사항이 생성됩니다.

  4. 포괄적인 보안 감사 보고서는 마크다운 형식으로 생성되어 지정된 Amazon S3 버킷에 업로드됩니다. 규정 준수 추적 및 보안 태세 개선을 위해 기록 보고서가 보존됩니다.

로깅 및 모니터링 활동은 다음과 같습니다.

  • CloudWatch 로그는 실행 세부 정보와 오류를 캡처합니다.

  • Lambda 실행 지표는 모니터링을 위해 기록됩니다.

참고

에 대한 코드는 AWS 샘플 컬렉션에서 사용할 수 있는 GitHub 3P-Agentic_frameworks 리포지토리에서 aws-security-auditor-crew 가져옵니다.

가용성 및 규모 조정

사용 가능한 에이전트를 4명 이상의 코어 에이전트로 확장할 수 있습니다. 추가 특수 에이전트로 규모를 조정하려면 다음과 같은 새 에이전트 유형을 고려하세요.

  • 위협 인텔리전스 전문 에이전트는 다음을 수행할 수 있습니다.

    • 외부 위협 피드를 모니터링하고 내부 조사 결과와 상호 연관시킵니다.

    • 인프라와 관련된 새로운 위협에 대한 컨텍스트를 제공합니다.

    • 와일드에서 활성 악용을 기반으로 취약성 우선 순위 지정

  • 규정 준수 프레임워크 에이전트는 다음과 같은 특정 규제 영역에 집중할 수 있습니다.

    • Payment Card Industry Data Security Standard(PCI DSS) 규정 준수 에이전트

    • HIPAA(Health Insurance Portability and Accountability Act of 1996) 규정 준수 에이전트

    • 시스템 및 조직 제어 2(SOC 2) 규정 준수 에이전트

    • 일반 데이터 보호 규정(GDPR) 규정 준수 에이전트

이 솔루션은 사용 가능한 에이전트를 신중하게 확장하여 대규모 AWS 환경에서 확장성을 유지하면서 더 심층적이고 전문화된 보안 인사이트를 제공할 수 있습니다. 구현 접근 방식, 도구 개발 및 조정 고려 사항에 대한 자세한 내용은 추가 정보를 참조하세요.

도구

AWS 서비스

  • Amazon Bedrock은 통합 API를 통해 고성능 파운데이션 모델(FMs)을 사용할 수 있도록 하는 완전관리형 AI 서비스입니다.

  • Amazon CloudWatch Logs를 사용하면 모든 시스템, 애플리케이션 및의 로그를 중앙 집중화 AWS 서비스 하여 모니터링하고 안전하게 보관할 수 있습니다.

  • Amazon EventBridge는 애플리케이션을 다양한 소스의 실시간 데이터와 연결할 수 있는 서버리스 이벤트 버스 서비스입니다. 예를 들어 AWS Lambda 함수, API 대상을 사용하는 HTTP 호출 엔드포인트 또는 다른의 이벤트 버스 등이 있습니다 AWS 계정. 이 패턴에서는 에이전트 워크플로를 예약하고 오케스트레이션하는 데 사용됩니다.

  • AWS Identity and Access Management (IAM)는 AWS 리소스에 대한 액세스를 인증하고 사용할 수 있는 권한을 부여받은 사용자를 제어하여 리소스에 대한 액세스를 안전하게 관리하는 데 도움이 됩니다.

  • AWS Lambda는 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행하는 데 도움이 되는 컴퓨팅 서비스입니다. 필요할 때만 코드를 실행하며 자동으로 확장이 가능하므로 사용한 컴퓨팅 시간만큼만 비용을 지불합니다.

  • AWS SDK for Python (Boto3)는 Python 애플리케이션, 라이브러리 또는 스크립트를와 통합하는 데 도움이 되는 소프트웨어 개발 키트입니다 AWS 서비스.

  • Amazon Simple Storage Service(S3)는 원하는 양의 데이터를 저장, 보호 및 검색하는 데 도움이 되는 클라우드 기반 객체 스토리지 서비스입니다. 이 패턴에서는 에이전트 아티팩트 및 상태 관리를 위한 객체 스토리지를 제공합니다.

기타 도구

  • CrewAI는 다중 에이전트 AI 시스템을 구축하기 위한 오픈 소스 Python 기반 프레임워크입니다.

  • Terraform은 HashiCorp의 코드형 인프라(IaC) 도구로, 클라우드 및 온프레미스 리소스를 생성하고 관리하는 데 도움이 됩니다.

코드 리포지토리

이 패턴의 코드는 GitHub deploy-crewai-agents-terraform 리포지토리에서 사용할 수 있습니다.

모범 사례

  • Amazon DynamoDB 잠금과 함께 Amazon S3 백엔드를 사용하여 Terraform에 대한 적절한 상태 관리를 구현합니다. 자세한 내용은 Terraform 공급자 사용 모범 사례의 백엔드 모범 사례를 참조하세요. AWS

  • 워크스페이스를 사용하여 개발, 스테이징 및 프로덕션 환경을 분리합니다.

  • 최소 권한 원칙을 따르고 작업을 수행하는 데 필요한 최소 권한을 부여합니다. 자세한 내용은 IAM 설명서의 최소 권한 부여보안 모범 사례를 참조하세요.

  • CloudWatch Logs를 통해 세부 로깅 및 모니터링을 활성화합니다.

  • 에이전트 작업에 대한 재시도 메커니즘 및 오류 처리를 구현합니다.

에픽

작업설명필요한 기술

리포지토리를 복제합니다.

로컬 시스템에서이 패턴의 리포지토리를 복제하려면 다음 명령을 실행합니다.

git clone "git@github.com:aws-samples/deploy-crewai-agents-terraform.git" cd deploy-crewai-agents-terraform
DevOps 엔지니어

환경 변수를 편집합니다.

환경 변수를 편집하려면 다음을 수행합니다.

  1. terraform 디렉터리의 예제terraform.tfvars.example에서 terraform.tfvars 파일을 생성합니다.

  2. 사용자 고유의 정보를 사용하도록 환경 변수를 편집합니다.

DevOps 엔지니어

인프라를 생성합니다.

인프라를 생성하려면 다음 명령을 실행합니다.

cd terraform
terraform init
terraform plan

실행 계획을 주의 깊게 검토합니다. 계획된 변경 사항이 허용 가능한 경우 다음 명령을 실행합니다.

terraform apply --auto-approve
DevOps 엔지니어
작업설명필요한 기술

에이전트에 액세스합니다.

AWS 인프라 보안 감사 및 보고 팀의 에이전트는 Lambda 함수로 배포됩니다. 에이전트에 액세스하려면 다음 단계를 사용합니다.

  1. 에 로그인 AWS Management Console 하고 https://console.aws.amazon.com/lambda/ AWS Lambda 콘솔을 엽니다.

  2. 함수 페이지에서 {project_name}\function(Terraform 변수에 정의됨)이라는 함수를 찾은 다음 선택합니다.

  3. 함수 페이지에서 다음 작업을 수행할 수 있습니다.

    • 구성 세부 정보를 봅니다.

    • 실행 지표를 모니터링합니다.

    • CloudWatch 로그를 봅니다.

    • 함수를 수동으로 테스트합니다.

DevOps 엔지니어

(선택 사항) 에이전트의 수동 실행을 구성합니다.

에이전트는 매일 일정(자정 UTC)에 따라 자동으로 실행되도록 구성됩니다. 그러나 다음 단계를 사용하여 수동으로 트리거할 수 있습니다.

  1. Lambda 콘솔에서 라는 함수를 선택합니다{project_name}.

  2. 함수 페이지에서 테스트 탭을 선택합니다.

  3. 빈 JSON 객체를 사용하여 새 테스트 이벤트를 생성합니다{}.

  4. 이벤트를 실행하려면 테스트를 선택합니다.

자세한 내용은 Lambda 설명서의 콘솔에서 Lambda 함수 테스트를 참조하세요.

DevOps 엔지니어

디버깅을 위해 에이전트 로그에 액세스합니다.

CrewAI 에이전트는 보안 감사를 수행하고 Amazon S3에 보고서를 저장하는 데 필요한 권한이 있는 Lambda 환경에서 실행됩니다. 출력은 AWS 인프라에 대한 포괄적인 보안 분석을 제공하는 마크다운 보고서입니다.

에이전트 동작의 세부 디버깅을 지원하려면 다음을 수행합니다.

  1. 에서 CloudWatch Logs로 AWS Management Console이동합니다.

  2. Lambda 함수의 로그 그룹을 찾습니다.

  3. 에이전트 이름이 있는 로그 항목을 찾습니다(예: 인프라 매핑 전문가탐색 보안 분석가).

  4. 로그를 검토하여 각 에이전트의 작업에 대한 인사이트를 확인합니다.

DevOps 엔지니어

에이전트 실행 결과를 봅니다.

에이전트 실행 결과를 보려면 다음을 수행합니다.

  1. 에서 Amazon S3로 AWS Management Console이동합니다.

  2. {project_name}-reports-{random_suffix} (Terraform 변수에 정의된 대로)라는 Amazon S3 버킷을 엽니다.

보고서는 다음과 같이 타임스탬프 기반 파일 이름으로 저장됩니다. security-audit-report-YYYY-MM-DD-HH-MM-SS.md)

DevOps 엔지니어

에이전트 실행을 모니터링합니다.

CloudWatch 로그를 통해 에이전트의 실행을 모니터링하려면 다음을 수행합니다.

  1. 에서 CloudWatch로 AWS Management Console이동합니다.

  2. 로그 그룹으로 이동합니다.

  3. 라는 로그 그룹을 선택합니다/aws/lambda/{project_name}-function.

  4. 로그 스트림에서 최신 로그 스트림을 선택하여 자세한 실행 정보를 확인합니다.

DevOps 엔지니어

에이전트 동작을 사용자 지정합니다.

에이전트 또는 해당 작업을 수정하려면 다음을 수행합니다.

  1. 로컬 리포지토리의 구성 파일을 업데이트합니다.

    • 다음 파일은 각 에이전트의 역할, 기능 및 설정을 정의합니다. src/aws_infrastructure_security_audit_and_reporting/config/agents.yaml

    • 다음 파일은 에이전트의 작업 및 워크플로를 정의합니다.

    src/aws_infrastructure_security_audit_and_reporting/config/tasks.yaml

  2. Lambda 함수를 다시 패키징하고 업데이트하려면 다음 명령을 사용합니다.

cd terraform
terraform apply
DevOps 엔지니어
작업설명필요한 기술

생성된 리소스를 삭제합니다.

이 패턴으로 생성된 모든 인프라를 삭제하려면 다음 명령을 실행합니다.

terraform plan -destroy
주의

다음 명령은이 패턴으로 생성된 모든 리소스를 영구적으로 삭제합니다. 명령을 실행하면 리소스를 제거하기 전에 확인 메시지가 표시됩니다.

폐기 계획을 주의 깊게 검토합니다. 계획된 삭제가 허용 가능한 경우 다음 명령을 실행합니다.

terraform destroy
DevOps 엔지니어

문제 해결

문제Solution

에이전트 동작

이 문제에 대한 자세한 내용은 Amazon Bedrock 설명서의 에이전트 동작 테스트 및 문제 해결을 참조하세요.

Lambda 네트워크 문제

이러한 문제에 대한 자세한 내용은 Lambda 설명서의 Lambda의 네트워킹 문제 해결을 참조하세요.

IAM 권한

이러한 문제에 대한 자세한 내용은 IAM 설명서의 IAM 문제 해결을 참조하세요.

관련 리소스

AWS 블로그

AWS 설명서

기타 리소스

추가 정보

이 섹션에는 자동화 및 규모 조정의 이전 논의와 관련된 구현 접근 방식, 도구 개발 및 규모 조정 고려 사항에 대한 정보가 포함되어 있습니다.

구현 접근 방식

에이전트를 추가하려면 다음 접근 방식을 고려하세요.

  1. 에이전트 구성:

    • config/agents.yaml 파일에 새 에이전트 정의를 추가합니다.

    • 각 에이전트에 대한 특수 백스토리, 목표 및 도구를 정의합니다.

    • 에이전트 전문 분야에 따라 메모리 및 분석 기능을 구성합니다.

  2. 작업 오케스트레이션:

    • 새 에이전트별 작업을 포함하도록 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 프레임워크를 사용하면 다음 작업을 수행하여 보안 감사 팀의 효율성을 개선할 수 있습니다.

  • 새 에이전트를 위한 사용자 지정 도구를 생성합니다.

  • 위협 인텔리전스를 위해 외부 APIs와 통합합니다.

  • 다양한를 위한 특수 분석기를 개발합니다 AWS 서비스.

조정 고려 사항

AWS 인프라 보안 감사 및 보고 시스템을 확장하여 더 큰 환경이나 더 포괄적인 감사를 처리할 때는 다음과 같은 조정 요소를 해결합니다.

  • 컴퓨팅 리소스

    • Lambda 메모리 할당을 늘려 추가 에이전트를 처리합니다.

    • 에이전트 워크로드를 여러 Lambda 함수로 분할하는 것이 좋습니다.

  • 비용 관리

    • 에이전트 수가 증가함에 따라 Amazon Bedrock API 사용량을 모니터링합니다.

    • 감사 범위에 따라 선택적 에이전트 활성화를 구현합니다.

  • 협업 효율성

    • 에이전트 간의 정보 공유를 최적화합니다.

    • 복잡한 환경을 위한 계층적 에이전트 구조를 구현합니다.

  • 지식 기반 개선 사항

    • 에이전트에게 도메인에 대한 전문 지식 기반을 제공합니다.

    • 새로운 보안 모범 사례로 에이전트 지식을 정기적으로 업데이트합니다.