Amazon Redshift
Redshift의 기본원리는 클라우드에 최적화된 MPP 기반의 DW, Columnar 기반의 OLAP DB이다.
Amazon Redshift는
- AWS DW, Data Lake, DB를 통합하여 다양한 데이터 분석이 가능하다.
- 일반적인 DW 대비 최대 3배의 안정적인 성능을 보장한다.
- 필요한 만큼만 On-demand RI로 선택 시 최대 75% 비용 절이 가능하다.
Redshift 클러스터 아키텍처: Massively parallel, shared nothing architecture.
•Leader 노드
- SQL 엔드포인트
- 메타데이터 관리
- 병렬처리 구성 및 ML 최적화
- 2개 이상 노드 구성 시 비용 제외
•Compute 노드
- 열기반 스토리지
- 병렬적으로 쿼리 수행
- S3: Load, unload, backup, restore
Compute 노드 | Slice
- Compute 노드는 다수의 Slice로 구성
- Slice는 가상적인 컴퓨팅 엔진 단위
- 각 Slice는 독립적인 메모리 및 디스크 공간 할당받아 Leader가 Compute 노드에 요청한 워크로드를 수행
- Leader 노드의 Slice 단위로 데이터를 분산하고 쿼리 및 DB 작업을 배정
- 병렬처리를 위한 SMP (Symmetric Multiprocessing) 메커니즘
복원성
- 99.9% SLA
- 2nd 노드로 데이터 자동 복제 가능
- 디스크 및 노드 장애에 대한 자동 감지 및 복구
- 자동 데이터 백업
- 백업 데이터를 다른 리전으로 복제
- RA3 활용 시 다른 가용영역으로 이전 가능
자동 WLM (WorkLoad Management)
- Adaptive concurrency: 워크로드 수행 시간을 기반으로 동시성 레벨 적용
- Smarter preemption: 높은 우선순위 쿼리가 낮은 순위의 쿼리를 선점할 수 있도록 제한, 남은 수행시간을 고려하여 선점 조건 판단
- Improved ML prediction model: 성능 저하없이 시스템의 자원을 최대한 활용하여 더 많은 쿼리를 수행
- Turbo-boost mode / SQA (Short Query Acceleration): 쿼리가 감지되었을때 대기 쿼리가 많은 자원을 필요로 하지 않을 경우
- Concurrency Scaling: 중요 워크로드를 SLA 충족시키기 위하여 우선순위 및 비용 기반의 동시성 확장
Redshift 클러스터 크기 조정
•탄력적 크기 조정
- 운영중인 클러스터 노드 추가 및 삭제
- Scale Out 확장 지원
- 몇 분 이내의 빠른 전환
- 백그라운드 Slice 재분배
•클래식 크기 조정
- 신규 클러스터 생성 후 원본 클러스터에서 데이터 복사
- 원본 클러스터의 데이터 크기에 따른 조정 시간 필요
- 신규 클러스터 기반으로 Slice 재조정
데이터 공유
: Redshift 클러스터 간에 안전하고 쉬운 공유 가능
- 데이터의 이동 및 복사없이 활용 가능
- 일관성있는 라이브 데이터 활용
- 내부/외부 조직에 안전한 협업 구조 생성
- 공유 데이터를 접근하는 워크로드를 분리 가능
- 단위 그룹이 협업 및 데이터 공유 시 활용
- 다른 AWS Analytics 서비스와 연계 가능
S3 데이터 레이크를 활용한 다중 클러스터 접근
- 목적에 따라 비용, 성능, SLA을 구분하여 다중 클러스터 구성
- 데이터 특성에 따른 클러스터 분리
- 사용자 그룹에 따른 비용 모델 적용
- 데이터 레이크의 데이터를 다중 클러스터가 공유해서 사용
Redshift Spectrum 개요
: S3 데이터를 테이블에 적재하지 않고도 정형 및 비정형 데이터를 효율적으로 쿼리
- S3 데이터 레이크를 활용하여 엑사바이트 데이터 처리
- 데이터 로딩 없이 즉각적인 쿼리 지원
- 데이터 생애주기 티어링(warm/cold) 구축 가능
- AWS Glue, Amazon Athena와 호환되는 데이터 카탈로그를 사용하여 외부 테이블 생성 및 관리
- Amazon Redshift Spectrum 전용 노드 활용
- S3를 활용한 Materialized View 적용 가능