Artifact Store

개념

  • MLflow의 핵심 구성 요소로 각 실행(Run)에 대한 결과물(Artifact)을 저장한다.
  • 저장하는 결과물 : 학습된 모델 가중치 파일, 데이터, 이미지 등
  • 저장하는 자료들이 일반적으로 대용량이다.
  • 기본적으로 로컬 파일(mlruns)에 아티팩트를 저장하지만, Amazon S3 및 호환 저장소에도 저장 가능

지원되는 Artifact Store

  • 기본값은 로컬 디렉터리
  • docker compose 명세서 상 기본 저장소는 RustFS (2026년 3월 28일 기준)
지원되는 Artifact Store 구분 설명
local file system file 로컬 디렉토리에 아티팩트를 저장.
서버와 클라이언트가 동일한 물리적 경로를 공유해야 함.
기본값.
Amazon S3 및 호환 저장소 object AWS S3 및 RustFS, MinIO 등
S3 API를 사용하는 모든 오브젝트 스토리지 지원.
Azure Blob Storage object Microsoft Azure의 저장소(WASBS).
대규모 엔터프라이즈 환경에서 선호됨.
Google Cloud Storage object GCP의 오브젝트 스토리지(GCS).
gs:// URI를 통해 접근 가능함.
Backblaze B2 object 저비용 오브젝트 스토리지 솔루션.
S3 호환 API를 통해 연동 가능.
SFTP 서버 network SSH 파일 전송 프로토콜을 이용한 원격 서버 저장 방식.
NFS network 네트워크 공유 파일 시스템.
여러 노드에서 공통 경로로 마운트하여 사용.

MLflow Tracking Server와의 연결

  • 별도의 아티팩트 저장소를 지정하지 않는 경우, 기본 저장소는 서버가 실행된 로컬 경로의 ./mlruns 디렉토리
  • 원격 저장소 지정: 서버 시작 시 –artifacts-destination 옵션을 통해 S3 등 원격 저장소의 URI를 지정
1
2
3
4
5
6
7
8
9
10
11
12
# S3 호환 저장소(예: RustFS, MinIO)를 아티팩트 저장소로 지정하는 예시
mlflow server \
  --backend-store-uri postgresql://user:password@localhost:5432/mlflowdb \
  --artifacts-destination s3://my-mlflow-bucket/ \
  --host 0.0.0.0

# 아티팩트 프록시 기능을 활성화하여 서버 시작
# 클라ㅣ언트가 스토리지에 직접 접근하지 않고, Tracking Server를 거쳐 아티팩트 업로드/다운로드
mlflow server \
  --backend-store-uri postgresql://... \
  --artifacts-destination s3://... \
  --serve-artifacts
  • docker compose를 통해 설정을 할 때에는 MLflow Tracking Server에 환경변수로 등록함으로써 연결 설정이 가능하다.
  • AWS ACCESS KEY ID 등은 S3 호환 오브젝트 스토리지에 공통적으로 사용되는 환경변수다.
1
2
3
4
5
6
7
8
9
10
11
12
13
...(전략)
    environment:
      # Backend store URI built from vars
      MLFLOW_BACKEND_STORE_URI: ${MLFLOW_BACKEND_STORE_URI}

      # S3/RustFS settings
      MLFLOW_S3_ENDPOINT_URL: ${MLFLOW_S3_ENDPOINT_URL}
      MLFLOW_ARTIFACTS_DESTINATION: ${MLFLOW_ARTIFACTS_DESTINATION}
      AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
      AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
      AWS_DEFAULT_REGION: ${AWS_DEFAULT_REGION}
      MLFLOW_S3_IGNORE_TLS: "true"
...(후략)

S3 호환 오브젝트 스토리지

  • Amazon S3
  • MinIO
  • Digital Ocean Spaces
  • RustFS (최근 표준 docker compose 파일의 기본 세팅)

RustFS : Rust로 만들어진 S3 호환 오브젝트 스토리지. 그 전까지 표준적이었던 MinIO가 저작권 방침을 바꾸면서 주목받고 있다. 또한 빠른 처리속도로도 주목받고 있다.

Access(접근)

  • MLflow에 Artifact로 기록된 모델에 대해 models:/<model_id> 형식의 URI로 모델을 참조할 수 있음
  • MLflow Model Registry에 등록된 모델은 models:/<model-name>/<model-version> 형식의 URI로 참조 가능

Reference

https://mlflow.org/docs/latest/self-hosting/architecture/artifact-store/#artifacts-store-supported-storages
https://wikidocs.net/blog/@jaehong/8619/

Comments