본문으로 건너뛰기
김신건의 로그

[AWS] Redshift Serverless

· 수정 · 📖 약 4분 · 1,643자/단어 #aws #cloud #redshift #serverless #data-warehouse #analytics
AWS Redshift Serverless, Amazon Redshift Serverless, Redshift Serverless, RPU, Redshift Processing Unit, Redshift workgroup, Redshift namespace

정의

Amazon Redshift ServerlessRedshift 를 클러스터 프로비저닝 없이 사용 하는 방식. 컴퓨트 (RPU) 가 워크로드에 맞춰 자동 확장/축소되며, 유휴 시 요금이 없다. 스토리지는 DW 를 위한 관리형 계층 (RMS, Redshift Managed Storage) 이 S3 위에 별도로 존재한다.

한 줄 요약: 워크로드 예측 불가 / 스파이키 / 개발 및 애드혹 상황에서 클러스터 관리 부담 없이 MPP 를 이용.

왜 Serverless 인가

전통 Provisioned Redshift 의 문제:

  • 유휴 시에도 인스턴스-시간 요금 (24 시간 켜져 있으면 그만큼)
  • 트래픽 급증 시 수동으로 노드 추가 필요 (수 분 프로비저닝)
  • 워크로드 관리 (WLM) 튜닝 부담
  • cluster resize 는 read-only 시간 발생

Serverless 의 해결:

  • 초 단위 과금 (RPU-hour, 실제 실행 시간만)
  • 자동 확장 (RPU 상한 안에서)
  • WLM 자동 (수동 튜닝 불필요)
  • 유휴 시 0 원

아키텍처

flowchart TB
    Client["BI / JDBC / redshift-data API"]

    subgraph Namespace["Namespace<br/>(데이터베이스 + 스키마 + 오브젝트 + 사용자)"]
        DB1[("dev DB")]
        DB2[("analytics DB")]
        Users["Users / Roles"]
    end

    subgraph Workgroups["Workgroups (컴퓨트)"]
        WG1["Workgroup 'etl'<br/>Base 32 RPU, Max 512"]
        WG2["Workgroup 'bi'<br/>Base 16 RPU, Max 256"]
    end

    Client -->|"endpoint 접속"| WG1
    Client -->|"endpoint 접속"| WG2

    WG1 -.->|"쿼리 대상"| Namespace
    WG2 -.->|"쿼리 대상"| Namespace

    Namespace --> RMS[("Redshift Managed Storage<br/>(S3 위에 구축, SSD 캐시)")]

Namespace (논리적 저장 + 사용자)

데이터베이스 / 스키마 / 테이블 / 사용자 / 권한 의 논리 그룹.

  • Snapshot / 복원 / KMS 암호화 / IAM role 이 여기에 붙음
  • 하나의 namespace 는 여러 workgroup 이 공유 가능
  • 삭제 시 데이터 손실 (백업 별도)

Workgroup (컴퓨트 설정)

RPU 용량 + 네트워크 (VPC/보안 그룹) + 엔드포인트 설정 등 컴퓨트 관련 설정.

  • 하나의 namespace 에 여러 workgroup (ETL 용 / BI 용 분리)
  • workgroup 마다 base capacity, max capacity, 사용량 한도 별도

분리 이유: 같은 데이터에 대해 워크로드별로 다른 컴퓨트 정책 적용.

RPU (Redshift Processing Unit)

Redshift Serverless 요금의 기본 단위.

  • 1 RPU ≈ 소량의 CPU + 메모리 + 네트워크 조합 (구체 스펙 비공개, AWS 관리)
  • Base capacity: 워크그룹의 최소 RPU (기본 8, 최소 8, 최대 512)
  • Max capacity: 자동 확장 상한
  • 실제 실행 초 단위로 과금

Base capacity 선택 감각

Base RPU성격대상
8최소 (개발/테스트, 매우 작은 워크로드)실험
16-32기본 프로덕션소-중규모
64-128중대형 (concurrent 사용자 다수)팀 BI
256-512대형 배치 / 데이터 사이언스대기업

IMPORTANT

Base 가 너무 낮으면 첫 쿼리 지연 (급격한 스케일 업 필요). 프로덕션은 최소 16-32 부터 시작 후 사용 패턴 관찰.

자동 확장 (Auto-Scaling)

Serverless 는 두 가지 방향으로 자동 확장.

1. Base 넘어서 위로 (concurrency scaling)

동시 쿼리 부하가 base capacity 를 초과하면 자동으로 추가 RPU 할당 (max capacity 까지).

  • 판단 기준: 큐 길이, 예상 실행 시간, 자원 대기 시간
  • 확장 속도: 초 단위
  • 축소: 유휴 감지 후 자동으로 base 로 복귀

2. AI-driven Scaling (2024+)

과거 워크로드 패턴을 학습해 쿼리 시작 전에 미리 확장. Cold query 지연 감소.

결과: 사용자는 base/max 만 정하고, 실제 확장은 완전 자동.

요금 모델

총 요금 =
    (실행된 RPU 초당 요금)
  + (RMS 저장 요금, GB-월)
  + (Concurrency Scaling / Spectrum / Zero-ETL 등 별도)

과금 특징:

  • 초 단위 (최소 60 초): 짧은 쿼리 여러 개도 정확히
  • base RPU × 실행 시간: 유휴는 청구 X
  • compute 와 storage 분리 청구: 저장 요금은 실행 여부 무관

계산 예 (us-east-1, 2026 대략):

Base 16 RPU × $0.375/RPU-hour × 하루 8 시간 실행 × 30일
= 16 × 0.375 × 8 × 30 = $1,440 /월

+ RMS 스토리지 500 GB × $0.024/GB-월 = $12
= 총 ~$1,452 /월

Provisioned RA3 대비:

  • 하루 24 시간 균등 부하 -> Provisioned 저렴할 수 있음
  • 하루 8 시간 스파이키 -> Serverless 저렴

RMS (Redshift Managed Storage)

Serverless / RA3 의 공통 스토리지 계층. S3 위에 구축된 컬럼형 저장소.

동작:

  • Hot 데이터: 로컬 SSD 캐시
  • Cold 데이터: S3 tiered
  • 사용자는 계층 관리 불필요 (자동)
  • 저장 요금은 실제 GB 사용량 기반

이점:

  • 컴퓨트와 스토리지 독립 확장
  • 스토리지 사실상 무제한
  • 유휴 컴퓨트에도 데이터 유지 (Serverless 유휴 = 저장만 청구)

자세히: MPP “현대 MPP: Compute-Storage 분리”.

데이터 공유 (Data Sharing)

Serverless 도 Data Sharing 완전 지원.

  • 다른 namespace / 다른 계정 / 다른 리전과 데이터 공유 (복사 없음)
  • Producer + Consumer 모델
  • 각자 자기 컴퓨트로 쿼리, 데이터는 물리적으로 한 곳

활용:

  • 팀 A 는 ETL workgroup, 팀 B 는 BI workgroup 이 같은 데이터 공유
  • 개발 계정과 프로덕션 계정 간 데이터 공유

Provisioned RA3 vs Serverless

RA3 ProvisionedServerless
워크로드예측 가능한 지속 부하스파이키, 간헐적
비용 최적Reserved Instance 로 저렴사용량 기반
관리Cluster 관리 필요AWS 자동
WLMManual + AutoAuto only
유휴 요금인스턴스-시간 지속0 (base 는 실행 시만)
확장 속도수 분 (resize)초 단위
동시 사용자Concurrency Scaling 별도자동
최소 크기노드 단위8 RPU

결정 규칙:

  • 새 프로젝트, 워크로드 미지수 -> Serverless 부터
  • 하루 24 시간 균등 heavy 부하 -> Provisioned RA3 + RI (비용 30-70% 절감)
  • 개발 / 테스트 / 애드혹 -> Serverless

사용 사례

1. Ad-hoc + 정기 배치 혼재

낮 (BI 대시보드) : ~30 개 동시 쿼리
저녁 (ETL 배치) : 대용량 스캔 4시간
새벽             : 유휴

Serverless 가 각 상황에 맞춰 자동 확장 + 유휴 절약.

2. Data Sharing consumer

프로듀서가 Provisioned, 컨슈머는 Serverless. 컨슈머는 저장 비용 없이 컴퓨트만.

3. 개발 / 테스트

프로덕션은 Provisioned 로 저렴하게, 개발 팀은 각자 Serverless workgroup.

성능 / 요금 관리

사용량 한도 (Usage Limits)

aws redshift-serverless create-usage-limit \
  --resource-arn arn:aws:redshift-serverless:...:workgroup/bi \
  --usage-type serverless-compute \
  --amount 500 \
  --period monthly \
  --breach-action log  # log / emit-metric / deactivate
  • 월/주/일 RPU-hour 한도
  • 초과 시 알림 / 워크그룹 비활성화
  • 비용 폭탄 방지 필수

쿼리 모니터링

-- 최근 쿼리와 사용된 RPU
SELECT query_id, database_name, query_text,
       compute_seconds, compute_capacity
FROM SYS_QUERY_HISTORY
WHERE start_time > SYSDATE - 1
ORDER BY compute_seconds DESC LIMIT 20;

-- 워크그룹 사용량
SELECT * FROM SYS_SERVERLESS_USAGE
WHERE start_time > SYSDATE - 7;

통합

기능Serverless 지원
Spectrum (S3 외부 테이블)O
Redshift Streaming IngestionO
Data SharingO (producer + consumer)
Zero-ETL (Aurora / RDS / DynamoDB)O
Redshift MLO
Federated Query (Postgres, MySQL)O
VPC-onlyO
Lake FormationO

함정

WARNING

Base RPU 너무 낮음 = 첫 쿼리 지연 + 스케일 업 오버헤드. 프로덕션은 최소 16-32 부터.

CAUTION

Max capacity 무제한 설정 = 예상 밖 비용. Usage Limit 필수.

WARNING

Namespace 삭제 시 데이터 손실. 삭제 전 최종 snapshot.

IMPORTANT

Serverless 는 시간 균등 heavy 워크로드에 오히려 비쌈. RI 를 활용한 Provisioned RA3 가 30-70% 저렴할 수 있음. 예측 후 선택.

CAUTION

Cold query 지연. 오래 유휴 후 첫 쿼리는 스케일 업 시간 (수 초). AI-driven scaling 이 완화 중.

WARNING

Workgroup / Namespace 개념 혼동. Namespace = 저장 + 사용자, Workgroup = 컴퓨트 설정. 하나의 namespace 를 여러 workgroup 이 공유.

관련 위키

이 글의 용어 (8개)
[AWS] Amazon Redshiftcloud
정의 Amazon Redshift 는 AWS 가 관리하는 페타바이트 규모 컬럼형 데이터 웨어하우스 입니다. 2012년 PostgreSQL 8.0.2 를 기반으로 시작해 MPP (…
[AWS] IAM: User, Role, Policy, STScloud
정의 IAM (Identity and Access Management) = AWS 의 권한 관리 전부. User, Group, Role, Policy 로 구성. "누가 어떤 리소…
[AWS] Lake Formation: Data Lake 거버넌스cloud
정의 AWS Lake Formation (LF) 은 데이터 레이크 의 세분화된 접근 제어 + 거버넌스를 중앙에서 관리 하는 서비스. Glue Data Catalog 위에 얹혀 데…
[AWS] Redshift MLcloud
정의 Amazon Redshift ML 은 SQL 문 ( ) 만으로 머신러닝 모델을 학습, 배포, 추론 하는 기능. 데이터를 Redshift 밖으로 옮기지 않고 학습이 가능하며,…
[AWS] Redshift Spectrum: S3 데이터 직접 쿼리cloud
정의 Redshift Spectrum 은 Redshift 에서 S3 에 있는 데이터를 로드하지 않고 직접 SQL 로 쿼리 하는 기능. 별도 Spectrum 실행 계층 (Spect…
[AWS] S3: object storage, storage classes, lifecyclecloud
정의 S3 = AWS 의 object storage. bucket + key + object. 11 9's durability (99.999999999%), 무한 확장. 2026…
데이터 웨어하우스data-engineering
정의 데이터 웨어하우스 (Data Warehouse, DW) 는 여러 운영 시스템에서 흘러 들어온 이력 데이터를 통합해, 대규모 분석 쿼리를 빠르게 실행하도록 최적화된 중앙 저장…
MPP (대량 병렬 처리)data-engineering
정의 MPP (Massively Parallel Processing, 대량 병렬 처리) 는 하나의 대규모 쿼리를 수십 - 수백 노드에 나눠 동시에 실행하는 아키텍처. 각 노드가 …

이 개념을 다룬 위키 페이지 (2)

💬 댓글

사이트 검색 / 명령어

검색

스크롤 = 확대/축소 · 드래그 = 이동 · 0 = 원래 크기 · ESC = 닫기