Amazon Bedrock과 Claude Agent SDK로 서버리스 멀티 에이전트 시스템 구축
Amazon Bedrock과 Claude Agent SDK를 사용하여 AWS Lambda 기반 멀티 에이전트 시스템을 구축하는 방법을 제시
Orchestrator-Worker 패턴을 적용하여 코드 리뷰, 테스트, 리팩터링 등 다양한 작업 병렬 처리
Bedrock 네이티브 인증을 통해 API 키 관리 없이 IAM 기반 인증을 구현하여 보안 강화
S3를 활용한 컨텍스트 공유 및 결과 저장을 통해 Lambda 페이로드 제한 극복
Sonnet과 Opus 모델을 조합하여 비용 효율적인 멀티 에이전트 시스템 구축
Orchestrator-Worker 아키텍처의 설계
본 아키텍처는 Orchestrator-Worker 패턴(Orchestrator-Worker Pattern)을 기반으로, Amazon Bedrock과 Claude Agent SDK를 활용하여 멀티 에이전트 시스템을 구축한다. Orchestrator Lambda는 작업을 분할하고, 전문화된 Worker Lambda(reviewer, tester, refactorer)를 병렬로 실행한다. 각 Worker는 독립적인 실행 환경을 가지며, S3를 통해 작업 컨텍스트를 공유한다. 최종 결과는 Opus 모델을 통해 종합되며, 이러한 구조는 확장성(Scalability)과 유연성(Flexibility)을 동시에 확보하는 데 기여한다. 특히, 각 Worker가 15분 타임아웃을 개별적으로 가지므로, 에이전트의 복잡한 작업 수행 시 안정성을 보장한다.
Amazon Bedrock을 활용한 인증 및 운영 이점
Amazon Bedrock을 사용하면 IAM 기반 네이티브 인증(IAM-based Native Authentication)을 통해 API 키 관리 없이 안전하게 모델을 호출할 수 있다. Lambda 실행 역할에 Bedrock 호출 권한만 부여하면 인증이 완료되므로, API 키 유출 위험(API Key Leakage)을 줄이고 운영 편의성을 높인다. 또한, 교차 리전 추론(Cross-Region Inference)을 통해 가용성을 높이고, CloudWatch와의 통합으로 토큰 사용량과 지연 시간을 모니터링할 수 있다. 이러한 기능들은 서버리스 환경(Serverless Environment)에서 효율적인 운영을 가능하게 하며, 비용 최적화(Cost Optimization)에도 기여한다.
S3를 활용한 데이터 관리 전략
S3는 Orchestrator와 Worker 간의 데이터 교환을 위한 중앙 집중형 저장소(Centralized Storage)로 활용된다. Orchestrator는 작업 컨텍스트를 S3에 저장하고, Worker는 해당 컨텍스트를 읽어 작업을 수행한다. Worker의 실행 결과는 S3에 저장되며, Lambda 응답 크기 제한을 우회하기 위해 요약 정보만 Lambda 응답에 포함된다. S3 수명 주기 정책을 통해 작업 데이터는 7일 후 자동 삭제되도록 설정하여 데이터 관리 효율성(Data Management Efficiency)을 높인다. 이러한 S3 활용은 데이터 격리 아키텍처(Data Isolation Architecture)를 구현하고, Lambda의 무상태성(Statelessness)을 유지하는 데 기여한다.
Claude Agent SDK를 활용한 에이전트 구현
Claude Agent SDK는 Python SDK(Python SDK)로, Claude의 에이전트 기능을 프로그래밍 방식으로 호출할 수 있도록 지원한다. 핵심 API는 query() 함수와 ClaudeAgentOptions 설정 객체이며, system_prompt를 통해 에이전트의 역할을 정의하고, allowed_tools를 통해 사용 가능한 도구를 지정한다. 본문에서는 Skill 기반 에이전트(Skill-based Agent)를 정의하여 코드 리뷰, 테스트 작성, 리팩터링 작업을 수행하도록 구현했다. 특히, permission_mode="bypassPermissions" 설정을 통해 도구 실행 권한을 자동 승인하며, Lambda 환경에서 에이전트의 자율성(Autonomy)을 극대화한다.
비용 효율적인 모델 선택 및 최적화
본 아키텍처는 Sonnet 4.6과 Opus 4.6 모델을 조합하여 비용 효율성을 확보한다. 코드 리뷰나 테스트 작성 작업에는 토큰당 비용이 저렴한 Sonnet을 사용하고, 여러 에이전트의 결과를 종합하는 작업에는 Opus를 사용한다. 이러한 전략은 전체를 Opus로 실행하는 경우 대비 토큰 비용을 약 40% 절감할 수 있다. 또한, Worker Lambda의 실행 시간을 최소화하고, S3를 활용하여 데이터 전송 비용을 줄이는 등, 전반적인 비용 최적화(Cost Optimization)를 위한 노력을 기울였다. 이러한 접근 방식은 서버리스 환경(Serverless Environment)에서 비용 효율적인 멀티 에이전트 시스템 구축을 가능하게 한다.