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
    1. 유저 -> Snowflake 접속 요청
    2. 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

'Snowflake' 카테고리의 다른 글

Snowflake 주요 특징  (0) 2025.06.17
Snowflake와 기존 클라우드 데이터 웨어하우스 차이  (0) 2025.06.17
Snowflake Snowsight (Modern Web UI)  (0) 2025.06.17
Snowflake Legacy Web UI  (1) 2025.06.16
Introduction and Snowflake History  (0) 2025.06.14