Product Architecture Overview

엔드 서비스 2종 · Product A — AI Ready Data SaaS (AWS) · Product B — LLM 보안 게이트 (K3s 어플라이언스) — 공통 Frontend / Auth + 백엔드 서비스를 양 플랫폼에 배포

역할 중심 아키텍처 · 마이크로서비스 모노레포 (frontend / backend / infra)

Frontend SPA
Product (제품 진입점)
Platform / Core (공통)
Domain (단일 책임)
Worker (비동기)
AWS 인프라
K3s 인프라
◆ End Service A · AWS Product A — AI Ready Data SaaS (멀티테넌트) AI Ready Data 제품. 여러 고객이 한 클라우드를 공유. 인증·데이터·과금을 AWS 매니지드 서비스에 위임하고 백엔드는 컨테이너로 운영.
Users · 사용자
Product A Customer
AI Ready Data를 생성·다운로드하는 SaaS 고객 (멀티테넌트)
로그인 · 제품 화면
Frontend
product-a-web
AI Ready Data 생성·시각화·리포트 대시보드. 제품 A의 사용자 화면
auth-web · 공통
로그인·회원가입 화면, Auth Code 발급. 양 제품 공통 인증 관문
Authorization: Bearer
Edge · 트래픽 관문
CloudFront
SPA를 전 세계에 배포하고 보안 헤더를 입히는 CDN 진입점
Cognito
이메일·소셜 로그인 사용자 풀. 신원 발급·검증 담당
API Gateway
외부 API 요청의 단일 입구. 인가 검사 후 내부 서비스로 라우팅
WAF · ALB
공격 차단(WAF)과 실시간 통신용 로드밸런서
인가 통과 후 내부 라우팅
Product Service 제품 진입점
product-a
제품 A의 두뇌. datasets·agent·billing을 합성해 제품 화면이 필요로 하는 응답을 조립
product-b
제품 B 서비스 — K3s 어플라이언스 전용
Platform / Core 전 제품 공통
account
사용자·인증. Cognito/Keycloak을 감싸 로그인·토큰을 처리
organization
조직·멤버십·초대 관리
billing
결제·구독·크레딧 정산
community
커뮤니티·고객 지원
observability
감사 로그·사용량 집계(읽기 전용)
Domain 단일 책임
datasets
데이터셋 등록·검증·버전 관리
agent
에이전트 정의·실행 메타 관리, 실행 이벤트 발행
llmgateway
여러 LLM 프로바이더를 하나의 인터페이스로 추상화
rag
문서 검색 — K3s 전용, AWS 미배포
Workers 비동기 처리
general-worker
이메일·알림 등 크로스서비스 비동기 잡, 비식별 워크플로
worker-agent-runner
에이전트 실행 파이프라인을 워크플로로 구동
worker-event-forwarder
이벤트를 분석 레이크·외부 시스템으로 전달
worker-notification-sender
알림·메일을 실제 채널로 송신
데이터 영속화 · 이벤트
Data & Bus AWS 관리형 + 셀프호스트 버스
RDS Aurora PostgreSQL
서비스들의 주 트랜잭션 DB (관리형)
S3 Event Lake
이벤트·분석 원본 객체 저장소 (관리형)
EventBridge · Batch
워크플로 트리거·대용량 배치 (관리형)
Secrets Manager · SES
시크릿 보관·이메일 발송 (관리형)
NATS
서비스 간 이벤트 버스 (ECS 셀프호스트)
Temporal
비동기 워크플로 엔진 (ECS, DB는 Aurora)
BI 대시보드
분석 대시보드 (셀프호스트, Aurora 조회)
배포: AWS CodePipeline — 빌드·테스트·마이그레이션·배포 자동화. develop→dev, main→prod
◆ End Service B · K3s On-prem Product B — LLM 보안 게이트 어플라이언스 (단일테넌트) 고객사 데이터센터에 통째로 설치되는 LLM 보안 게이트. 데이터가 외부로 안 나가도록 저장소·인증·모델 추론까지 클러스터 안에서 자급. 오프라인 환경 양립.
Users · 사용자
Product B Operator
고객사 내부에서 LLM 보안 채팅을 쓰는 사내 사용자·관리자 (단일테넌트)
로그인 · 제품 화면
Frontend 클러스터 내 호스팅
product-b-client-web
LLM 채팅·비식별·비교·관리자 화면. SaaS/온프레 분기
auth-web · 공통
로그인 화면, Auth Code 발급. 온프레 브랜드 카드로 분기
Authorization: Bearer
Ingress & Auth · 관문/인증
Traefik (ip-direct)
실배포는 고객사 IP 직접 접속·포트 라우팅. 터널은 데모 환경만
Keycloak
사내 신원·세션 발급(OIDC). 정부 요건의 슬라이딩 세션 정책
OPA-Proxy
모든 요청의 인가를 정책으로 판정하는 게이트
인가 통과 후 서비스 호출
Product Service 제품 진입점
product-b
제품 B의 두뇌. 채팅·문서 비식별·RAG를 묶어 안전한 LLM 응답을 조립
product-a
제품 A 서비스 — AWS 전용, K3s 미배포
Platform / Core 전 제품 공통
account
사용자·인증. Keycloak을 감싸 로그인·토큰을 처리
organization
조직·멤버십·초대 관리
billing
결제·구독·크레딧 정산
community
커뮤니티·고객 지원
observability
감사 로그·사용량 집계(읽기 전용)
Domain 단일 책임
datasets
데이터셋 등록·검증 — AWS 전용, K3s 미배포
agent
에이전트 정의·실행 메타 관리, 실행 이벤트 발행
llmgateway
여러 LLM 프로바이더를 하나의 인터페이스로 추상화. PII 마스킹 경유
rag ★ K3s 전용
사내 문서를 임베딩·검색하고 질의 의도를 분류
Workers 비동기 처리
general-worker
알림·비식별 워크플로 등 크로스서비스 비동기 잡
worker-agent-runner
에이전트 실행 파이프라인을 워크플로로 구동
worker-event-forwarder
이벤트를 분석·외부 시스템으로 전달
worker-notification-sender
알림·메일을 실제 채널로 송신(SMTP)NEW
data-redaction-sync
파일 비식별 처리를 동기화 (K3s 전용)
admin-analytics-refresh
관리자 분석 데이터 갱신NEW
클러스터 내 영속화 · 추론
In-cluster Data / Infra 자급
PostgreSQL + PgBouncer
앱 데이터베이스와 커넥션 풀
RustFS
S3 호환 객체 저장소. 업로드 파일·비식별 산출물 보관
Qdrant
RAG 벡터 저장소
NATS · Temporal
이벤트 버스·워크플로 엔진
Secret Manager · OCI Registry
시크릿 관리·사내 이미지 레지스트리
배포: GitHub Actions(self-hosted) — main 머지 시 변경된 네임스페이스를 클러스터에 자동 적용. 설치는 어플라이언스 인스톨러로 일괄