본문으로 건너뛰기

v1.5 — Memory Store + 신규 페이지 + 컨테이너 비용

· 약 3분

AgentCore Memory Store 도입으로 사용자별 대화 이력 365일 보관. EBS, MSK, OpenSearch 신규 페이지와 ECS/EKS 컨테이너 비용 분석을 추가한 릴리스입니다.

핵심 추가

Memory Store (365일) · 4개 신규 페이지 · ECS/EKS 컨테이너 비용 · OpenCost 연동 · 하드코딩 값 3개 제거

AgentCore Memory Store

사용자별 대화 이력을 365일간 보관하는 Memory Store를 도입했습니다. src/lib/agentcore-memory.ts에서 저장/검색 로직을 관리합니다.

항목설명
보관 기간365일 (eventExpiryDuration)
사용자 분리Cognito JWT에서 email 추출 (src/lib/auth-utils.ts)
저장 데이터질문, 요약, 라우트, 사용 도구, 응답 시간
설정 스크립트06e-setup-agentcore-memory.sh
설정 파일data/config.jsonmemoryId, memoryName
Memory 이름 규칙

Memory 이름에 하이픈(-)을 사용할 수 없습니다. 언더스코어(_)만 허용됩니다. 올바른 예: awsops_memory / 잘못된 예: awsops-memory

AgentCore 페이지 통합:

  • 6개 StatsCard: 총 호출 수, 평균 응답 시간, Gateway별 호출 비율, 모델별 토큰 사용량
  • 대화 이력 검색: 키워드, 날짜 범위, 라우트별 필터

AI 페이지 통합:

  • 하단 토글 패널에서 대화 이력 조회
  • 이전 질문/응답 컨텍스트 참조 가능

신규 페이지 (4개)

페이지경로쿼리 파일주요 기능
EBS/ebsqueries/ebs.ts볼륨/스냅샷, 암호화, EC2 어태치먼트, Idle 볼륨 감지
MSK/mskqueries/msk.tsKafka 클러스터, 브로커 노드 메트릭 (CPU/Memory/Network), KRaft 모드
OpenSearch/opensearchqueries/opensearch.ts도메인, N2N/At-Rest 암호화, VPC 구성, 클러스터 상태
Resource Inventory/inventoryresource-inventory.ts18종 리소스 수량 추이 (스냅샷 기반, 추가 쿼리 0건)
Steampipe JSONB 주의사항
  • MSK: provisioned 컬럼이 JSONB로 브로커 수, 스토리지 크기 등을 포함
  • OpenSearch: encryption_at_rest_options JSONB 내 enabled 필드 확인 필요
  • 컬럼명은 반드시 information_schema.columns로 확인 후 쿼리 작성

컨테이너 비용 분석

ECS와 EKS 컨테이너 비용을 분석하는 2개 페이지와 API를 추가했습니다.

항목ECS (/container-cost)EKS (/eks-container-cost)
데이터 소스CloudWatch Container InsightsOpenCost API
폴백없음Request 기반 계산
비용 계산Fargate vCPU/GB 가격 적용Pod CPU/Memory 할당 비용
API 라우트/api/container-cost/api/eks-container-cost
설정-06f-setup-opencost.sh (Prometheus + OpenCost)

AI 라우팅 개선

항목BeforeAfter
AgentCore 설정코드 내 하드코딩data/config.json에서 ARN 읽기
도구 사용 표시없음키워드 매칭으로 MCP 도구 추론 → UI 배지
멀티 라우트 실패전체 실패Bedrock Direct 폴백
타임아웃60초90초
도구 사용 추론

AgentCore는 최종 텍스트만 반환합니다 (tool_call 태그 없음). extractUsedTools() 함수가 응답 내용에서 키워드를 매칭하여 사용된 MCP 도구를 추론하고 UI에 배지로 표시합니다.

보안 강화

이슈수정 내용
Sign OutHttpOnly 쿠키 서버 사이드 API 삭제 (POST /api/auth)
하드코딩 #1Steampipe 비밀번호 → 동적 조회
하드코딩 #2Code Interpreter ID → data/config.json
하드코딩 #3Gateway URL → data/config.json