Snowflake는 3개의 레이어로 나뉘어져 있어요.
각 레이어는 독립적으로 확장(scale) 이 가능한 것이 가장 큰 특징입니다.
┌──────────────────────────────────────────┐
│ ☁️ Cloud Services Layer │ ← 오늘의 주제 (두뇌 역할)
├──────────────────────────────────────────┤
│ ⚡ Compute Layer │ ← 실제 쿼리 실행 (Virtual Warehouse)
├──────────────────────────────────────────┤
│ 💾 Database Storage Layer │ ← 데이터 저장 (S3, Azure Blob 등)
└──────────────────────────────────────────┘
💡 핵심 설계 철학: Storage(저장)와 Compute(연산)를 분리해서,
저장 비용과 연산 비용을 따로 관리할 수 있습니다.
공식 문서 원문:
"The cloud services layer is a collection of services that coordinate activities across Snowflake. These services tie together all of the different components of Snowflake in order to process user requests, from sign-in to query dispatch."
— docs.snowflake.com
한마디로 표현하면 → Snowflake의 두뇌(Brain) 🧠
모든 요청이 가장 먼저 통과하는 관문
예시:
사용자 A → ANALYST 역할 → SELECT만 가능
사용자 B → ADMIN 역할 → 모든 권한 가능
클라우드 환경의 인프라를 자동으로 관리
"데이터에 대한 데이터"를 저장하고 관리
포함 항목:
SNOWFLAKE 데이터베이스Information Schema📌 왜 중요한가?
메타데이터가 있어야 Snowflake의 고유 기능들이 작동합니다.
| 기능 | 설명 |
|---|---|
| Zero-copy Cloning | 데이터를 실제로 복사하지 않고 메타데이터만 복사해서 클론 생성 |
| Time Travel | 과거 특정 시점의 데이터 조회 가능 |
| Data Sharing | 다른 Snowflake 계정과 데이터 공유 |
내부 구현: 공식 엔지니어링 블로그에 따르면 메타데이터 저장소는 FoundationDB를 기반으로 한 Stateless(상태 비저장) 서비스로 구성됩니다.
SQL 쿼리를 분석하고 가장 빠른 실행 계획을 자동으로 수립
처리 순서:
SQL 쿼리 입력
↓
파싱(Parsing) → 문법 분석, 오류 체크
↓
최적화(Optimization) → 비용 기반 최적화(Cost-based Optimizer)
↓
실행 계획(Execution Plan) 수립
↓
Virtual Warehouse(Compute Layer)로 전달
데이터를 체계적으로 관리하고 신뢰할 수 있게 만드는 서비스
법적·산업적 보안 규정을 충족
👤 사용자
│
▼
┌───────────────────────────────────────────────┐
│ Cloud Services Layer │
│ │
│ 1. 🔐 Authentication & Access Control │ ← 로그인, 권한 확인
│ ↓ │
│ 2. 🔍 Query Parsing & Optimization │ ← SQL 분석 및 최적화
│ ↓ │
│ 3. 🗃️ Metadata 조회 │ ← 실행 계획에 필요한 정보
└───────────────────────────────────────────────┘
│
▼
┌─────────────────────┐
│ Virtual Warehouse│ ← Compute Layer (실제 연산)
│ [CPU] [CPU] [CPU]│
└─────────────────────┘
│
▼
┌─────────────────────┐
│ Database Storage │ ← 데이터 읽기/쓰기
└─────────────────────┘
│
▼
결과 반환 → 👤 사용자
| 특징 | 설명 |
|---|---|
| 고가용성 (High Availability) | 여러 가용 영역에 분산 → 장애 발생해도 서비스 지속 |
| 완전 관리형 (Fully Managed) | Snowflake가 모든 유지보수 담당 → 사용자 개입 불필요 |
| 클라우드 기반 | AWS, Azure, GCP 위에서 실행 |
| 독립적 확장 | Storage, Compute, Services 각 레이어를 독립 확장 가능 |
| 중앙 집중식 | 모든 Snowflake 계정에 공통 적용 |
Cloud Services Layer = Snowflake의 두뇌(Brain)
관리 서비스 6가지
1. Security, Authentication & Access Control
2. Infrastructure Management
3. Metadata Management
4. Query Parsing & Optimization
5. Snowflake Horizon Catalog
6. Regulatory Compliance
처리 범위: 로그인(sign-in) → 쿼리 디스패치(query dispatch)
실행 환경: 클라우드 공급자의 컴퓨팅 인스턴스 위에서 실행