“Triton은 완전히 분리된 추론 전용 서버 → FastAPI는 게이트웨이/비즈니스 계층 → Streamlit은 UI만”
Streamlit ↔ FastAPI(BFF) ↔ Triton Inference Server
UI는 API만 두드리고, API가 Triton을 두드린다.
[User Browser]
|
v (HTTP)
[Streamlit Service] --> 단순 UI/업로드/시각화
|
v (REST/JSON, sometimes WebSocket)
[FastAPI Service] --> 인증, 요청 검증(Pydantic), 전처리, 후처리, 모델선택, 캐싱, 비동기 큐
|
v (HTTP or gRPC)
[Triton Inference Server] --> 모델 로딩, 배칭, GPU 자원 관리
|
v
[Model Repository (S3/NFS/GCS/...)]
| 서비스 | 이미지 예시 | 포트 | 스케일 전략 |
|---|---|---|---|
| Streamlit | myorg/streamlit:latest | 8501 | UI 부하 따라 수평확장 |
| FastAPI | myorg/fastapi:latest | 8000 | 대부분의 요청이 여기 → 오토스케일 |
| Triton | nvcr.io/nvidia/tritonserver:<tag> | 8001(HTTP), 8000(gRPC) | GPU 수/메모리 따라 조정 |
| 모델 스토리지 | S3/GCS/NFS | - | Triton이 읽기 |
