Databricks Apps — 프로덕션 배포의 정답
왜 Databricks Apps인가?
Agent 앱을 프로덕션에 배포할 때 가장 큰 장벽은 기술 자체가 아니라 인프라 운영 입니다.| 직접 배포 시 해야 할 것 | Databricks Apps가 해결하는 것 |
|---|---|
| 서버 프로비저닝 (EC2, VM) | 서버리스 컨테이너 자동 실행 |
| SSL 인증서 발급/갱신 | HTTPS 자동 적용 |
| 인증/인가 시스템 구현 | OAuth 기반 Databricks 사용자 인증 자동 통합 |
| SQL Warehouse 연결 설정 | DATABRICKS_WAREHOUSE_ID 환경 변수로 자동 연결 |
| Model Serving 엔드포인트 연결 | 서비스 프린시펄을 통한 직접 접근 |
| 네트워크 보안 (VPN, 방화벽) | Databricks 네트워크 내 격리 실행 |
| Unity Catalog 권한 관리 | 서비스 프린시펄에 UC 권한 부여로 해결 |
| CI/CD 파이프라인 구성 | databricks apps deploy 명령어로 즉시 배포 |
지원 프레임워크
| 프레임워크 | 지원 여부 | 권장 사용 사례 |
|---|---|---|
| Streamlit | 공식 지원 | 채팅 UI + 대시보드, 가장 많은 예제 |
| Dash | 공식 지원 | 차트 중심 모니터링 대시보드 |
| Gradio | 공식 지원 | ML 모델 데모, 멀티모달 앱 |
| Flask | 공식 지원 | 경량 웹 서버, API + 간단한 UI |
| FastAPI | 공식 지원 | API 서버, SSE/WebSocket |
| Chainlit | 미지원 | (FastAPI 래핑으로 우회 가능하나 비권장) |
app.yaml 설정 예시
Streamlit Agent 앱 (가장 일반적):배포 워크플로
PoC Streamlit → Databricks Apps 마이그레이션
로컬에서streamlit run app.py로 개발한 앱을 Databricks Apps로 마이그레이션하는 단계:
Step 1: 인증 방식 변경
성공
마이그레이션 핵심 원칙: (1) PAT/토큰 하드코딩 → 서비스 프린시펄 자동 인증, (2) 호스트/엔드포인트 하드코딩 → 환경 변수, (3) requirements.txt에 모든 의존성 명시. 이 세 가지만 지키면 대부분의 로컬 Streamlit 앱은 Databricks Apps로 바로 배포 가능합니다.