문서
Kurly만의 MLOps 구축하기 - 쿠브플로우 도입기
구국원 · 컬리 · 컬리 기술 블로그
소개
쿠브플로우를 도입한 이유와 유용한 팁
AI 핵심 요약
컬리는 JupyterHub, MLflow, Airflow를 따로 운영하면서 도구 간 연결성이 낮고 데이터 사이언티스트가 인프라까지 신경 써야 하는 문제를 해결하기 위해 MLOps 플랫폼을 검토했습니다. AWS SageMaker의 넓은 관리형 기능보다 기존 Kubernetes 활용, 비용, 기술 내재화를 우선해 Kubeflow를 선택했습니다. 사용자 편의를 위해 Elyra가 포함된 JupyterLab 이미지를 제공하고, KFP 아티팩트 저장소를 S3로 바꾸면서 IRSA를 적용했으며, SealedSecrets와 pre-commit 훅으로 자격 증명 관리와 유출 방지를 보완했습니다. 운영 환경에 맞춘 Kubeflow는 기본 설치만으로 충분하지 않으므로, 사용자 경험과 스토리지·권한·보안 설정을 함께 설계해야 한다는 점을 보여줍니다.
- MLOps 플랫폼 선택 시 기능 범위뿐 아니라 기존 Kubernetes 인프라, 비용, 벤더 종속성, 기술 내재화 요구를 함께 비교하세요.
- Elyra를 활용하면 JupyterLab에서 노트북과 파이썬 파일의 의존성을 설정하고 KFP DAG로 변환할 수 있습니다.
- 대용량·가변 데이터의 아티팩트 저장소로 S3를 쓰려면 Argo Workflow 설정과 파드의 AWS 자격 증명 구성을 모두 확인해야 합니다.
- 멀티테넌트 환경에서는 네임스페이스마다 장기 자격 증명을 배포하는 대신 IRSA로 임시 자격 증명을 제공할 수 있습니다.
- SealedSecrets로 저장소에 암호화된 Secret을 관리하고, pre-commit 훅으로 평문 Secret의 커밋을 막을 수 있습니다.