본문 바로가기
카테고리 없음

서버리스 MLflow 기반 SageMaker AI 구성 방법 가이드

by AI Specialist 2025. 12. 27.

최근 AWS에서는 Amazon SageMaker AI의 서버리스 MLflow 기능은 기존 MLflow 실험 추적 서버 구축 및 관리의 복잡성을 제거하고, 즉시 실험 환경을 시작하여 운영할 수 있도록 지원합니다. 이 글은 해당 기능을 실제로 설정하고 활용하는 방법을 단계별로 안내합니다.

1. 서버리스 MLflow란?

서버리스 MLflow는 MLflow 실험 추적 서버를 AWS가 자동으로 생성하고 관리해주는 서비스입니다.

 

서버리스 MLflow 기반 SageMaker AI 구성 방법 가이드
서버리스 MLflow 기반 SageMaker AI 구성 방법 가이드


기존 MLflow 환경은 다음과 같은 운영 부담이 있었습니다:

  • 서버/인프라 프로비저닝
  • 스케일링 및 용량 계획
  • 패치/업그레이드 관리

서버리스 MLflow는 이러한 운영 부담을 제거하고 자동 스케일링 + 무서버 환경으로 실험 추적을 제공합니다.

2. 사전 준비 사항

2.1 IAM 역할

서버리스 MLflow 앱을 생성할 때는 IAM 역할이 필요합니다. 이 역할은 다음 권한을 포함해야 합니다:

  • S3 버킷 읽기/쓰기 권한
  • SageMaker 실행 권한
  • MLflow 관련 SageMaker API 호출 권한

예: AmazonSageMakerFullAccess, S3 접근정책 등

IAM 역할은 이미 구성되어 있으면 그대로 사용할 수 있고, 없으면 콘솔에서 새로 생성합니다.

3. 서버리스 MLflow 앱 생성 (핵심 단계)

3.1 SageMaker AI Studio로 이동

  1. AWS 콘솔에서 Amazon SageMaker AI Studio를 엽니다.
  2. 좌측 메뉴에서 MLflow 옵션을 선택합니다. 

3.2 MLflow App 생성

  1. Create MLflow App” 버튼을 클릭합니다.
  2. 이름(Name) 필드에 원하는 이름을 입력합니다.
  3. IAM 역할 및 S3 버킷 설정(기본 제공 또는 필요한 경우 수정)
    → 대부분 실습용은 기본 설정으로 충분합니다.

3.3 생성 완료 및 ARN 복사

앱 생성은 약 2분 내에 완료됩니다. 생성이 끝나면 아래와 같은 기본 정보를 확인할 수 있습니다:

  • MLflow App ARN
  • 연결할 때 사용할 S3 아티팩트 저장 경로
  • MLflow 실험 UI 링크

이 ARN은 이후 코드나 노트북에서 MLflow Tracking URI로 사용합니다. 


4. 노트북에서 실험 추적 시작

4.1 MLflow SDK 설치

pip install mlflow boto3

SageMaker Studio 나 EC2/로컬 어디서든 동일하게 적용됩니다.


4.2 MLflow 연결 및 로그 기록

아래는 Python 코드 예시입니다:

import mlflow

# 서버리스 MLflow App ARN
mlflow.set_tracking_uri("arn:aws:sagemaker:region:account-id:mlflow-app/app-name")

# 실험 이름 설정
mlflow.set_experiment("example-experiment")

with mlflow.start_run():
    mlflow.log_param("param1", 10)
    mlflow.log_metric("accuracy", 0.93)

이제 SageMaker MLflow App에서 자동으로 실험 로그가 수집됩니다.

5. 자동 스케일링 및 관리

서버리스 MLflow는 다음을 자동으로 처리합니다:

  • 트래픽/실험 수에 따라 스케일업/스케일다운
  • 인프라 용량 계획 불필요
  • 자동 버전 업그레이드
  • S3 및 IAM을 통한 보안 관리 

즉, 서버 설치나 지속적인 관리 작업이 필요 없습니다.

6. SageMaker Pipelines 연동

서버리스 MLflow는 SageMaker Pipelines와 통합되어 다음 흐름을 만들 수 있습니다:

  1. Pipelines 작업 실행
  2. 각 파이프라인 단계에서 MLflow로 실험 로그 전송
  3. 최종 모델 및 메트릭 결과를 MLflow UI에서 바로 확인
from sagemaker.workflow.pipeline import Pipeline
from sagemaker.workflow.steps import TrainingStep

pipeline = Pipeline(
    name="mlflow-pipeline",
    steps=[TrainingStep(...)]
)

pipeline.upsert(role=role)
 

이렇게 구성하면 반복적 실험 → 로그 → 평가 → 재실험 흐름이 자동화됩니다.

 

 

7. 크로스 계정/도메인 협업

서버리스 MLflow는 AWS Resource Access Manager(RAM)을 통해:

  • MLflow 앱을 다른 계정과 공유
  • 도메인 간 협업 실험 접근성 제공

이를 통해 팀 간 협업이 단순해지고 동일 환경을 여러 팀이 활용할 수 있습니다.

8. 유의 사항

  • 요금: 서버리스 MLflow 기능 자체는 별도 요금 없이 제공되지만 사용한 AWS 리소스(스토리지 등)는 청구됩니다.
  • 서비스 한계: 서비스 한도가 적용될 수 있어 대규모 실험에는 유의가 필요합니다.
  • 리전: 서울 리전도 지원 대상입니다.