Snowflake
Snowflake Architecture
LeeJaeJun
2025. 6. 14. 16:49
728x90
728x90
전통적 아키텍처와 한계점
- Share Disk Architecture
- 모든 compute node가 하나의 공유 스토리지 참조
- 장점
- 간단한 메타데이터 관리
- 단점
- 단일 장애 지점(SPOF): 스토리지가 죽으면 전체 다운
- 수직 확장만 가능 -> 고비용
- 여러 쿼리와 작업이 몰릴 경우 I/O 병목 발생
- ETL/BI 작업 동시 처리에 매우 불리
- Shared Nothing Architecture
- 각 노드가 자체 스토리지 + compute 보유
- 장점
- 수평 확장 (노드 추가만으로 처리량 증가)
- SPOF 없음
- 단점
- 스토리지/컴퓨트 독립 확장 불가
- 데이터 재분배/재배치 복잡
- Eventually Consistent (일관성 보장 어려움)
Snowflake 혁신적 아키텍처
Multi-Cluster Shared Data Archtiecture -> Shared Nothing의 확장성과 Shared Disk의 접근성 결합한 구조
계층 | 설명 | 기술적 역할 |
Storage Layer | 클라우드에 데이터 저장 | 압축, 암호화, 열 기반 포맷 |
Compute Layer | Virtual Warehouse | 쿼리 실행, 병렬 처리 |
Service Layer | 클라우드 서비스 계층 | 인증/인가, 최적화, 메타데이터 관리 |
Storage Layer
- 클라우드 스토리지 사용
- AWS -> S3
- Azure -> Blob Storage
- GCP -> GCS Bucket
- 데이터는 자동으로 압축 & 암호화 (AES-256)
- 열 기반 포맷(Columnar Format)으로 저장 -> 빠른 쿼리 성능
- 저장된 데이터는 Snowflake를 통해서만 접근 가능
- 직접 접근 불가 (S3 접근 X) -> 보안성 확보
- 지원 포맷: CSV, JSON, Avro, Parquet, ORC, XML 등
- 일일 평균 저장량(바이트 단위) 기준 과금
- Time Travel & Fail-safe 데이터도 저장 비용에 포함
Compute Layer
- Virtual Warehouse들이 여기에 해당
- Snowflake 사용자 단위로 쿼리 전용 컴퓨트 인스턴스 생성 가능
- 크기 조절 가능: XS - 4XL (1노드 ~ 128 노드)
- Auto-suspend / Auto-resume 지원 -> 비용 효율성 극대화
- 수평/수직 확장 모두 가능
작업 종류 | 권장 워크로드 |
소규모 ETL | XS warehouse |
대형 ML 모델 학습 | 8노드 이상의 L~4XL |
BI 도구 대량 접속 | Multi-cluster warehouse |
개발 환경 | 별도 Dev warehouse 분리 |
Service Layer
- 인증/인가: MFA, SSO, IP 제어 등
- 사용자 세션 관리: 사용자별 권한, 설정, 세션 제어
- 쿼리 최적화: 파싱, 논리 계획 수립, 실행 계획 생성
- 캐싱 처리: 쿼리 결과/메타데이터 캐싱
- 트랜잭션 관리: ACID 보장, 스냅샷 격리
- Life of a Query
- 유저 -> Snowflake 접속 요청
- Cloud Service Layer
- 인증 -> 권한 확인 -> 세션 생성
- 쿼리 파싱 및 최적화
- compute warehouse 할당
- 결과 반환
Snowflake feature
관리 | SaaS 기반, 무중단 자동 업그레이드 |
보안 | Role-Based Access, IP 제어, Data Mining |
쿼리 | ANSI SQL, JS 기반 UDF, SP 지원 |
저장소 | 모든 포맷 지원 (CSV, JSON, ORC 등) |
확장성 | 무한 스케일, 스토리지/컴퓨트 완전 분리 |
비용 | 사용량 기반 과금 (Storage와 Compute 분리) |
성능 | 자동 최적화 + Cluster Key, Search Optimization 지원 |
고가용성 | 멀티 AZ 배치, 자동 장애 복구 |
데이터 공유 | Secure Data Sharing, Reader Account 제공 |
버전 관리 | Time Travel (최대 90일), Fail-safe (7일) |
자동화 | 모든 작업을 SQL로 자동화 가능 |
728x90
300x250