AI 에이전트를 위한 장시간 실행 태스크 처리 전략: Amazon Bedrock AgentCore와 Strands Agents 활용
AI 에이전트 기술이 급속도로 발전하며 단순한 대화형 인터페이스를 넘어 복잡한 업무를 자율적으로 수행할 수 있는 수준에 도달했습니다. 특히 인공지능 모델 학습, 대규모 데이터 처리, 장시간 시뮬레이션 등은 수 분에서 수 시간 이상 소요되는 작업들이며, 이러한 과정을 안정적으로 처리하는 아키텍처가 중요해졌습니다. 본 글에서는 Amazon Bedrock AgentCore와 Strands Agents를 활용하여 장시간 실행되는 MCP (Model Context Protocol) 서버를 구축하고, 세션 종료나 네트워크 단절에도 중단 없이 작업을 이어갈 수 있는 방법들에 대해 소개합니다.
AI 에이전트 배포와 운영에서의 주요 도전 과제 중 하나는 사용자가 세션을 종료하거나 네트워크 연결이 끊어졌을 때에도 작업이 안정적으로 수행되도록 만드는 것입니다. 이를 해결하기 위해 두 가지 핵심 전략이 제시됩니다.
- Context Messaging 방식
- 비동기 태스크 관리 (Async Task Management) 방식
각 방식은 태스크 처리 특성에 따라 장단점이 있으며, 적절한 시나리오에 따라 선택적으로 적용 가능합니다.
Context Messaging 방식
Context Messaging은 MCP의 context 객체를 활용하여 장시간 작업 중에도 클라이언트에 상태 갱신 메시지를 주기적으로 전송함으로써 HTTP 타임아웃 제한을 우회할 수 있는 방안입니다. 이 방식은 주로 10~15분 이내의 태스크에 적합하며, 비교적 구현이 간단하고 클라이언트 코드도 최소한의 변경만으로 적용 가능합니다.

간단한 예제로 에폭 반복 학습 중 ctx.report_progress()를 통해 클라이언트와의 연결을 유지하며 처리 현황을 전달할 수 있습니다. 하지만 네트워크 연결이 중간에 끊길 경우 작업이 소실되는 단점이 존재하며, 초과 소요되는 경우에는 서버 timeout에 의해 종료될 수 있습니다.
비동기 태스크 관리 (Async Task Management)
Async Task Management는 "fire-and-forget" 방식으로 클라이언트가 요청만 하고 바로 연결을 닫을 수 있도록 태스크를 백그라운드에서 독립적으로 실행합니다. 사용자에게는 태스크 ID를 반환하여 나중에 프로세스 결과를 조회할 수 있도록 하며, 네트워크 단절 상황에도 작업을 안전하게 지속할 수 있습니다.

태스크 ID 기반의 상태 확인 및 결과 조회 메서드를 통한 활용 방식은 배치 처리 시스템과 유사한 아키텍처로, 엔터프라이즈 환경에 더욱 적합합니다.
그러나 이번 글에서는 이보다 진일보한 방식으로, MCP 태스크의 결과를 Amazon Bedrock AgentCore Memory에 직접 연동하여 지속적 세션 메모리 저장소에 기록하는 전략까지 구현합니다. 이 방식은 글로벌 지연, 서버 재시작, 인스턴스 종료와 같은 상황에도 데이터를 보존하며, 지능형 에이전트를 위한 매우 견고한 구조를 제공합니다.

Amazon Bedrock AgentCore Runtime 구성
AgentCore Runtime은 MCP 서버를 서버리스 환경에서 실행하기 위한 플랫폼으로 서버 관리 없이 자동 확장, 과금 최적화, 최대 8시간 세션 유지 등의 장점을 제공합니다. 기존 Gateway 구성은 5분 제한으로 장시간 작업에는 부적합합니다.

MCP 서버에서는 agentcore_memory_client.create_event를 활용해 세션 ID, 메모리 ID, 액터 ID 기반의 식별자를 통해 AgentCore Memory에 작업 결과를 기록합니다.
세션 관리는 MCP 클라이언트와 에이전트 간의 요청 헤더에 포함된 "Mcp-Session-Id" 값을 기반으로 하며, 이 값은 session_id@@@memory_id@@@actor_id 형식의 문자열로 세 구분자를 포함합니다. 이를 통해 동일한 사용자 세션의 컨텍스트를 일관되게 유지할 수 있도록 지원합니다.
Strands Agents 통합
Strands Agents를 사용하는 경우, Bedrock AgentCore SDK에 제공되는 AgentCoreMemorySessionManager 클래스를 간단히 통합하여 지속성 있는 세션 메모리를 기본적으로 처리할 수 있습니다. 세션 메모리는 컨텍스트 ID별로 나뉘어 저장되므로, 반복적인 사용 시에도 과거 대화 히스토리나 실행 결과를 일관성 있게 재활용할 수 있습니다.
이러한 구성을 통해 AI 에이전트는 장시간 학습, 보고서 생성, 예측 모델 운영과 같은 복잡한 태스크를 사용자의 연결 상태에 관계 없이 처리 가능하며, 결과를 효율적으로 회수할 수 있게 됩니다.
결론
AI 에이전트는 이제 단순한 대화식 어시스턴트를 넘어 복잡하고 장시간 소요되는 태스크를 수행하는 현실적인 솔루션으로 성장하고 있습니다. 본 글에서 소개한 MCP 기반의 장시간 태스크 처리 전략, 특히 Amazon Bedrock AgentCore와 Strands Agents를 활용한 구조는 분산 환경과 클라우드 환경에서 AI 활용 자동화를 위한 매우 강력한 프레임워크가 될 수 있습니다.
자사 AI 프로젝트를 운영하고 있다면, 현재 처리 중인 태스크 중 어떤 작업이 장시간 실행되는지, 어떠한 부분이 세션 단절에 취약한지 점검해보시기 바랍니다. 상황에 따라 Context Messaging으로 시작하여 이후 비동기 태스크 처리, AgentCore Memory 저장 방식으로 확장하면서 안정된 운영이 가능해질 것입니다.
더 많은 정보와 가이드는 아래 링크를 참고해 주세요:
https://aws.amazon.com/blogs/machine-learning/build-long-running-mcp-servers-on-amazon-bedrock-agentcore-with-strands-agents-integration/
AI, Cloud 관련한 문의는 아래 연락처로 연락주세요!
(주)에이클라우드
이메일 : acloud@a-cloud.co.kr
회사 번호 : 02-538-3988
회사 홈페이지 : https://www.a-cloud.co.kr/
문의하기
