DBU (Databricks Unit)
💡 DBU(Databricks Unit) 는 Databricks의 과금 단위입니다. 사용한 컴퓨팅 리소스의 양을 DBU로 환산하여 과금합니다. DBU당 단가는 워크로드 유형(SQL, Jobs, All-Purpose 등)과 요금 플랜에 따라 다릅니다.
서버리스 vs 클래식 비용 비교
서버리스의 DBU 단가는 클래식보다 높지만, 총 비용(TCO) 은 서버리스가 더 낮은 경우가 많습니다.| 비용 요소 | Customer-Managed | Serverless |
|---|---|---|
| DBU 단가 | 낮음 | 높음 |
| 클라우드 VM 비용 | 별도 과금 | DBU에 포함 |
| 유휴 비용 | 발생 (자동 종료 전) | 없음 |
| 관리 인건비 | 높음 (클러스터 운영) | 낮음 |
| 런타임 업그레이드 비용 | 테스트/마이그레이션 필요 | 없음(자동) |
| 총 비용 (TCO) | 상황에 따라 | 보통 더 저렴 |
| 비용 항목 | 클래식 비용 구조 | 서버리스 비용 구조 |
|---|---|---|
| Databricks DBU 비용 | 포함 | 포함 |
| 클라우드 VM 비용 | 별도 과금 | DBU에 포함 |
| 유휴 시간 비용 | 발생 (자동 종료 전까지) | 없음 (즉시 반환) |
| 총 비용 | DBU + VM + 유휴 | DBU만 (사용한 만큼) |
비용 최적화 팁
| 팁 | 설명 |
|---|---|
| Auto-Stop 활용 | 서버리스는 유휴 시 즉시 해제되므로 별도 설정 없이 비용이 절감됩니다 |
| 적절한 사이즈 | SQL Warehouse는 필요한 최소 사이즈로 시작하고, 필요 시 확장합니다 |
| 예약 용량(Committed Use) | 장기 사용이 확실하면 예약 용량 할인을 활용합니다 |
| 시스템 테이블 모니터링 | system.billing.usage로 비용을 추적하고 이상을 감지합니다 |
제한사항 및 주의사항
| 제한사항 | 설명 | 대안 |
|---|---|---|
| GPU 미지원 | 서버리스에서 GPU 워크로드는 실행할 수 없습니다 | 딥러닝 학습은 Customer-Managed 클러스터를 사용합니다 |
| Spark 설정 제한 | 일부 Spark 설정을 직접 변경할 수 없습니다 | 대부분의 최적화가 자동 적용됩니다 |
| Init Script 미지원 | 기존 Init Script를 직접 사용할 수 없습니다 | Environment 설정으로 대체합니다 |
| 커스텀 Docker 미지원 | 사용자 정의 Docker 이미지를 사용할 수 없습니다 | Environment에서 라이브러리를 지정합니다 |
| 네트워크 제약 | 기본적으로 고객 VPC 내부 리소스에 접근 불가합니다 | SNC(Serverless Network Connectivity)를 설정합니다 |
| 리전 가용성 | 일부 클라우드 리전에서는 사용이 불가할 수 있습니다 | 지원 리전 목록을 확인합니다 |
⚠️ 중요: 서버리스로 전환하기 전에, 기존 워크로드가 위 제한사항에 해당하지 않는지 반드시 확인하시기 바랍니다. 특히 Init Script, 커스텀 Spark 설정, 특수 라이브러리(JNI 등)를 사용하는 경우 호환성 테스트가 필요합니다.
마이그레이션 가이드 (클래식 → 서버리스)
마이그레이션 단계
| 단계 | 설명 |
|---|---|
| 1. 현황 분석 | 워크로드 목록 파악 |
| 2. 호환성 확인 | 제한사항 체크 |
| 3. 파일럿 전환 | 비핵심 워크로드 먼저 |
| 4. 성능/비용 비교 | 기존 대비 평가 |
| 5. 점진적 확대 | 핵심 워크로드 전환 |
Step 1: 현황 분석
Step 2: 호환성 체크리스트
| 체크 항목 | 확인 방법 |
|---|---|
| Init Script 사용 여부 | 클러스터 설정에서 Init Script 확인합니다 |
| 커스텀 Spark 설정 | spark.conf.get() 또는 클러스터 설정에서 확인합니다 |
| 특수 라이브러리 (JNI, C 확장) | 클러스터의 라이브러리 목록을 확인합니다 |
| VPC 내부 접근 필요 여부 | 온프레미스 DB, Private Link 사용 여부를 확인합니다 |
| GPU 사용 여부 | 클러스터 노드 타입에 GPU 인스턴스가 있는지 확인합니다 |
Step 3: Job 마이그레이션 예시
Step 4: 성능/비용 비교
마이그레이션 후 최소 2주간 성능과 비용을 비교합니다.언제 서버리스를 사용하고, 언제 클래식을 사용하나요?
| 상황 | 추천 | 이유 |
|---|---|---|
| SQL 분석, 대시보드 | ✅ Serverless | 즉시 시작, SQL 최적화가 자동 적용됩니다 |
| 노트북 개발, 프로토타이핑 | ✅ Serverless | 빠른 반복 개발이 가능합니다 |
| 정기 ETL Jobs | ✅ Serverless | 관리 간소화, 비용 효율적입니다 |
| SDP 파이프라인 | ✅ Serverless | 파이프라인별 리소스 자동 관리됩니다 |
| GPU 워크로드 (딥러닝) | ❌ 클래식 | 서버리스에서 GPU를 지원하지 않습니다 |
| 특정 라이브러리/JNI 필요 | ⚠️ 상황에 따라 | 서버리스 Environment로 해결 가능한지 먼저 확인합니다 |
| 극도로 세밀한 클러스터 튜닝 | ❌ 클래식 | 노드 타입, Spark 설정을 직접 제어해야 할 때 사용합니다 |
| VPC 내부 리소스 접근 | ⚠️ SNC 필요 | SNC 설정 후 서버리스 사용이 가능합니다 |
정리
| 핵심 개념 | 설명 |
|---|---|
| Serverless | 인프라 관리 없이 코드만 실행하면 자동으로 리소스가 할당됩니다 |
| 즉시 시작 | 사전 예열된 VM 풀에서 수 초 내에 시작됩니다 |
| 자동 비용 관리 | 유휴 시 즉시 리소스를 해제하여 불필요한 비용이 발생하지 않습니다 |
| Databricks 관리 | VM, 런타임, 보안 패치 등을 Databricks가 자동으로 관리합니다 |
| SNC | 서버리스에서 고객 VPC 내부 리소스에 안전하게 접근하는 방법입니다 |
| Environment | 서버리스에서 Python 라이브러리를 관리하는 방법입니다 |
| DBU | Databricks의 컴퓨팅 과금 단위이며, 서버리스는 VM 비용이 포함되어 있습니다 |