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 NodeSQL 파싱 → 쿼리 최적화 → 실행 계획 수립 → 컴파일 코드 배포. 클라이언트는 Leader Node와만 통신
Compute Node쿼리 코드 실행 + 데이터 저장. 전용 CPU/메모리/디스크 보유. 중간 결과는 Leader로 전송
Node SliceCompute 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단계 라이프사이클

  1. 수신·파싱: Leader Node가 SQL 수신 → 파싱 → 쿼리 트리 생성
  2. 쿼리 최적화: Optimizer가 쿼리 재작성 (효율 최대화)
  3. 실행 계획 수립: Join 타입·순서, 집계 방식, 데이터 분산 요구사항 결정
  4. 실행 엔진 변환: 계획 → Step/Segment/Stream 분해 → 컴파일 코드 생성 → Compute Node 배포
  5. 병렬 실행: Compute Node Slice들이 쿼리 Segment 병렬 실행
  6. 스트림 처리: 각 Stream에 대한 실행 Segment 생성
  7. 최종 집계: 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가지 옵션:

스타일설명사용 상황
AUTORedshift가 테이블 크기 기반 자동 선택 (기본값 권장)일반적인 시작점
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·압축 권고

관련 개념

관련 엔티티

소스

⚠️ 검증 필요

이 페이지의 정보는 2022년 기준입니다. DAP 운영 참고 전 공식 문서에서 최신 버전을 확인하세요.