Kurly만의 MLOps 구축하기 - 쿠브플로우 도입기
핵심 내용
컬리가 벤더 락인과 비용 문제를 고려해 AWS SageMaker 대신 Kubeflow를 선택하고, Elyra와 SealedSecrets 등을 적용해 운영 환경을 최적화했다.
자세히 보기
컬리 데이터 플랫폼팀은 데이터 사이언티스트의 인프라 부담을 줄이고 모델링에 집중할 수 있는 환경을 만들기 위해 Kubeflow를 MLOps 플랫폼으로 채택했다. 기존에는 JupyterHub, MLFlow, Airflow 등을 EKS 클러스터에 배포해 사용했으나, 도구 간 연결성 부족과 복잡성 증가로 인해 통합 관리가 필요했다.
SageMaker vs Kubeflow 선택 기준
컬리는 AWS SageMaker와 Kubeflow를 비교 분석했다. SageMaker는 AWS 리소스와의 자연스러운 통합과 Ground Truth, Data Wrangler 등 추가 기능을 제공하지만, 벤더 락인(vendor lock-in) 가능성과 높은 비용이 단점으로 지적됐다. 반면 Kubeflow는 쿠버네티스 기반의 높은 이식성(portability)과 확장성(scalability)을 제공하며, 컬리가 이미 쿠버네티스를 적극 활용 중이므로 별도 인프라 구성 없이 도입할 수 있다는 점이 결정적 요인이 됐다.
운영 환경 최적화 및 보안 강화
Kubeflow의 기본 설치 방식은 운영 환경에 부족함이 있어 컬리는 커스텀 설정을 진행했다. 데이터 사이언티스트의 워크플로우 편의성을 위해 Elyra를 도입해 주피터 랩에서 작성한 코드를 KFP(Kubeflow Pipelines) DAG로 변환하도록 했다. 또한, 아티팩트 저장소를 MinIO에서 S3로 변경하고 IRSA(IAM Roles for Service Accounts)를 적용해 파드와 S3 간 보안 통신을 구현했다.
보안 측면에서는 매니패스트 내 평문 자격 증명 노출을 방지하기 위해 SealedSecrets를 도입했다. 이를 통해 GitHub 레포지토리에 암호화된 상태로 시크릿을 관리할 수 있으며, 실수로 평문 시크릿이 푸시되는 것을 막기 위해 pre-commit git hook을 활용했다. 향후 GitOps 기반 매니패스트 관리와 Katib을 활용한 하이퍼파라미터 튜닝 등을 통해 MLOps 환경을 고도화할 계획이다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.