Amazon Redshift
Summary
Dated Claim
이 페이지의 수치·기능·가격 정보는 2022-01-31 기준입니다. Serverless, DataSharing, Zero-ETL 등 이후 추가된 기능은 반영되지 않았을 수 있음.
Dated Claim
이 페이지의 수치·기능·가격 정보는 2022-01-31 기준입니다. Serverless, DataSharing, Zero-ETL 등 이후 추가된 기능은 반영되지 않았을 수 있음.
AWS의 완전관리형 페타바이트급 클라우드 데이터 웨어하우스. PostgreSQL 기반, OLAP 최적화. MPP(Massively Parallel Processing) 아키텍처로 복잡한 분석 쿼리를 고속 처리한다.
개요
Amazon Redshift는 AWS가 제공하는 완전관리형 데이터 웨어하우스 서비스로, 수만 개 이상의 고객이 BI(Business Intelligence), 데이터 레이크 통합, 머신러닝 파이프라인에 활용한다. PostgreSQL 기반이지만 OLAP에 최적화되어 있어 OLTP 시스템과는 쿼리 처리 방식이 다르다.
핵심 아키텍처 컴포넌트
클러스터 구조
| 컴포넌트 | 역할 |
|---|---|
| Leader Node | SQL 파싱 → 쿼리 최적화 → 실행 계획 수립 → 컴파일 코드 배포. 클라이언트는 Leader Node와만 통신 |
| Compute Node | 쿼리 코드 실행 + 데이터 저장. 전용 CPU/메모리/디스크 보유. 중간 결과는 Leader로 전송 |
| Node Slice | Compute Node의 병렬 처리 단위. 각 Slice가 데이터 파티션을 독립 처리 |
두 가지 클러스터 유형:
- Single-node: Leader + Compute 역할을 하나의 노드가 담당
- Multi-node: 1 Leader + 최대 100 Compute Nodes
Key Insight
클러스터의 성능은 노드 수와 타입이 결정한다. 클라이언트는 Leader Node와만 통신하므로, 물리적 분산 구조가 애플리케이션에 투명하게 작동한다.
MPP (Massively Parallel Processing)
“Shared-nothing” 아키텍처: 각 노드가 독립적인 OS와 메모리로 동작. 같은 쿼리 코드를 여러 Compute Node가 각자 할당된 데이터 파티션에 동시 실행. 데이터 분산 방식(Distribution Style)이 균등할수록 병렬 처리 효율이 높아진다.
쿼리 실행 7단계 라이프사이클
- 수신·파싱: Leader Node가 SQL 수신 → 파싱 → 쿼리 트리 생성
- 쿼리 최적화: Optimizer가 쿼리 재작성 (효율 최대화)
- 실행 계획 수립: Join 타입·순서, 집계 방식, 데이터 분산 요구사항 결정
- 실행 엔진 변환: 계획 → Step/Segment/Stream 분해 → 컴파일 코드 생성 → Compute Node 배포
- 병렬 실행: Compute Node Slice들이 쿼리 Segment 병렬 실행
- 스트림 처리: 각 Stream에 대한 실행 Segment 생성
- 최종 집계: Leader Node가 결과 취합 → 클라이언트 반환
노드 타입
Dated Claim
아래 노드 타입 설명은 2022-01-31 기준. 현재 AWS는 RA3(관리형 스토리지)를 최신 권장 타입으로 지정하고 있으며, DS2/DC2는 구세대 옵션이다.
- DS (Dense Storage): 500GB 이상 대용량 스토리지, HDD 사용
- DC (Dense Compute): 고성능 소용량, SSD 사용
- RA3: 컴퓨트와 스토리지를 독립 확장. 관리형 스토리지 사용 — 현재 AWS 권장 (출처: redshift-microstrategy-best-practices)
컬럼형 스토리지
행(Row) 대신 열(Column) 단위로 데이터 저장:
- 쿼리에 필요한 컬럼만 읽음 → I/O 최소화
- 같은 타입의 데이터가 연속 저장 → 압축 효율 향상
- Row 저장 대비 ~3배 이상 스토리지 효율 향상 가능
스케일 아웃 5대 패턴
1. Amazon Redshift Serverless
인프라 관리 없이 데이터 웨어하우스를 자동 프로비저닝·스케일. 용량 단위: RPU(Redshift Processing Units), 초 단위 과금.
- AI 기반 자동 스케일링: 데이터 볼륨 변화·동시 사용자·쿼리 복잡도 기반
- 유지보수 윈도우 없음 (자동 업데이트, 중단 없음)
- 마이그레이션: 기존 Provisioned 스냅샷 → Serverless 복원 (Interleaved Key → Compound Key 자동 변환)
사용 사례: 셀프서비스 분석, 예측 불가 워크로드, 멀티테넌트 애플리케이션
2. Data Sharing
별도 Redshift 클러스터 간 데이터 실시간 공유. 데이터 복사 없이 Live 데이터 접근.
- Datashare: 공유 단위. Producer가 생성 → Consumer가 데이터베이스로 생성
- 접근 구문:
consumer_db.schema_name.table_name - Hub-and-spoke 패턴: 중앙 Producer DW → 복수 Consumer DW
- 멀티 클러스터 쓰기: Consumer가 Producer 데이터에 INSERT 가능
사용 사례: 워크로드 격리 및 비용 배분, 팀 간 협업, 데이터 서비스 제공
3. Redshift Spectrum
Amazon S3의 데이터를 Redshift 내부로 로드하지 않고 직접 쿼리.
- Redshift 독립 인프라에서 실행 (DW 컴퓨팅 절약)
- 수천 개 인스턴스로 자동 스케일 가능
- 외부 테이블 등록: AWS Glue Data Catalog, Athena, Apache Hive Metastore 지원
- 지원 포맷: Apache Iceberg, Apache Hudi, Delta Lake, Parquet, JSON, CSV
사용 사례: 대용량 저빈도 접근 데이터 (레이크하우스), 무거운 집계 쿼리, 파티션 프루닝 가능한 선택적 쿼리
4. Zero-ETL 통합
ETL 파이프라인 없이 트랜잭션 DB → Redshift 근실시간 복제. 데이터는 수 초 내 Redshift에 도달.
지원 소스:
- Amazon Aurora (MySQL 호환, PostgreSQL 호환)
- Amazon RDS for MySQL
- Amazon DynamoDB
- SaaS: Salesforce, SAP, ServiceNow, Zendesk
연속 CDC(Change Data Capture) 기반. 파이프라인 상태 자동 모니터링 및 복원.
5. 스트리밍 인제스트
Amazon Kinesis Data Streams 또는 Amazon MSK(Kafka)에서 S3 스테이징 없이 Redshift로 직접 저지연 인제스트.
- External Schema → Materialized View로 스트림 구성
- 표준 SQL로 스트림 데이터 접근
사용 사례: 실시간 게임 분석, IoT 데이터, 클릭스트림, 로그 분석, POS 소매 분석
쿼리 최적화 핵심 3요소
Distribution Style
데이터 분산 방식이 쿼리 성능의 핵심. 4가지 옵션:
| 스타일 | 설명 | 사용 상황 |
|---|---|---|
| AUTO | Redshift가 테이블 크기 기반 자동 선택 (기본값 권장) | 일반적인 시작점 |
| EVEN | 라운드로빈 균등 분산 | JOIN이 없거나 적은 팩트 테이블 |
| KEY | 특정 컬럼 값 기반 분산 | 대형 JOIN이 빈번한 테이블 |
| ALL | 모든 노드에 전체 복사 | 소형 디멘전 테이블 |
Tip
MicroStrategy 같은 BI 툴은 Distribution Style을 투명하게 활용한다. AWS 권장 best practice에 따라 물리 스키마를 설계하면 BI 쿼리 성능이 자동으로 향상된다.
Sort Key
테이블 데이터를 물리적으로 정렬 → WHERE 절 범위 조건에서 불필요한 블록 스캔 제거.
예시: orders 테이블 5년치 데이터에 order_date SORTKEY 적용 → 1개월 범위 쿼리 시 98%의 디스크 블록 제거 가능 (출처: redshift-microstrategy-best-practices, 2022-01-31 기준)
권장:
SORTKEY AUTO(Redshift 자동 최적화)- WHERE 절 자주 사용되는 컬럼에 적용
- Sort Key 컬럼에 SQL 함수 적용 금지 (효과 감소)
Materialized Views
반복 쿼리의 사전 계산 결과 저장. 예측 가능하고 반복되는 워크로드에 특히 효과적.
성능 예시 (TPC-DS 3TB 벤치마크, 2022-01-31 기준):
- 일반 뷰 기반 대시보드 쿼리: ~15초
- Materialized View 기반: ~4초 (약 4배 향상)
갱신 전략:
- 증분 갱신(Incremental Refresh): 변경분만 업데이트
- 전체 갱신(Full Refresh): 전체 재계산 (증분 불가 시 자동 선택)
- Auto-refresh: 기본 테이블 변경 즉시 자동 갱신
자동 쿼리 재작성(Auto Query Rewrite): Redshift가 쿼리를 MV 활용으로 자동 변환.
Workload Management (WLM)
쿼리 우선순위 관리 — 짧은 쿼리가 긴 쿼리에 블로킹되지 않도록.
자동 WLM (권장)
- Redshift ML 알고리즘이 동시 실행 수·메모리 할당 자동 관리
- Query Priority: 사용자/쿼리 그룹별 우선순위 지정 (highest/high/normal/low)
- 낮은 우선순위 쿼리도 결국 완료됨 (기아 현상 없음)
수동 WLM
- 최대 8개 큐 정의, 각 큐에 Slot 수와 메모리 할당
- 용도별 큐 분리 예: 대시보드 큐, ETL 큐, 개발 큐
QMR (Query Monitoring Rules)
- 메트릭 기반 성능 경계 설정 후 위반 시 액션 실행
- 예: 60초 초과 쿼리 자동 취소, 중첩 루프 포함 쿼리 로깅
Concurrency Scaling
- 동시 쿼리 급증 시 자동으로 트랜지언트 클러스터 추가 (수 초 이내)
- 24시간 사용마다 1시간 Concurrency Scaling 크레딧 적립
Dated Claim
“97% of Redshift customers benefit from concurrency scaling at no additional charge” — 2022-01-31 AWS 발표 기준 수치. 현재 요금 정책은 AWS 공식 페이지에서 확인 필요.
추가 기능
- Auto-copy: S3 prefix 모니터링 → 신규 파일 자동 Redshift 로드 (별도 ETL 도구 불필요)
- Resize: Provisioned 클러스터 노드 수/타입 변경
- Federated Queries: Aurora PostgreSQL, MySQL 같은 외부 DB 데이터를 Redshift SQL로 직접 쿼리
- Redshift Advisor: 워크로드 분석 기반 Distribution Key·Sort Key·압축 권고
관련 개념
- data-warehouse-architecture — Redshift가 구현하는 DW 아키텍처 원칙
- query-optimization — Distribution Style·Sort Key·MV 최적화 이론
- change-data-capture — Zero-ETL의 기반 기술
- etl-pipeline — 전통적 ETL vs Zero-ETL 패러다임 비교
관련 엔티티
- microstrategy — BI 프론트엔드; WLM query_group 연동
- oracle-goldengate — S3 Tables를 통한 Redshift Spectrum 연동
- ibm-datastage — Redshift를 ETL 타깃으로 사용하는 ETL 도구
소스
- redshift-architecture-patterns-at-scale
- redshift-dw-arch-components
- redshift-architecture-guide
- redshift-microstrategy-best-practices
⚠️ 검증 필요
이 페이지의 정보는 2022년 기준입니다. DAP 운영 참고 전 공식 문서에서 최신 버전을 확인하세요.
- Amazon Redshift: https://docs.aws.amazon.com/redshift/
- MicroStrategy: https://www.microstrategy.com/