AWS 단일 아키텍처
1차 시도의 "3 옵션 비교"는 PPTX 의존이라 제거. 본 PoC는 단일 안으로 8주 안에 동작 시연 가능한 AWS Native 스택.
1. 아키텍처 개요
2. 레이어별 컴포넌트
2.1 Edge / Auth
| 컴포넌트 | 역할 |
|---|---|
| CloudFront | 정적 자산·SSR 캐시·WAF (한국 PoP) |
| Lambda@Edge | JWT 검증·페르소나 헤더 라우팅 |
| Cognito User Pool | 인증 + 부서·페르소나 그룹 매핑 |
2.2 Frontend
| 컴포넌트 | 역할 |
|---|---|
| Next.js 14 (App Router) | SSR + Client Components + 페르소나 스위처 |
| Cytoscape.js | KG 1-hop 시각화 (S1, S7) |
| Plotly / D3 | 차트·산점도·choropleth (S3, S5, S6) |
2.3 Backend
| 컴포넌트 | 역할 |
|---|---|
| FastAPI 3.12 | API + SSE 스트리밍 |
| ECS Fargate ARM64 | 컨테이너 런타임 (Graviton) |
| OpenTelemetry | 트레이싱 → CloudWatch + Langfuse |
2.4 AI / Agent
| 컴포넌트 | 역할 | 시나리오 |
|---|---|---|
| Bedrock Sonnet 4.6 | 챗봇·라벨링·코멘트 | S2, S3, S4, S6 |
| Cohere embed-v4 | 임베딩 (1024d) | S1, S4 |
| Cohere rerank-v3 | 재순위화 | S1 |
| AgentCore Memory | short/long-term | S2 |
| AgentCore Code Interpreter | Firecracker microVM (matplotlib·sklearn·PyMC) | S3, S4, S5, S6 |
| Bedrock Guardrails | 4 토픽 + 마케팅 동의 + PII + 미성년 화장품 | S8 |
2.5 Data Layer
| 컴포넌트 | 역할 |
|---|---|
| Amazon Neptune | KG 25 클래스, ~500K edges, openCypher |
| OpenSearch Serverless | 6 인덱스 (product/customer/review/campaign/social_trend/competitor) |
| S3 | Raw·Synth·External 데이터 + 임베딩 캐시 |
| DynamoDB | 세션·페르소나·rate limit (TTL 활용) |
2.6 Data Ingest
| 컴포넌트 | 역할 |
|---|---|
| AWS Glue | 외부 4종 데이터 ETL (소셜·기상·경제·경쟁사) |
| Lambda | PII 마스킹 + Semantic Pipeline (S3 → Neptune·OpenSearch) |
| EventBridge | 일/주/월별 외부 데이터 수집 cron |
3. 트래픽 흐름 (S2 챗봇 예시)
1. Browser → CloudFront (HTTPS, WAF)
2. CloudFront → Lambda@Edge (JWT 검증, x-persona 헤더 주입)
3. CloudFront → Next.js — /chat 페이지 SSR
4. Client → FastAPI /api/chat (SSE)
5. FastAPI → Bedrock Guardrails (입력 가드)
6. FastAPI → Bedrock Sonnet 4.6 (페르소나 system prompt + 도구 정의)
7. Sonnet tool_use → FastAPI 도구 호출
- semantic_search → OpenSearch
- neptune_query → Neptune
- trend_join → SocialSignal/WeatherSignal
- campaign_simulator → AgentCore Code Interpreter
8. 도구 결과 → Sonnet 재호출 (multi-turn)
9. 최종 응답 → Bedrock Guardrails (출력 가드)
10. SSE 토큰 스트리밍 → Browser
11. 트레이스 → CloudWatch + Langfuse