Skip to main content

이 문서에서 다루는 내용

Databricks 플랫폼의 비용을 체계적으로 관리하고 최적화하는 방법을 다룹니다. 비용 구조를 이해하는 것부터 시작하여, 컴퓨트/스토리지/SQL Warehouse 각 영역의 최적화 전략, 그리고 비용 모니터링 대시보드 구축까지 실전에서 바로 적용 가능한 가이드를 제공합니다.

1. 왜 비용 구조 이해가 중요한가

클라우드 비용 폭주 사례

클라우드 환경에서는 온프레미스와 달리 잘못된 설정 하나가 수백만 원의 청구서 로 이어질 수 있습니다. Databricks 환경에서 자주 발생하는 실제 패턴은 다음과 같습니다.
사례원인결과
주말 내내 켜진 대화형 클러스터Auto-termination 미설정48시간 × All-Purpose DBU = 수백만 원
BI 대시보드 자동 새로고침SQL Warehouse Always-On 설정야간/주말에도 DBU 소모
실패한 Job의 무한 재시도max_retries 미설정DBU + 클라우드 스토리지 비용 누적
개발용 클러스터를 프로덕션에 사용All-Purpose를 Jobs 대신 사용동일 작업 대비 2~3배 과금
리전 간 데이터 전송멀티 리전 아키텍처 설계 오류예상치 못한 Egress 비용

예상치 못한 청구 패턴

Databricks 청구서는 DBU 비용(Databricks 청구) + 클라우드 인프라 비용(AWS/Azure/GCP 청구) 두 가지로 나뉩니다. 많은 팀이 DBU 비용만 모니터링하다가 클라우드 청구서에서 충격을 받는 경우가 있습니다.
총 비용 = Databricks DBU 비용 + 클라우드 VM(EC2) 비용 + 스토리지 비용 + 네트워크 비용
⚠️ 주의: Databricks 콘솔의 비용 모니터링은 DBU 소모량 중심입니다. EC2 인스턴스 비용, S3 스토리지 비용, NAT Gateway 비용은 AWS 청구서를 별도로 확인해야 합니다.

2. DBU(Databricks Unit) 단가 체계

DBU란 무엇인가

Databricks의 과금은 DBU(Databricks Unit) 라는 정규화된 처리 단위를 기반으로 합니다. 동일한 작업이라도 어떤 SKU를 사용하느냐에 따라 DBU 소모량과 단가가 달라집니다.
💡 DBU란? Databricks의 과금 단위로, CPU 코어, 메모리, 컴퓨트 유형을 종합하여 정규화한 값입니다. 1 DBU는 약 1시간의 기본 컴퓨트 처리량에 해당합니다. 인스턴스 크기가 클수록 시간당 소모 DBU가 증가합니다.

SKU별 가격 비교표 (AWS 기준, 상대 단가)

SKU 유형대표 용도상대 단가특징
Jobs Compute스케줄된 배치 작업★☆☆☆☆ (최저)가장 경제적, 프로덕션 파이프라인 권장
Jobs Compute (Serverless)서버리스 배치 작업★★☆☆☆인프라 관리 불필요, 빠른 시작
All-Purpose Compute인터랙티브 개발, 노트북★★★★☆개발 시에만 사용, 프로덕션 금지
All-Purpose (Serverless)서버리스 인터랙티브★★★☆☆유휴 비용 없음, 개발자 생산성 극대화
SQL Warehouse (Serverless)BI 쿼리, 대시보드★★★☆☆자동 스케일링, 캐싱 내장
SQL Warehouse (Pro)BI 쿼리 (클래식)★★★☆☆수동 스케일링, 예측 가능한 비용
Model Serving실시간 추론★★★★☆GPU 사용 시 비용 급증
Foundation Model APIDBRX, Llama 호출토큰 기반입력/출력 토큰 수에 비례
⚠️ 핵심 원칙: 개발은 All-Purpose, 프로덕션은 Jobs Compute를 사용하면 동일 작업 대비 2~3배 비용 절감 이 가능합니다.

Commit vs Pay-as-you-go

Databricks는 두 가지 구매 모델을 제공합니다.
구분Pay-as-you-goPre-purchase Commit (PUPM)
단가정가 (최고)최대 40~50% 할인
약정없음1년 또는 3년 약정
유연성매우 높음낮음 (미소진 시 소멸)
적합 대상POC, 소규모, 불규칙 워크로드안정적 프로덕션 워크로드
리스크예산 초과미소진 DBU 손실
💡 전략: 전체 DBU 소모량의 70~80%는 Commit으로 커버하고, 나머지 피크 부하는 Pay-as-you-go로 처리하는 혼합 전략이 일반적입니다.

3. 비용 발생 3대 영역

전체 비중

비용 카테고리일반적 비중세부 항목
컴퓨트60~80%클러스터 DBU, SQL Warehouse DBU, Serverless DBU, Jobs DBU
스토리지10~20%S3/ADLS 저장, Delta 트랜잭션 로그, 스냅샷 보존
네트워크5~10%리전 간 전송, PrivateLink, NAT Gateway

컴퓨트 비용: 클래식 vs 서버리스

클래식 컴퓨트 (Classic Compute)
  • 사용자가 클러스터를 직접 생성하고 관리합니다.
  • 클러스터가 기동 중인 시간 전체에 대해 DBU가 부과됩니다 (쿼리 실행 여부와 무관).
  • Auto-termination을 반드시 설정해야 유휴 비용을 방지할 수 있습니다.
  • EC2 인스턴스 비용은 AWS 청구서에 별도로 발생합니다.
서버리스 컴퓨트 (Serverless Compute)
  • Databricks가 인프라를 완전히 관리합니다.
  • 쿼리/작업 실행 시간에만 DBU가 부과됩니다 (유휴 비용 없음).
  • EC2 인스턴스 비용이 DBU 단가에 포함되어 있습니다 (AWS 청구서에 별도 항목 없음).
  • 단위 DBU 단가는 클래식보다 높지만, 유휴 시간 제거로 총비용은 낮아지는 경우가 많습니다.
클래식 총비용 = (기동 시간 × DBU/시간 × DBU 단가) + EC2 비용
서버리스 총비용 = (실행 시간 × DBU/시간 × 서버리스 DBU 단가)

스토리지 비용: Delta 로그 비용

Delta Lake는 모든 트랜잭션을 _delta_log/ 디렉터리에 JSON 파일로 기록합니다. 테이블에 잦은 소규모 쓰기가 발생하면 Delta 로그 파일 수가 폭발적으로 증가하고, 이는 스토리지 비용과 쿼리 성능 저하로 이어집니다.
# Delta 로그 정리 - OPTIMIZE + VACUUM 주기적 실행
spark.sql("OPTIMIZE my_catalog.my_schema.my_table")
spark.sql("VACUUM my_catalog.my_schema.my_table RETAIN 168 HOURS")

네트워크 비용: Egress 비용

전송 유형비용 발생 여부비고
동일 AZ 내 전송없음클러스터와 S3가 같은 AZ
리전 내 AZ 간 전송발생약 $0.01/GB
리전 간(Cross-Region) 전송발생약 $0.02~0.09/GB
인터넷 Egress가장 비쌈약 $0.09/GB
PrivateLink 사용시간 + 데이터 요금엔드포인트당 월 고정 비용 발생
💡 : 클러스터와 S3 버킷을 같은 리전/AZ에 배치하면 네트워크 비용을 크게 줄일 수 있습니다.