서버리스 컴퓨팅이란?
💡 Serverless 컴퓨트 는 사용자가 서버(클러스터)를 직접 생성하거나 관리할 필요 없이, 코드를 실행하면 Databricks가 알아서 리소스를 할당 해 주는 방식입니다.서버리스 컴퓨팅은 인프라 관리의 부담을 완전히 제거합니다. 노드 타입 선택, 오토스케일링 설정, 런타임 버전 관리, 보안 패치 적용 등 모든 인프라 운영을 Databricks가 대신 처리합니다. 사용자는 비즈니스 로직에만 집중 할 수 있습니다.
왜 서버리스가 필요한가?
기존 클러스터 기반 방식에서 팀이 겪는 공통적인 문제들을 서버리스가 해결합니다.| 기존 방식의 문제 | 서버리스의 해결 |
|---|---|
| 클러스터 시작까지 3~5분 대기합니다 | 수 초 만에 시작 되어 즉시 작업을 시작합니다 |
| 노드 타입, 수량, 런타임 버전을 선택해야 합니다 | 설정 없이 코드만 실행하면 됩니다 |
| 유휴 클러스터가 비용을 발생시킵니다 | 사용한 만큼만 과금되며 유휴 비용이 없습니다 |
| 런타임 업그레이드, 보안 패치를 직접 적용해야 합니다 | Databricks가 자동으로 최신 상태 를 유지합니다 |
| 클러스터 관리를 위한 전담 인력이 필요합니다 | 관리 인건비 절감, 인프라 팀 부담 감소 |
Databricks 서버리스 아키텍처
서버리스의 핵심은 컴퓨트 리소스가 Databricks 관리 환경에서 실행 된다는 것입니다. 기존 방식에서는 고객의 클라우드 계정(VPC/VNet)에서 VM이 실행되었지만, 서버리스에서는 Databricks가 관리하는 인프라에서 실행됩니다.| 구성 요소 | 위치 | 설명 |
|---|---|---|
| Databricks Workspace | 고객 환경 | 워크스페이스 UI 및 관리 |
| 클라우드 스토리지 (S3/ADLS/GCS) | 고객 환경 | 데이터 저장 |
| Serverless Compute | Databricks 관리 환경 | 컴퓨팅 리소스 자동 관리 |
| Control Plane | Databricks 관리 환경 | 작업 스케줄링, 클러스터 관리 |
기존 방식과의 비교
| 구분 | Customer-Managed | Serverless |
|---|---|---|
| VM 실행 위치 | 고객의 클라우드 계정 | Databricks 관리 환경 |
| VM 수명주기 | 고객이 시작/중지 관리 | Databricks가 자동 관리 |
| 네트워크 | 고객 VPC/VNet 내부 | Databricks VPC (보안 연결) |
| 런타임 버전 | 고객이 선택/업그레이드 | 항상 최신 버전 자동 적용 |
| 스토리지 접근 | VPC 내부에서 직접 | 보안 채널을 통해 고객 스토리지 접근 |
서버리스 지원 워크로드
현재 Databricks에서 서버리스를 사용할 수 있는 워크로드는 다음과 같습니다.| 워크로드 | 서버리스 지원 | 설명 |
|---|---|---|
| SQL Warehouse | ✅ GA | SQL 분석, BI 도구 연결에 가장 많이 사용됩니다 |
| Notebooks | ✅ GA | 대화형 개발. Python, SQL, Scala, R 모두 지원합니다 |
| Jobs (Workflows) | ✅ GA | 스케줄된 배치 작업. JAR 태스크도 지원됩니다 |
| SDP (Pipelines) | ✅ GA | 선언적 데이터 파이프라인을 서버리스로 실행합니다 |
| Model Serving | ✅ GA | ML 모델 추론 엔드포인트입니다 |
| Vector Search | ✅ GA | 벡터 유사도 검색 인덱스입니다 |
| Apps | ✅ GA | Streamlit, Gradio 등 웹 애플리케이션입니다 |
서버리스 vs 클래식 상세 비교
시작 시간 비교
| 컴퓨트 유형 | 시작 시간 |
|---|---|
| Customer-Managed Cluster | VM 프로비저닝 (~3분) + Spark 초기화 (~2분) = 약 5분 |
| Serverless Compute | 웜 풀 할당 (~5초) + 즉시 실행 = 약 10초 |
| 단계 | Customer-Managed | Serverless |
|---|---|---|
| VM 할당 | 2~3분 (클라우드 API 호출) | 수 초(사전 예열된 풀에서 할당) |
| 런타임 초기화 | 30초~1분 | 이미 초기화됨 |
| 라이브러리 설치 | 추가 시간 소요 | 환경 설정에 포함 |
| 총 소요 시간 | 3~5분 | 5~15초 |
관리 부담 비교
| 관리 항목 | Customer-Managed | Serverless |
|---|---|---|
| 노드 타입 선택 | 사용자가 직접 | 자동 |
| 오토스케일링 설정 | Min/Max 직접 설정 | 자동 |
| 런타임 버전 관리 | 직접 선택/업그레이드 | 항상 최신 |
| 보안 패치 | 런타임 업데이트 필요 | 자동 적용 |
| Spot Instance 설정 | 직접 구성 | 자동 최적화 |
| Init Script | 직접 관리 | 환경 설정으로 대체 |
| 라이브러리 충돌 | 직접 해결 | 격리된 환경 |
서버리스 SQL Warehouse 상세
서버리스 SQL Warehouse는 가장 먼저 도입되고, 가장 널리 사용되는 서버리스 워크로드입니다.| 특징 | 설명 |
|---|---|
| 즉시 시작 | 수 초 내에 쿼리 실행이 가능합니다 |
| 자동 스케일링 | 동시 쿼리 부하에 따라 자동으로 확장/축소됩니다 |
| Photon 기본 | C++ 벡터화 엔진이 기본으로 활성화되어 있습니다 |
| 자동 중지 | 유휴 상태에서 자동으로 리소스를 해제합니다 |
| 관리 불필요 | 사이즈만 선택하면 나머지는 Databricks가 관리합니다 |
서버리스 Notebooks 상세
서버리스 Notebooks는 대화형 개발에서 클러스터 시작 대기 시간을 제거합니다.사용 방법
- 노트북 상단의 클러스터 선택 드롭다운을 클릭합니다
- Serverless 를 선택합니다
- 코드를 실행하면 수 초 내에 결과를 확인할 수 있습니다
환경 설정 (Environment)
서버리스 Notebooks에서는 Environment 를 통해 Python 라이브러리를 관리합니다.
💡 Environment vs Init Script: 서버리스에서는 Init Script 대신 Environment 설정을 사용합니다. 노트북 또는 Job에서 필요한 Python 라이브러리를 requirements.txt 형식으로 지정할 수 있습니다.
서버리스 Jobs 상세
서버리스 Jobs는 스케줄된 배치 작업을 인프라 관리 없이 실행합니다.Databricks Asset Bundle에서 설정
UI에서 서버리스 Job 설정
- Workflows 메뉴에서 Create Job 클릭합니다
- 태스크 설정에서 Compute 옵션을 Serverless 로 선택합니다
- 필요한 라이브러리를 Environment 탭에서 추가합니다
- 스케줄을 설정합니다
서버리스 파이프라인 (SDP)
선언적 데이터 파이프라인(SDP, 구 DLT)도 서버리스로 실행할 수 있습니다.보안 고려사항
서버리스는 Databricks 관리 환경에서 실행되므로, 보안에 대한 이해가 중요합니다.| 보안 항목 | 설명 |
|---|---|
| 네트워크 격리 | 각 고객의 워크로드는 별도의 VM에서 격리 실행됩니다 |
| 데이터 전송 | 고객 스토리지와의 통신은 암호화된 채널을 사용합니다 |
| CMK (Customer-Managed Key) | 서버리스에서도 고객 관리 암호화 키를 사용할 수 있습니다 |
| 데이터 상주 | 서버리스 VM은 고객의 클라우드 리전 내에서 실행됩니다 |
| 서버리스 네트워크 연결(SNC) | 고객 VPC의 프라이빗 엔드포인트에 접근할 수 있습니다 |
| VM 재사용 금지 | VM은 사용 후 폐기되며, 다른 고객과 공유되지 않습니다 |
⚠️ 서버리스 네트워크 연결(Serverless Network Connectivity): 서버리스 컴퓨트에서 고객 VPC 내부의 리소스(예: 온프레미스 데이터베이스, Private Link 엔드포인트)에 접근하려면 서버리스 네트워크 연결(SNC) 설정이 필요합니다. Account Console에서 네트워크 연결 구성을 설정할 수 있습니다.
| 항목 | 서버리스 컴퓨트 | 고객 환경 |
|---|---|---|
| Serverless Compute | Databricks 관리 환경 | - |
| VPC/VNet Peering | - | 고객 VPC에서 데이터 소스 접근 |
| 클라우드 스토리지 | - | 고객 계정의 S3/ADLS/GCS |