Skip to content

[Infra] Split ML server into Feedback Server and Analyze Server #28

@fregataa

Description

@fregataa

Summary

현재 단일 ML 서버를 Feedback Server와 Analyze Server로 분리

Current State

  • 단일 ML 서버가 두 가지 기능 수행:
    • AI 텍스트 감지 (Analyze)
    • 피드백 생성 (Feedback)
  • 두 기능이 서로 다른 리소스 특성을 가짐

Proposed Architecture

┌─────────────────┐     ┌──────────────────┐
│  Analyze Server │     │  Feedback Server │
│  (AI Detection) │     │  (LLM Feedback)  │
├─────────────────┤     ├──────────────────┤
│ - RoBERTa model │     │ - TinyLlama/etc  │
│ - CPU intensive │     │ - Memory heavy   │
│ - Fast response │     │ - Slower response│
└─────────────────┘     └──────────────────┘

Benefits

  • 독립적 스케일링: 분석 요청 많으면 Analyze Server만 스케일 아웃
  • 장애 격리: 한 서버 장애가 다른 서버에 영향 없음
  • 리소스 최적화: 각 서버에 맞는 인스턴스 타입 선택 가능
  • 배포 독립성: 모델 업데이트 시 해당 서버만 배포
  • GPU 지원 용이: Analyze Server에만 GPU 인스턴스 적용 가능

Tasks

  • Analyze Server 코드 분리
  • Feedback Server 코드 분리
  • 각 서버용 Dockerfile 생성
  • ECR 리포지토리 추가 (analyze-server, feedback-server)
  • ECS Task Definition 분리
  • API Server에서 각 서버 호출 로직 수정
  • Redis 메시지 큐 토픽 분리
  • Terraform 업데이트
  • CI/CD 파이프라인 업데이트

API Changes

# Before (single ML server)
POST /analyze  → ML Server

# After (separate servers)
POST /detect   → Analyze Server
POST /feedback → Feedback Server

Dependencies

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions