왜 Databricks Apps가 필요한가요?
데이터 팀이 분석 결과나 ML 모델을 만들었다고 해서 바로 비즈니스 가치가 생기는 것은 아닙니다. 최종 사용자가 쉽게 접근할 수 있는 웹 애플리케이션 형태로 제공해야 합니다. 하지만 기존에는 별도의 서버를 프로비저닝하고, 인증을 구현하고, 네트워크를 설정하는 등 복잡한 인프라 작업이 필요했습니다.💡 Databricks Apps 는 Databricks 플랫폼 위에서 웹 애플리케이션을 개발, 배포, 호스팅 할 수 있는 관리형 서비스입니다. Streamlit, Gradio, Flask, FastAPI, Dash 등 Python 웹 프레임워크를 지원하며, 별도의 인프라 관리 없이 Databricks의 데이터와 AI 모델에 안전하게 접근하는 앱을 만들 수 있습니다.
지원 프레임워크
Databricks Apps는 다양한 Python 웹 프레임워크를 지원합니다. 각 프레임워크의 특성에 맞게 선택하면 됩니다.💡 어떤 프레임워크를 선택해야 할까요? 빠르게 데이터 대시보드를 만들고 싶다면 Streamlit, AI 모델 데모가 목적이라면 Gradio, REST API 백엔드가 필요하다면 FastAPI 를 추천합니다.
앱 아키텍처
Databricks Apps는 내부적으로 컨테이너 기반 아키텍처로 동작합니다.핵심 아키텍처 구성 요소
app.yaml 설정 상세
app.yaml은 앱의 실행 방법, 환경 변수, 필요한 리소스를 선언하는 핵심 설정 파일입니다.
기본 구조
설정 항목 상세
지원되는 리소스 유형
⚠️ 포트 번호 주의: 앱은 반드시 포트 8000 에서 수신 대기해야 합니다. 다른 포트를 사용하면 앱이 정상적으로 동작하지 않습니다.
컴퓨트 사이징
앱의 워크로드에 맞는 컴퓨트 크기를 선택할 수 있습니다.🆕 컴퓨트 사이징 GA: Medium(2 vCPU, 6GB)과 Large(4 vCPU, 12GB) 옵션이 GA되어, 앱의 워크로드에 맞는 리소스를 선택할 수 있습니다.
앱 인증 모델
Databricks Apps는 두 가지 인증 모델 을 지원합니다.1. 앱 서비스 프린시펄 인증 (App-on-behalf-of-itself)
앱 생성 시 자동으로 할당된 Service Principal 의 권한으로 리소스에 접근합니다. 모든 사용자가 동일한 데이터를 보게 됩니다.2. 사용자 대리 인증 (App-on-behalf-of-user)
로그인한 사용자의 OAuth 토큰 을 사용하여 리소스에 접근합니다. 각 사용자가 자신의 권한에 맞는 데이터만 볼 수 있습니다.💡 어떤 인증을 선택해야 할까요? 데이터에 행/열 수준 보안이 필요하거나, 누가 어떤 데이터에 접근했는지 감사 추적이 중요하다면 사용자 대리 인증 을 사용하세요.
개발 워크플로
Databricks Apps의 개발은 로컬 개발 → 배포 → 테스트 → 반복 사이클을 따릅니다.로컬 프로젝트 구조
배포 방법
방법 1: Databricks CLI
방법 2: Workspace UI
- 좌측 메뉴에서 Compute> Apps 선택
- Create App 클릭
- 앱 이름과 설명 입력
- 소스 코드 업로드 또는 Git 연결
- 리소스 바인딩 설정
- Deploy 클릭
방법 3: Databricks Asset Bundles (DABs)
프로덕션 환경에서는 DABs로 앱을 인프라-as-코드로 관리할 수 있습니다.데이터 접근 방법
앱에서 Databricks 데이터에 접근하는 주요 방법입니다.SQL Warehouse를 통한 데이터 조회
Databricks SDK 사용
Model Serving 연동 (LLM 챗봇 예제)
Databricks Apps와 Model Serving Endpoint를 연동하면 AI 챗봇을 쉽게 만들 수 있습니다.app.yaml 설정은 다음과 같습니다.
실습, 리소스 제한 및 비용, 모범 사례, 트러블슈팅은 Databricks Apps 실습과 운영 페이지에서 이어집니다.