[Hands-On] Amazon Bedrock AgentCore를 사용한 Strands 에이전트 배포

1. 개요

AI 에이전트의 실험 단계를 넘어 실제 운영 환경으로 전환할 때, 우리는 확장성, 보안, 관리의 어려움이라는 현실적인 문제에 직면합니다. 이 워크숍에서는 Amazon Bedrock AgentCore를 사용하여 이러한 과제를 해결하고, 아이디어를 실제 서비스로 구현하는 방법을 학습합니다.

AgentCore는 대규모 AI 에이전트를 안전하게 배포하고 운영할 수 있도록 설계된 완전 관리형 서비스입니다. 이 실습 과정에서는 AgetnCore를 사용한 Strands 에이전트를 배포하고 프롬프트를 통해 답변을 받아보겠습니다.

2. 학습 목표

이 실습을 마치면, 여러분은 단순한 AI 에이전트 프로토타입을 넘어, 실제 비즈니스 환경에서 안정적으로 운영될 수 있는 프로덕션 수준의 AI 에이전트를 구축하고 관리하는 역량을 갖추게 됩니다.

  • Amazon Bedrock AgentCore 개념 정립
    • AI 에이전트의 운영 및 관리를 위한 서비스인 AgentCore의 역할과 아키텍처를 이해하고, 개발 환경과의 차이점을 설명할 수 있습니다.
  • 프로덕션용 에이전트 구성 능력
    • 실제 운영 환경의 보안, 확장성, 안정성 요구사항에 맞춰 Bedrock 에이전트의 버전 관리, 권한 설정, 리소스 할당 등 고급 설정을 직접 구성할 수 있습니다.
  • 실무 배포 프로세스 수행
    • 개발 및 테스트가 완료된 에이전트를 Amazon Bedrock AgentCore를 사용하여 실제 운영 환경에 배포하는 전체 과정을 처음부터 끝까지 수행할 수 있습니다.
  • 체계적인 테스트 및 검증
    • 개발 환경과 실제 프로덕션 환경의 차이점을 이해하고, 각 환경에 맞는 테스트 전략을 수립하여 에이전트의 기능과 안정성을 종합적으로 검증할 수 있습니다.
  • 운영 및 관리 역량 확보
    • 에이전트 배포 후, 모니터링 도구를 활용하여 호출 로그, 성능 지표, 오류 등을 추적하고, 운영 중 발생하는 문제를 해결하는 방법을 학습합니다.
    • 새로운 버전의 에이전트를 서비스 중단 없이 안전하게 업데이트하고 관리하는 방법을 익힙니다.

3. Amazon Bedrock AgentCore란?

Amazon Bedrock 에이전트 코어

Amazon Bedrock AgentCore는 AI 에이전트를 실제 운영 환경에 안정적으로 배포하고 관리하기 위한 완전 관리형 서비스입니다. 이 서비스를 사용하면 개발자는 서버 관리, 트래픽 변화에 따른 인프라 확장, 보안 구성과 같은 복잡한 운영 부담에서 벗어나 에이전트의 핵심 비즈니스 로직 개발에만 집중할 수 있습니다.

AgentCore는 사용량에 따라 리소스를 자동으로 조절하고, IAM 및 VPC를 통해 엔터프라이즈급 보안을 제공하며, CloudWatch와 연동하여 상세한 모니터링을 지원합니다. 덕분에 개발자는 ‘작동하는 프로토타입’을 ‘안정적인 상용 서비스’로 빠르고 안전하게 전환할 수 있습니다.

4. 사전 조건

  • 자격 증명이 구성된 AWS 계정 ( aws configure)
  • Python 3.10 이상
  • Docker 또는 Finch가 설치 및 실행 중임 – 로컬 개발에만 해당
  • 모델 액세스: Amazon Bedrock 콘솔 에서 Anthropic Claude 4.0 활성화
  • AWS 권한:
    • BedrockAgentCoreFullAccess관리 정책
    • AmazonBedrockFullAccess관리 정책
    • Caller permissions

5. 에이전트 설치 및 생성

에이전트 설치 및 생성

pip install bedrock-agentcore strands-agents bedrock-agentcore-starter-toolkit

python3.10 이상인 환경에서 bedrock-agentcore, strands-agents, bedrock-agentcore-starter-toolkit 3개의 패키지를 다운로드 합니다.

그 후, 에이전트 코드의 소스 파일인 my_agent.py를 만듭니다.

from bedrock_agentcore import BedrockAgentCoreApp
from strands import Agent

app = BedrockAgentCoreApp()
agent = Agent()

@app.entrypoint
def invoke(payload):
    """Your AI agent function"""
    user_message = payload.get("prompt", "Hello! How can I help you today?")
    result = agent(user_message)
    return {"result": result.message}

if __name__ == "__main__":
    app.run()

requirements.txt 파일도 만듭니다.

cat > requirements.txt << EOF
bedrock-agentcore
strands-agents
EOF

6. 로컬 테스트

터미널을 2개 띄워서 서버/클라이언트로 테스트 해봅니다.

서버 실행

# Start your agent
python my_agent.py

클라이언트

# Test it (in another terminal)
curl -X POST http://localhost:8080/invocations \
  -H "Content-Type: application/json" \
  -d '{"prompt": "Hello!"}'

서버를 실행시키고, 클라이언트 쪽 터미널에서 명령을 입력하면 {“result”: “Hello! I’m here to help…”}와 같은 답변이 옵니다.

서버 로깅

그러면 서버 쪽 터미널에도 로그가 찍히게 됩니다.

로컬에서 테스트를 마쳤으니 실제로 Amazon Bedrock AgentCore로 배포해보겠습니다.

7. AWS 에이전트 배포

# Configure and deploy (auto-creates all required resources)
agentcore configure -e my_agent.py
agentcore launch

configure이 완료되었으면, 이어서 launch를 합니다.

콘솔에서도 launch한 에이전트를 확인할 수 있습니다.

8. 배포된 에이전트와 상호 작용

에이전트가 배포되고 “준비” 상태가 되면 AgentCore CLI나 제공된 Python 스크립트를 사용하여 에이전트와 상호 작용할 수 있습니다.

8.1 AgentCore CLI 사용

# Ask about AWS pricing information
agentcore invoke '{"prompt": "What is the pricing for AWS Lambda in us-east-1?"}'

CLI를 통해 프롬프트를 입력하고 답변을 받을 수 있으며, CloudWatch Log group에서도 확인 가능합니다.

8.2 Python 스크립트 사용

AWS에서 제공하는 스크립트를 사용하여 에이전트와 상호 작용해보겠습니다.
– https://github.com/build-on-aws/agentic-workshop/blob/main/prod_agent/invoke_cdk_agent.py

  • boto3를 사용하여 Break AgentCore API와 상호 작용
  • 대화 상호작용을 위한 세션 관리 지원
  • 유연성을 위한 명령어 인수 제공
  • 대화를 계속하기 위해 세션 ID 저장
# Run the script with a prompt
python3 invoke_cdk_agent.py --prompt "What are the key features of AWS CDK?" --region us-east-1

동일한 세션 ID를 사용하여 대화를 계속할 수 있습니다.

# Get the session ID from the previous run
SESSION_ID=$(cat last_session_id.txt)

# Continue the conversation
python3 invoke_cdk_agent.py --prompt "How does it compare to CloudFormation?" --session-id $SESSION_ID --region us-east-1

9. 마무리

많은 개발자가 강력한 AI 에이전트의 프로토타입을 만들지만, 이를 실제 사용자가 안정적으로 쓸 수 있는 ‘서비스’로 전환하는 과정에서 큰 장벽에 부딪힙니다. 인프라 관리, 확장성, 보안, 모니터링 등 고려해야 할 점이 한두 가지가 아니기 때문입니다. 하지만 Amazon Bedrock AgentCore를 사용하면 이러한 운영 부담을 획기적으로 줄이고, 아이디어를 빠르게 실제 서비스로 구현할 수 있습니다.

이번 실습을 통해 우리는 바로 그 과정을 직접 경험했습니다. 간단한 Python 코드로 작성된 AI 에이전트를 컨테이너화하고, 필요한 IAM 역할을 구성하여, 클릭 몇 번만으로 완벽한 서버리스 환경에 안전하게 배포하는 데 성공했습니다. 로컬 테스트를 넘어, CloudWatch와 연동된 운영 환경에서 에이전트를 호출하고 모니터링하는 전 과정을 체험하며 Bedrock AgentCore의 강력함을 확인할 수 있었습니다.

운영 부담은 ‘제로’, 혁신에만 집중하세요

이번 실습에서 경험한 Bedrock AgentCore의 핵심 가치는 ‘단순함’과 ‘안정성’입니다. 더 이상 트래픽 예측에 따른 서버 증설이나 복잡한 보안 설정에 시간을 쏟을 필요가 없습니다. AgentCore는 다음과 같은 이점을 제공하며, 오직 비즈니스 가치를 만드는 데만 집중할 수 있도록 돕습니다.

  • 간소화된 배포: 인프라에 대한 고민 없이 코드를 바로 서비스로 전환합니다.
  • 자동 확장: 사용자가 아무리 많아져도 AWS가 알아서 부하를 처리합니다.
  • 강력한 보안: IAM, VPC, 데이터 암호화 등 AWS의 엔터프라이즈급 보안 기능이 기본으로 통합되어 있습니다.
  • 비용 최적화: 사용한 만큼만 지불하는 방식으로, 합리적인 비용으로 서비스를 운영할 수 있습니다.

다음 목표: 더 스마트한 에이전트를 향한 여정

기본적인 배포에 성공했다면, 이제 AgentCore가 제공하는 고급 기능들을 탐색해볼 차례입니다. 사용자와의 대화 내용을 기억하게 하는 메모리 관리, 안전하게 외부 도구를 사용하는 IAM 제어, 다른 서비스와 연동하는 게이트웨이 통합 등을 통해 에이전트의 능력을 한 단계 끌어올릴 수 있습니다.

10. 참고문서

  • https://catalog.us-east-1.prod.workshops.aws/workshops/fda82638-2464-49f9-b6af-0e72b157d1a9/en-US
  • https://catalog.us-east-1.prod.workshops.aws/workshops/850fcd5c-fd1f-48d7-932c-ad9babede979/en-US
  • https://github.com/awslabs/amazon-bedrock-agentcore-samples
  • https://github.com/build-on-aws/agentic-workshop

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다