단계 4: Performance Agent 설정

이 단계에서는 A2A Performance Agent를 AWS ECS의 컨테이너화된 서비스로 배포하여 고급 네트워크 모니터링 기능을 구축합니다. 이 에이전트는 트래픽 흐름을 모니터링하고, 성능 메트릭을 분석하며, 최적화 권장 사항을 제공합니다.

A2A Performance Agent 배포

workshop-module-3 디렉토리 내의 a2a-performance-agent 폴더로 이동합니다:

cd /workspace/workshop-module-3/a2a/a2a-performance-agent

A2A Performance Agent를 AWS ECS의 컨테이너화된 서비스로 배포합니다:

chmod +x deploy.sh && ./deploy.sh
chevron-right🔍 이 스크립트는 무엇을 하나요?hashtag

Performance Agent의 deploy.sh는 Connectivity Agent보다 한 단계 더 많은 작업을 수행합니다:

# deploy.sh의 핵심 부분
TASKS=(
    "script:03-connect-service-to-alb.sh"      # ECS 서비스를 ALB에 연결
    "python:update_alb_status.py"              # ALB 상태를 module3-config.json에 업데이트
)

주요 단계:

  1. 03-connect-service-to-alb.sh - ECS 서비스를 ALB에 연결

    # Connectivity Agent와 동일한 로직
    # - module3-config.json에서 설정 로드
    # - 보안 그룹 업데이트 (ALB → ECS 10006 포트)
    # - AZ 정렬 (ALB와 ECS Task가 같은 AZ에 위치)
    # - Task IP를 Target Group에 등록
    # - 헬스체크 검증
  2. update_alb_status.py - Python 스크립트로 ALB 상태 업데이트

    # module3-config.json에 Performance ALB 정보 저장
    config['performance_alb'] = {
        'dns_name': alb_dns_name,
        'arn': alb_arn,
        'target_group_arn': target_group_arn
    }

Connectivity Agent와의 차이점:

  • Connectivity: 1개 스크립트만 실행 (03-connect-service-to-alb.sh)

  • Performance: 2단계 실행 (bash → python) — ALB 상태를 config에 저장하는 단계가 추가됨

circle-info

이 단계는 완료하는 데 약 1-2분이 소요됩니다.

A2A Performance 배포

검증

모든 구성 요소가 제대로 작동하는지 확인하려면 다음 명령어를 실행합니다:

A2A Performance 검증
circle-info

선택 사항: 콘솔 기반 검증: ECS로 이동하여 a2a-agents-cluster를 확인함으로써 AWS 콘솔을 통해서도 배포를 확인할 수 있습니다.

코드 분석: Performance Agent

요청 흐름: 2개의 컨테이너와 Lambda 연결

Performance Agent 시스템은 2개의 서로 다른 컨테이너로 구성됩니다. 이 단계에서 배포하는 것은 ① A2A Server(ECS)이며, ② AgentCore Runtime(microVM)은 단계 1에서 확인한 사전 프로비저닝된 에이전트입니다.

① A2A Server (ECS) — 프로토콜 변환만 담당

이 단계에서 배포하는 ECS 컨테이너입니다. Lambda를 직접 호출하지 않습니다.

② AgentCore Runtime (microVM) — 에이전트 실행 + Lambda 호출

단계 1에서 확인한 a2a_performance_agent_runtime입니다. BedrockAgentCoreApp()으로 시작합니다.

계층별 역할 정리

계층
코드
역할

A2A Server (ECS)

agent_executer.py

A2A 프로토콜 수신 → OAuth 토큰 획득 → AgentCore API 호출

AgentCore Runtime (microVM)

main.pyagent.py

BedrockAgentCoreApp으로 요청 수신 → PerformanceAgent 생성

MCP Gateway

AWS 관리형

MCPClient가 연결 → Lambda 도구 목록 제공 및 호출 중계

Lambda 도구

lambda_function.py

실제 네트워크 분석 실행 (Flow Monitor, Traffic Mirroring, TCP 수정)

circle-info

핵심 포인트: ECS의 A2A Server는 프로토콜 변환기일 뿐, Lambda를 직접 호출하지 않습니다. Lambda 호출은 AgentCore Runtime 안의 PerformanceAgentMCP Gateway를 통해 수행합니다. 이 구조 덕분에 A2A 프로토콜 계층과 에이전트 로직이 완전히 분리됩니다.

아래에서는 Performance Agent의 시스템 프롬프트와 Lambda 도구의 구조를 살펴봅니다.

Performance Agent 시스템 프롬프트 핵심

3개 성능 분석 도구

도구
함수
기능

analyze_network_flow_monitor

PerformanceAnalyzer.analyze_network_flow_monitor()

Network Flow Monitor 전체 분석, 트래픽 요약

analyze_traffic_mirroring_logs

PerformanceAnalyzer.analyze_traffic_mirroring_logs()

S3의 PCAP 파일 tshark 분석, TCP 재전송 감지

fix_retransmissions

PerformanceAnalyzer.fix_retransmissions()

TCP 설정 최적화, tc qdisc 제거

Lambda 함수 규모 (lambda_function.py, 4,139줄)

circle-info

참고: Performance Agent의 Lambda 함수(/workspace/workshop-module-3/agentcore-performance-agent/prerequisite/lambda-performance/python/lambda_function.py)는 4,139줄로 워크샵에서 가장 복잡한 코드입니다. PerformanceAnalyzer 클래스가 모든 분석 로직을 캡슐화하고, lambda_handler는 MCP 프로토콜 요청을 라우팅하는 역할만 합니다.

A2A Agent Card 설정 (config.yaml)

circle-exclamation

이 단계가 완료되었습니다. 다음 단계로 진행하세요.

마지막 업데이트