이 문서는 컴퓨트 섹션의 일부입니다.
Serverless Compute (서버리스 컴퓨트)
언제 사용하나요?
- 빠르게 코드를 실행 하고 싶을 때 (클러스터 시작 대기 불필요)
- 클러스터 설정을 신경 쓰지 않고 개발에 집중하고 싶을 때
- SQL 분석 을 수행할 때 (Serverless SQL Warehouse)
특징
| 항목 | 설명 |
|---|---|
| 시작 시간 | 수 초 만에 즉시 시작됩니다 |
| 관리 | Databricks가 자동으로 리소스를 할당·해제합니다 |
| 비용 | 실제 처리한 데이터량(DBU) 기준으로 과금됩니다 |
| 제한 | 사용자 정의 라이브러리 설치 등 세밀한 제어가 제한됩니다 |
🆕 Serverless Workspaces: 최근 Databricks는 Serverless Workspaces 를 GA로 출시했습니다. 새로운 Workspace를 생성하면 기본적으로 Serverless 컴퓨트가 사전 구성되어 있어, 별도의 클러스터 설정 없이 바로 작업을 시작할 수 있습니다.
🆕 Serverless Job Environments: Notebook 태스크에서 작업 전용 환경을 사용할 수 있게 되어, 서버리스에서도 커스텀 라이브러리를 설치할 수 있습니다.
클러스터 접근 모드 (Access Mode)
All-Purpose Cluster를 생성할 때 접근 모드(Access Mode) 를 선택해야 합니다. 접근 모드는 누가 클러스터를 사용할 수 있고, 어떤 보안 격리 수준이 적용되는지 를 결정합니다.접근 모드 비교
| 접근 모드 | 사용자 수 | Unity Catalog | 격리 수준 | 주요 용도 |
|---|---|---|---|---|
| Assigned (Dedicated) | 단일 사용자 | ✅ 완전 지원 | 최고 — 전용 리소스 | 프로덕션, 민감 데이터, ML 학습 |
| Shared | 여러 사용자 | ✅ 완전 지원 | 높음 — 프로세스 격리 | 팀 협업, 비용 절감 |
| No Isolation Shared | 여러 사용자 | ❌ 미지원 | 없음 — 격리 없음 | 레거시 (권장하지 않음) |
Assigned (Dedicated) 모드
💡 Assigned 모드 는 클러스터를 단일 사용자에게 전용 할당 하는 방식입니다. 가장 강력한 보안 격리를 제공합니다.
| 항목 | 설명 |
|---|---|
| 사용자 | 클러스터 생성 시 지정한 한 명의 사용자 만 사용할 수 있습니다 |
| UC 지원 | ✅ 테이블 접근 제어, Row Filter, Column Mask 모두 적용됩니다 |
| 자격 증명 | 지정된 사용자의 자격 증명으로 외부 스토리지에 접근합니다 (Credential Passthrough) |
| 라이브러리 | 모든 라이브러리를 자유롭게 설치할 수 있습니다 (pip, Maven, CRAN 등) |
| Init Script | 사용자 정의 Init Script를 실행할 수 있습니다 |
| 적합한 경우 | 프로덕션 ETL, 민감 데이터 처리, GPU ML 학습, 커스텀 라이브러리 필요 시 |
Shared 모드
💡 Shared 모드 는 여러 사용자가 하나의 클러스터를 동시에 사용 하면서도, Unity Catalog의 보안이 완전히 적용되는 방식입니다.
| 항목 | 설명 |
|---|---|
| 사용자 | 여러 사용자가 동시에 노트북을 연결하여 사용할 수 있습니다 |
| UC 지원 | ✅ 각 사용자의 권한에 따라 접근 제어가 적용됩니다. A 사용자는 테이블 X를 읽을 수 있지만, B 사용자는 읽을 수 없는 구성이 가능합니다 |
| 프로세스 격리 | 각 사용자의 코드가 별도 프로세스에서 실행되어, 다른 사용자의 데이터를 볼 수 없습니다 |
| 라이브러리 | %pip install로 노트북 스코프 라이브러리를 설치할 수 있습니다. 클러스터 수준 라이브러리는 제한됩니다 |
| Init Script | 사용자 정의 Init Script 사용이 제한 됩니다 |
| 적합한 경우 | 팀 협업 개발, 비용 절감 (클러스터 1개를 여러 명이 공유), 대화형 분석 |
💡 Shared 모드의 보안: 사용자 A가 SELECT * FROM secret_table을 실행하면, A의 UC 권한이 확인됩니다. 권한이 없으면 “Permission denied” 에러가 발생합니다. 같은 클러스터의 사용자 B는 A의 쿼리 결과를 볼 수 없습니다.
No Isolation Shared 모드 (레거시)
⚠️ No Isolation Shared 모드는 Unity Catalog를 지원하지 않으며, 보안 격리가 없습니다. 기존 Hive Metastore 환경에서만 사용하는 레거시 모드이며, 신규 환경에서는 사용하지 않는 것을 권장합니다.
| 항목 | 설명 |
|---|---|
| 사용자 | 여러 사용자가 공유하지만, 격리가 없습니다 |
| UC 지원 | ❌ Unity Catalog를 사용할 수 없습니다 |
| 격리 | 없음 — 한 사용자가 다른 사용자의 변수/데이터에 접근할 수 있습니다 |
| 적합한 경우 | Hive Metastore만 사용하는 레거시 환경 (마이그레이션 권장) |
접근 모드 선택 가이드
| 시나리오 | 권장 접근 모드 | 이유 |
|---|---|---|
| 프로덕션 ETL / 스케줄 Job | Assigned (또는 Serverless) | 작업 격리, 전체 라이브러리 지원 |
| 팀 협업 개발 (5~10명) | Shared | 비용 절감, UC 보안 적용 |
| 민감 데이터 분석 (PII 등) | Assigned | 최고 수준 격리, Credential Passthrough |
| GPU ML 학습 | Assigned | GPU 노드 + 커스텀 라이브러리 |
| 빠른 프로토타이핑 | Serverless | 설정 불필요, 즉시 시작 |
| SQL 분석 | SQL Warehouse | SQL 전용 최적화, Photon 기본 |
💡 Databricks 권장: 대부분의 경우 Shared 모드를 사용하고, 전용 리소스나 커스텀 라이브러리가 필요한 경우에만 Assigned 를 사용하세요. Serverless 가 가능한 환경이라면 Serverless를 우선 고려하세요.
어떤 클러스터를 선택해야 하나요?
| 질문 | 답변 | 추천 |
|---|---|---|
| 어떤 작업을 하시나요? — 대화형 개발/탐색 | 클러스터 설정 직접 제어 필요 | All-Purpose Cluster |
| 어떤 작업을 하시나요? — 대화형 개발/탐색 | 간편하게 사용 | Serverless (Notebook) |
| 어떤 작업을 하시나요? — 스케줄된 ETL/배치 | - | Job Cluster |
| 어떤 작업을 하시나요? — SQL 분석/BI | - | SQL Warehouse |
실무 권장 사항
| 환경 | 권장 클러스터 | 이유 |
|---|---|---|
| 개발/프로토타이핑 | Serverless Notebook | 빠른 시작, 관리 불필요 |
| 팀 협업 개발 | All-Purpose (공유) | 여러 노트북 동시 사용, 공유 라이브러리 |
| 프로덕션 ETL | Job Cluster 또는 Serverless Job | 비용 효율, 작업 격리 |
| SQL 대시보드/분석 | Serverless SQL Warehouse | 즉시 시작, 최적 SQL 성능 |
| ML 학습 (GPU) | All-Purpose (GPU 노드) | GPU 노드 타입 선택 필요 |
현장에서 배운 것들: 클러스터 비용의 현실
All-Purpose 클러스터를 24시간 켜놓고 월말에 청구서 보고 놀란 경험
이건 거의 모든 Databricks 신규 고객이 한 번씩 겪는 통과의례입니다. 제가 지원한 한 스타트업의 이야기를 공유합니다. 데이터 엔지니어 3명이 있는 팀이었습니다. 각자 All-Purpose 클러스터를 하나씩 만들었는데, 자동 종료 설정을 깜빡했습니다.⚠️ 이것을 안 하면 이런 일이 벌어집니다: 자동 종료 미설정은 Databricks 비용 최적화의 가장 기본이자, 가장 많이 놓치는 항목입니다. 모든 All-Purpose 클러스터에 10~30분 자동 종료를 반드시 설정하세요. 워크스페이스 관리자가 정책(Cluster Policy)으로 강제할 수 있습니다.
실전 클러스터 선택 의사결정 흐름
20년간의 경험을 바탕으로, 고객에게 항상 추천하는 의사결정 흐름입니다.| 질문 | Yes | No |
|---|---|---|
| 질문 1: SQL만 사용하시나요? | Serverless SQL Warehouse (끝) | 질문 2로 |
| 질문 2: 프로덕션 스케줄 작업인가요? | 질문 3으로 | 질문 4로 (개발/탐색) |
| 질문 3: 특수 라이브러리나 GPU가 필요한가요? | Job Cluster (Classic) | Serverless Job (비용 최적, 시작 빠름) |
| 질문 4: 팀 공유가 필요한가요? | Shared All-Purpose Cluster (비용 분담) | Serverless Notebook (개인 작업, 관리 제로) |
각 클러스터 유형별 실전 비용 비교
같은 워크로드를 서로 다른 클러스터 유형으로 실행했을 때의 실제 비용을 비교합니다.| 시나리오 | All-Purpose (상시 가동) | All-Purpose (자동 종료) | Job Cluster | Serverless |
|---|---|---|---|---|
| 일 2시간 ETL | $5,400/월 | $1,350/월 | $990/월 | $720/월 |
| 일 8시간 개발 | $5,400/월 | $4,050/월 | N/A | $2,880/월 |
| 주 1회 ML 학습 (GPU, 4시간) | $8,640/월 | $2,160/월 | $540/월 | N/A (GPU 미지원 시) |
| 간헐적 SQL 분석 | $5,400/월 | $1,000/월 | N/A | $200/월 |
💡 비용 최적화 공식: (1) 프로덕션 = Serverless Job 또는 Job Cluster, (2) 개발 = Serverless Notebook, (3) SQL = Serverless SQL Warehouse. All-Purpose Cluster는 공유 개발 환경이 꼭 필요하거나, 특수 라이브러리가 필수인 경우에만 사용하세요.
서버리스로 전환 후 비용이 오히려 올라간 사례와 원인
“서버리스는 항상 저렴하다”는 것은 거짓 입니다. 한 고객이 모든 워크로드를 Serverless로 전환했다가 비용이 30% 증가한 사례를 공유합니다.원인 1: 장시간 연속 실행 워크로드
원인 2: 과도한 Serverless SQL Warehouse 사용
- Query Profile을 분석하여 비용이 높은인 쿼리 최적화
- 무거운 배치 쿼리는 Scheduled Job으로 분리
- SQL Warehouse의 Max Cluster 수를 적절히 제한
원인 3: 개발 중 Serverless Notebook의 유휴 비용
워크스페이스 관리자를 위한 Cluster Policy 실전 가이드
비용 폭주를 막는 가장 효과적인 방법은 Cluster Policy(클러스터 정책) 입니다.| 정책 항목 | 권장 설정 | 이유 |
|---|---|---|
| 자동 종료 | 10~30분 (기본 30분) | 유휴 클러스터 비용 방지 |
| 최대 워커 수 | 팀 규모에 따라 4~16 | 무한 스케일아웃 방지 |
| 노드 타입 | 허용 목록(allowlist)으로 제한 | 비싼 GPU 노드를 실수로 선택하는 것 방지 |
| 태그 | 팀명, 비용 센터 필수 | 비용 추적과 차지백(chargeback) |
| Spot Instance | 개발 환경에서는 first_on_demand=1, 나머지 Spot | 비용 40~60% 절감 |
💡 현업에서는 이렇게 합니다: 워크스페이스 관리자가 팀별로 Cluster Policy를 만들고, 개발자는 해당 정책 범위 내에서만 클러스터를 생성할 수 있도록 합니다. “자유”보다 “가드레일 안의 자유”가 비용을 80% 절감합니다.
정리
| 핵심 개념 | 설명 |
|---|---|
| All-Purpose Cluster | 대화형 개발용. 사용자가 직접 생성하고 관리합니다 |
| Job Cluster | 프로덕션 작업용. 작업 시 자동 생성, 완료 후 자동 종료됩니다 |
| Serverless | 관리 불필요. 수 초 만에 시작되며 사용량 기준으로 과금됩니다 |