피드로 돌아가기
Building docling-server: a one-command document API for our AI pipeline
Dev.toDev.to
Infrastructure

비동기 큐 기반 Docling-server 구축을 통한 GPU 기반 문서 파싱 파이프라인 최적화

Building docling-server: a one-command document API for our AI pipeline

Vineeth N Krishnan2026년 4월 22일7intermediate

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 적용으로 시스템 안정성 확보

원문 읽기