피드로 돌아가기
Dev.toInfrastructure
원문 읽기
Cloud Run Jobs 병렬 처리를 통한 수백만 건 RAG 임베딩 파이프라인 구축
Building a Scalable RAG Backend with Cloud Run Jobs and AlloyDB
AI 요약
Context
소규모 데이터셋 기반의 순차적 Python 루프 방식은 데이터 규모가 수백만 건으로 증가 시 Network Latency 및 API Rate Limit으로 인한 심각한 병목 발생. 이로 인해 전체 파이프라인이 중단되는 프로덕션 스케일의 확장성 한계 노출.
Technical Solution
- BigQuery를 Source of Truth로 설정하여 대규모 제품 레코드의 안정적 관리 및 추출 구조 설계
- Cloud Run Jobs의 Serverless Compute 환경을 활용해 수백 개의 Task를 동시에 실행하는 병렬 처리 구조 도입
- CLOUD_RUN_TASK_INDEX 기반의 데이터 Sharding 로직을 구현하여 각 워커가 중복 없이 특정 Offset의 데이터를 처리하는 분산 구조 설계
- text-embedding-005 모델을 통한 768차원 벡터 생성 및 AlloyDB의 pgvector 확장을 활용한 고성능 Vector Search 환경 구축
- Terraform 기반의 Infrastructure as Code(IaC) 적용으로 AlloyDB Cluster 및 Cloud Run Job의 일관된 프로비저닝 환경 구축
- VPC 내 Private Network 연결을 통한 Cloud Run Job과 AlloyDB 간의 보안 통신 및 데이터 전송 효율 최적화
실천 포인트
- 대규모 데이터 임베딩 시 순차 처리 대신 Task Index 기반의 Sharding 전략 검토 - API Rate Limit 회피를 위해 Serverless Job의 동시성 제어 및 병렬화 수준 설정 - Vector Database 선택 시 pgvector 등 기존 RDBMS 확장 기능을 통한 운영 복잡도 감소 고려 - 프로덕션 환경 내 DB 패스워드 관리를 위해 환경 변수 대신 Secret Manager 도입 필수