요약
AI 기반 클라우드 운영에 대한 이 고급 워크샵을 완료하신 것을 축하합니다!
클라우드 환경에서 운영 인시던트와 일상 작업을 처리하는 방식을 혁신할 수 있는 지능형 에이전트를 성공적으로 구축하고 구현했습니다. 이 페이지에서는 워크숍 전체를 되짚어보며 각 모듈의 핵심 학습 내용, 아키텍처 진화 과정, 설계 패턴, 그리고 자주 발생하는 문제의 해결 방법을 정리합니다.
모듈별 학습 요약
모듈 1: AgentCore Runtime — 단일 에이전트 구축
핵심 질문: "하나의 AI 에이전트가 클라우드 운영 문제를 자율적으로 진단하고 해결할 수 있을까?"
구축한 것
Strands Agent + BedrockAgentCoreApp 기반 네트워크 트러블슈팅 에이전트
핵심 AWS 서비스
Bedrock AgentCore Runtime, Gateway, Identity (Cognito), Lambda
도구
dns-resolve, connectivity (VPC Reachability Analyzer), cloudwatch-monitoring
핵심 코드 패턴:
app = BedrockAgentCoreApp()
@app.entrypoint
async def invoke(payload, context):
agent = TroubleshootingAgent(bearer_token)
async for chunk in agent.stream(payload["prompt"]):
yield chunk배운 것:
Cognito OAuth2 (PKCE)로 AgentCore Runtime 인증 설정
MCP Gateway를 통해 Lambda 함수를 에이전트 도구로 연결
Gateway IAM Role로 Lambda 호출 권한을 에이전트와 분리
모듈 2: CloudWatch Investigations — AI 근본 원인 분석
핵심 질문: "복잡한 인시던트의 근본 원인을 AI가 자동으로 찾아낼 수 있을까?"
구축한 것
CloudWatch Investigation Group을 활용한 AI 기반 인시던트 분석
핵심 AWS 서비스
CloudWatch Investigations, Lambda, SQS
시나리오
IAM 정책 거부로 인한 Lambda-SQS 5XX 오류
배운 것:
Investigation Group으로 분석 대상 리소스 범위 설정
AI가 로그, 메트릭, 트레이스를 상관 분석하여 근본 원인 자동 식별
인시던트 보고서 자동 생성으로 문서화 시간 단축
모듈 3 [선택]: AgentCore Memory — 에이전트 개인화
핵심 질문: "에이전트가 이전 대화를 기억하고, 사용자 맞춤형 진단을 제공할 수 있을까?"
구축한 것
모듈 1 에이전트에 Memory Hook을 추가한 개인화 에이전트
핵심 AWS 서비스
Bedrock AgentCore Memory
메모리 전략
Semantic, Summary, User Preference
핵심 코드 패턴 — 비침투적 확장:
배운 것:
시맨틱 메모리로 사실 정보(아키텍처, 권한) 저장 및 검색
요약 메모리로 세션 간 대화 컨텍스트 자동 보존
사용자 선호도 메모리로 응답 스타일 개인화
네임스페이스(
permissions,facts,conversation)로 데이터 격리
모듈 4 [선택]: A2A 프로토콜 — 멀티 에이전트 협업
핵심 질문: "단일 에이전트의 한계를 넘어, 전문 에이전트들이 협업하여 복잡한 문제를 해결할 수 있을까?"
구축한 것
Collaborator → Connectivity Agent + Performance Agent 멀티 에이전트 시스템
핵심 AWS 서비스
ECS, ALB, Bedrock AgentCore Runtime
프로토콜
A2A (Agent-to-Agent), Agent Card, send_message_tool
2-Container 아키텍처:
배운 것:
Agent Card(
/.well-known/agent-card.json)로 에이전트 기능 공개send_message_tool로 Collaborator가 전문 에이전트에 작업 위임ALB 기반 라우팅으로 각 에이전트를 독립적으로 스케일링
Semaphore(2)+ 지수 백오프로 Bedrock API 호출 Rate Limiting
아키텍처 진화 과정
워크숍은 단일 에이전트에서 멀티 에이전트 시스템으로 점진적으로 진화합니다:
핵심 설계 패턴
워크숍 전체를 관통하는 설계 패턴을 정리합니다:
Gateway IAM Role 권한 분리
모듈 1, 3, 4
에이전트는 Lambda 직접 호출 권한 없이, Gateway IAM Role을 통해 도구에 접근. 최소 권한 원칙 적용
비침투적 Hook 확장
모듈 3
agent.py 코드 변경 없이 hooks=[memory_hook] 한 줄 추가로 메모리 기능 확장. 기존 코드의 안정성 보장
A2A Server 프로토콜 변환
모듈 4
A2A Server는 프로토콜 변환만 담당하고, 비즈니스 로직은 AgentCore Runtime의 Strands Agent가 처리. 관심사 분리
Semaphore + 지수 백오프
모듈 4
Semaphore(2)로 동시 Bedrock API 호출 제한 + 지수 백오프로 Rate Limiting 처리. 안정적인 멀티 에이전트 운영
SSM Parameter Store 설정 관리
전체
모든 설정(Cognito, Gateway, Runtime ARN 등)을 SSM에 저장하여 코드와 설정 분리
OAuth2 토큰 캐싱
모듈 4
A2A Server에서 AgentCore Runtime 호출 시 토큰을 캐싱하고, 만료 30초 전에 선제 갱신
트러블슈팅 체크리스트
워크숍 진행 중 자주 발생하는 문제와 해결 방법입니다:
문제가 발생하면 이 체크리스트를 순서대로 확인하세요.
Cognito 인증 오류
401 Unauthorized
토큰 만료 (기본 1시간)
test_agent.py를 재실행하면 자동으로 새 토큰 발급
invalid_grant
Cognito User Pool 설정 오류
SSM에서 /app/troubleshooting/agentcore/cognito/* 파라미터 확인
DNS 조회 실패
dns-resolve 도구가 호스트를 찾지 못함
Route 53 PHZ에 VPC 미연결
Route 53 콘솔 → PHZ → "VPCs 연결" 탭에서 VPC 추가
NXDOMAIN 응답
PHZ 레코드 미존재
dig reporting.examplecorp.com 으로 레코드 확인
ECS / A2A 관련 (모듈 4)
ECS Task 헬스체크 실패
보안 그룹에서 ALB 포트 미허용
보안 그룹 인바운드 규칙에 포트 8080 추가
A2A Agent 응답 없음
A2A Server 컨테이너 미시작
aws ecs describe-tasks로 태스크 상태 확인
tshark 관련 오류
tshark 미설치
sudo yum install -y wireshark-cli
AgentCore Runtime
Runtime 응답 없음
SSM 파라미터 누락
aws ssm get-parameters-by-path --path /app/troubleshooting/agentcore/ 로 확인
Runtime 생성 실패
Docker 이미지 빌드 오류
docker build 로그에서 의존성 설치 오류 확인
Gateway 도구 미표시
Target 미등록
Gateway에 Target이 올바르게 연결되었는지 확인
다음 단계
프로덕션 적용 시 고려사항
이 워크숍은 학습용 환경에서 진행되었습니다. 프로덕션 환경에 적용할 때는 다음을 추가로 고려하세요:
오토스케일링
ECS Service Auto Scaling으로 A2A Agent 수평 확장, AgentCore Runtime은 자체 서버리스 스케일링 지원
모니터링
AgentCore Observability + CloudWatch 대시보드로 에이전트 성능 메트릭 추적 (응답 시간, 도구 호출 성공률, 토큰 사용량)
비용 최적화
Bedrock 모델 호출 비용이 주요 비용 요인. 프롬프트 캐싱, 요약 메모리를 통한 컨텍스트 길이 관리 권장
보안 강화
Cognito MFA 활성화, VPC 엔드포인트를 통한 프라이빗 API 호출, IAM 정책 최소 권한 검토
장애 복원
A2A 에이전트 헬스체크 + Circuit Breaker 패턴 적용, 메모리 백업 전략 수립
참고 리소스
자세한 링크는 참고 리소스 페이지를 참조하세요.
마지막 업데이트