피드로 돌아가기
Dev.toInfrastructure
원문 읽기
비동기 큐 기반 Docling-server 구축을 통한 GPU 기반 문서 파싱 파이프라인 최적화
Building docling-server: a one-command document API for our AI pipeline
AI 요약
Context
다양한 포맷의 비정형 문서를 Markdown으로 변환하는 IBM Docling 라이브러리를 메인 앱에 직접 통합 시, 무거운 의존성 및 CUDA 런타임으로 인한 컨테이너 비대화 발생. 특히 OCR 처리 시 발생하는 긴 응답 시간으로 인해 HTTP Timeout 및 리소스 병목 지점 형성.
Technical Solution
- FastAPI와 Celery 기반의 비동기 Task Queue 구조 채택을 통한 HTTP 연결 유지 시간 최소화
- Redis를 Message Broker 및 Result Backend로 활용하여 처리 상태를 분리하는 Event-driven 아키텍처 설계
- Nginx 역방향 프록시와 Let's Encrypt TLS 적용으로 API 보안 및 엣지 단의 Rate Limit 제어 구현
- Docker Compose를 통한 GPU 런타임 격리 및 독립적 가속기 환경 구축으로 메인 애플리케이션 의존성 제거
- Batch endpoint 설계를 통한 병렬 처리 최적화 및 GPU 가속 기반 Vector Embedding 동시 생성으로 네트워크 홉 감소
- Flower 대시보드의 Localhost 바인딩 및 SSH 터널링 적용을 통한 관리 인터페이스 보안 강화
실천 포인트
- Heavy-weight 라이브러리(OCR, LLM 등) 도입 시 메인 앱과 분리된 전용 서버 설계 검토 - 처리 시간이 긴 요청은 즉시 응답 대신 Task ID를 반환하는 비동기 Polling 패턴 적용 - GPU 기반 Docker 컨테이너 구축 시 NVIDIA Container Toolkit 및 runtime 설정 사전 검증 - 내부 서비스라도 Nginx 수준의 API Key 및 IP 기반 Rate Limit 적용으로 시스템 안정성 확보