coredot.today
AWS Redshift 완전 정복: '10억 행을 3초에 분석하는' 데이터 웨어하우스의 모든 것
블로그로 돌아가기
RedshiftAWS데이터웨어하우스분석SQL빅데이터컬럼나

AWS Redshift 완전 정복: '10억 행을 3초에 분석하는' 데이터 웨어하우스의 모든 것

RDS에서 분석 쿼리가 10분 걸린다면, Redshift에서는 3초면 끝난다. OLTP와 OLAP의 차이부터, 컬럼나 스토리지의 마법, Redshift Serverless, 그리고 Snowflake·BigQuery와의 경쟁까지 — 데이터 웨어하우스를 실전 관점에서 풀어본다.

코어닷투데이2026-03-1027

들어가며: "이 쿼리가 왜 10분이나 걸리지?"

RDS 글에서 Aurora PostgreSQL로 서비스를 운영하고 있다고 하자. 어느 날, CEO가 요청한다:

"지난 1년간, 카테고리별 월별 매출 추이를 보고 싶어요."

hljs language-sql
SELECT
  category,
  DATE_TRUNC('month', order_date) AS month,
  SUM(total_amount) AS revenue,
  COUNT(DISTINCT customer_id) AS unique_customers
FROM orders
JOIN products ON orders.product_id = products.id
WHERE order_date >= '2025-03-01'
GROUP BY category, month
ORDER BY category, month;

주문 테이블에 5억 건, 상품 테이블에 100만 건. 이 쿼리를 RDS에서 실행하면 — 10분. 그 사이 같은 DB에서 고객들이 주문을 하고 있고, 분석 쿼리가 DB 자원을 잡아먹어 서비스 응답이 느려진다.

문제는 명확하다: 트랜잭션 처리(OLTP)와 분석(OLAP)은 근본적으로 다른 워크로드인데, 하나의 DB에서 둘 다 하려고 한다.

OLTP (트랜잭션 처리)
소량의 행을 빠르게 읽기/쓰기
"주문 #12345의 상태를 업데이트"
밀리초 응답이 필수
동시 사용자 수천~수만 명
RDS, Aurora, DynamoDB
OLAP (분석 처리)
수억~수십억 행을 집계·분석
"지난 1년간 카테고리별 매출 합계"
수 초~수 분 응답 허용
동시 사용자 수십~수백 명
Redshift, BigQuery, Snowflake

이 OLAP 워크로드를 위해 만들어진 것이 데이터 웨어하우스(Data Warehouse) 이고, AWS의 데이터 웨어하우스가 Redshift다.


1. 데이터 웨어하우스의 역사

1990년대: Teradata와 전통적 DW

데이터 웨어하우스 개념은 1990년대에 Bill Inmon("데이터 웨어하우스의 아버지")과 Ralph Kimball(차원 모델링)이 정립했다.

전통적 DW의 대표 제품은 Teradata, Oracle Exadata, IBM Netezza. 이들의 공통점: 전용 하드웨어에 수억~수십억 원, 도입에 수 개월, 전문 DBA/DW 엔지니어 필요.

$1M~$10M+ 전통적 DW 도입 비용 하드웨어 + 라이선스 + 컨설팅
6~12개월 도입 소요 기간 설계 + 구매 + 설치 + 데이터 적재
수 분 Redshift 클러스터 생성 $0.25/시간부터 시작 가능

2012년: Redshift가 바꾼 것

2012년 11월 AWS re:Invent에서 Amazon Redshift가 발표됐다. 핵심 메시지: "전통 DW의 1/10 비용으로, 수 분 만에, 페타바이트 규모의 분석이 가능하다."

이름의 유래: Red Shift — 천문학에서 먼 은하가 빠르게 멀어질 때 빛이 붉은색으로 이동하는 현상. Oracle(Red)에서 벗어나(Shift) 가자는 의미. AWS가 Oracle과의 경쟁을 공개적으로 선언한 이름이었다.

💡
이름의 숨은 의미: "Redshift"라는 이름에는 AWS의 전략이 담겨 있다. 당시 기업 DW 시장의 지배자는 Oracle이었다. Red(Oracle의 상징색)에서 Shift(탈출)하라는 것. 실제로 Redshift는 Oracle DW의 대체 수요를 대량으로 흡수했다.

2. Redshift는 어떻게 빠른가: 컬럼나 스토리지의 마법

행(Row) 저장 vs 열(Column) 저장

RDS/Aurora 같은 OLTP DB는 데이터를 행(Row) 단위로 저장한다. Redshift는 열(Column) 단위로 저장한다. 이 차이가 분석 속도를 10~100배 바꾼다.

행 기반 저장 (RDS):

행1: [주문ID: 1, 고객: Kim, 카테고리: 전자, 금액: 50000, 날짜: 2026-01]
행2: [주문ID: 2, 고객: Lee, 카테고리: 의류, 금액: 30000, 날짜: 2026-01]
행3: [주문ID: 3, 고객: Park, 카테고리: 전자, 금액: 80000, 날짜: 2026-02]

디스크에는 행 단위로 연속 저장된다. "주문ID 1의 모든 정보"를 읽을 때 빠르다 (OLTP). 하지만 "모든 주문의 금액 합계"를 구하려면? 모든 행의 모든 열을 다 읽어야 한다. 5억 행 × 20열 = 100억 개의 값을 읽지만, 실제 필요한 것은 금액 열 1개뿐.

열 기반 저장 (Redshift):

주문ID 열: [1, 2, 3, 4, 5, ...]
고객 열:   [Kim, Lee, Park, Choi, ...]
카테고리 열: [전자, 의류, 전자, 식품, ...]
금액 열:   [50000, 30000, 80000, 15000, ...]
날짜 열:   [2026-01, 2026-01, 2026-02, ...]

"모든 주문의 금액 합계"를 구하려면? 금액 열만 읽으면 된다. 5억 개의 값만 읽으면 끝. 나머지 열은 디스크에서 아예 안 읽는다.

💡
핵심 차이를 한 줄로: 행 저장은 "한 행의 모든 열"을 빠르게 읽는 데 최적화. 열 저장은 "모든 행의 특정 열"을 빠르게 읽는 데 최적화. 분석 쿼리의 대부분은 "특정 열의 합계/평균/카운트"이므로 열 저장이 압도적으로 빠르다.

추가 성능 최적화 기법

1. 압축 (Compression): 같은 열의 데이터는 유사한 값이 많다 (카테고리 열에 "전자"가 수백만 번). 열 단위 압축으로 디스크 사용량 60~80% 감소 → I/O 대폭 감소.

2. Zone Maps: 각 데이터 블록의 최소값/최대값을 메타데이터로 저장. WHERE date > '2026-01-01'이면 2025년 데이터 블록은 아예 읽지 않는다. 블록 스캔 건너뛰기.

3. MPP (Massively Parallel Processing): 여러 노드가 쿼리를 병렬로 처리. 10억 행을 10개 노드가 나눠서 1억 행씩 처리하면 10배 빠르다.


3. Redshift의 아키텍처

클러스터 구조

Redshift 클러스터 아키텍처
SQL 클라이언트 / BI 도구
리더 노드 (Leader Node) 쿼리 파싱, 실행 계획 생성, 결과 집계
컴퓨트 노드 1 데이터 저장 + 쿼리 실행
컴퓨트 노드 2 데이터 저장 + 쿼리 실행
컴퓨트 노드 N 데이터 저장 + 쿼리 실행

리더 노드: 클라이언트와 통신. SQL을 받아 실행 계획을 만들고, 컴퓨트 노드에 작업을 분배. 결과를 모아 클라이언트에 반환. 비용 없음 (리더 노드는 무료).

컴퓨트 노드: 실제 데이터를 저장하고 쿼리를 실행하는 워커. 노드를 늘리면 성능이 비례하여 향상.

Redshift Serverless: 클러스터 관리 없이

2022년 출시된 Redshift Serverless는 클러스터(노드 수, 타입)를 직접 관리하지 않아도 된다:

  • 쿼리가 오면 자동으로 컴퓨팅 자원 할당
  • 사용하지 않으면 자동으로 일시 중지
  • 용량 단위(RPU)로 과금

DynamoDB의 온디맨드 모드, Aurora Serverless와 같은 패턴이다.

선택 가이드: 처음 시작한다면 Redshift Serverless로. 클러스터 노드 수, 타입을 고민할 필요 없이 즉시 사용 가능. 사용량이 안정화되고 비용 최적화가 필요하면 프로비저닝 클러스터로 전환을 고려.

4. Redshift vs 경쟁자: Snowflake, BigQuery

클라우드 DW 3강 비교

RedshiftSnowflakeBigQuery
클라우드AWS멀티클라우드GCP
스토리지/컴퓨트 분리RA3에서 지원처음부터 분리처음부터 분리
서버리스Serverless 모드기본이 서버리스완전 서버리스
과금시간 또는 RPU크레딧 (시간 기반)스캔 데이터량
AWS 통합네이티브 (IAM, VPC, S3, Glue)제한적없음
동시성WLM으로 관리자동 스케일링자동
강점AWS 생태계, 비용 효율멀티클라우드, UX서버리스, 쉬움
ML 통합Redshift ML (SageMaker)SnowparkBigQuery ML
💡
이 시리즈의 반복 원칙: "이미 잘 아는 클라우드의 서비스를 써라." AWS에 올인이라면 Redshift (IAM, VPC, S3, Glue 네이티브 통합), GCP라면 BigQuery, 멀티클라우드가 필수라면 Snowflake. DW 자체의 기능 차이보다, 기존 인프라와의 통합이 실전에서 더 중요하다.

5. Redshift 실전 활용

활용 1: BI 대시보드

가장 대표적인 용도. 비즈니스 인텔리전스 도구(QuickSight, Tableau, Looker)가 Redshift에 연결하여 대시보드를 생성.

hljs language-sql
-- 일별 매출, 주문 수, 평균 주문 금액
SELECT
  order_date,
  COUNT(*) AS orders,
  SUM(amount) AS revenue,
  AVG(amount) AS avg_order_value
FROM fact_orders
WHERE order_date >= DATEADD(day, -90, CURRENT_DATE)
GROUP BY order_date
ORDER BY order_date;

RDS에서 이 쿼리가 수 분 걸렸다면, Redshift에서는 수 초.

활용 2: S3 데이터 직접 쿼리 (Spectrum)

Redshift Spectrum은 Redshift 클러스터에 데이터를 적재하지 않고, S3에 있는 데이터를 직접 SQL로 쿼리한다.

hljs language-sql
-- S3에 있는 로그 파일을 직접 쿼리 (Spectrum)
CREATE EXTERNAL SCHEMA logs
FROM DATA CATALOG
DATABASE 'logs_db'
IAM_ROLE 'arn:aws:iam::123:role/redshift-spectrum';

SELECT
  DATE_TRUNC('hour', timestamp) AS hour,
  status_code,
  COUNT(*) AS count
FROM logs.access_logs
WHERE timestamp >= '2026-03-01'
GROUP BY hour, status_code
ORDER BY hour;

데이터를 S3에 그대로 두고, 필요할 때만 쿼리. 콜드 데이터를 Redshift에 적재하지 않으므로 스토리지 비용 절감.

활용 3: 데이터 레이크 + 웨어하우스 통합

2026년의 트렌드는 레이크하우스(Lakehouse) — 데이터 레이크(S3)와 데이터 웨어하우스(Redshift)의 경계를 허물고, 하나의 SQL로 모든 데이터에 접근:

다양한 소스 (RDS, DynamoDB, API, 로그)
ETL/ELT (Glue, Firehose)
S3 데이터 레이크 (원본 보관) ←→ Redshift (고속 분석)
QuickSight / Tableau (시각화)

6. Redshift 보안

데이터 웨어하우스는 보안의 최전선

DW에는 기업의 모든 데이터가 모여 있다 — 매출, 고객 정보, 거래 내역, 행동 로그. 해커의 최우선 표적이다.

보안 사고 사례

2020
Vastaamo (핀란드): DW 데이터 유출로 환자 협박
심리치료 기록이 저장된 DB가 유출. 해커가 환자 개인에게 직접 "기록을 공개하겠다"고 협박. DW 보안 실패의 극단적 사례
2021
Experian: 고객 분석 DB 노출
브라질 지사의 분석용 DB가 인증 없이 노출. 2억 명의 브라질 국민 데이터 유출 가능성

Redshift 보안 체계

  • VPC 격리: Redshift 클러스터를 프라이빗 서브넷에 배치. 공개 인터넷에서 직접 접근 불가
  • 암호화: 저장 시 AES-256 자동 암호화. 전송 시 SSL 강제
  • 행 수준 보안(Row-Level Security): "이 사용자는 자기 부서의 데이터만 볼 수 있다"
  • 열 수준 접근 제어: "이 사용자는 매출 열은 볼 수 있지만 고객 이름은 못 본다"
  • 동적 데이터 마스킹: 민감 데이터를 실시간으로 마스킹 (주민번호 → --****)
🔒
DW 보안 체크리스트: (1) Redshift를 프라이빗 서브넷에 배치 (절대 퍼블릭 접근 불가), (2) 암호화 필수 활성화, (3) 행/열 수준 접근 제어로 최소 권한, (4) CloudTrail로 모든 쿼리 감사 로깅, (5) 민감 데이터에 동적 마스킹 적용.

7. Redshift 비용

과금 모델

모델과금 방식적합한 경우
프로비저닝노드 시간당 과금항상 실행, 예측 가능한 워크로드
ServerlessRPU-시간 과금간헐적 분석, 예측 어려운 워크로드
Spectrum스캔 데이터 TB당 $5S3 데이터 임시 분석

프로비저닝 클러스터 비용 예시 (서울):

노드 타입노드당 시간 비용스토리지용도
dc2.large0.314( 0.314 (~226/월)160GB SSD소규모, 빠른 시작
ra3.xlplus0.470( 0.470 (~338/월)S3 관리형 (무제한)범용, 스토리지/컴퓨트 분리
ra3.4xlarge1.580( 1.580 (~1,138/월)S3 관리형 (무제한)대규모 분석
비용 절감 핵심: (1) Reserved Instance로 최대 75% 할인 (1~3년 약정), (2) 일과 시간에만 쓴다면 Serverless로 유휴 비용 제거, (3) 콜드 데이터는 Spectrum으로 S3에서 직접 쿼리 (Redshift 스토리지 비용 절감), (4) ra3 노드로 스토리지와 컴퓨트 분리하여 독립적 확장.

8. 실제 사례

Netflix: 일 수 PB의 분석

Netflix는 Redshift로 일 수 PB 규모의 시청 데이터를 분석한다. "어떤 콘텐츠가 어떤 지역에서 인기 있는가", "추천 알고리즘의 클릭률은 어떤가" — 이런 질문에 대한 답을 Redshift가 수 초 만에 제공한다.

McDonald's: 주문 패턴 분석

McDonald's는 전 세계 매장의 주문 데이터를 Redshift로 분석하여, 시간대별·지역별 메뉴 인기도, 프로모션 효과, 재고 최적화를 수행한다.

Lyft: 실시간에 가까운 비즈니스 분석

Lyft는 Redshift에 준실시간으로 데이터를 적재하여, 수요 예측, 가격 최적화, 드라이버 배치에 활용한다.

한국 기업 사례

  • 쿠팡: 로켓배송 물류 데이터 분석. 수억 건의 주문·배송 데이터에서 병목 구간 분석
  • 토스: 금융 거래 데이터 분석. 사기 탐지 패턴 분석에 Redshift 활용
  • 배달의민족: 주문·리뷰·검색 데이터를 Redshift로 분석하여 추천 시스템과 비즈니스 인사이트 도출

9. 언제 Redshift를 쓰고 언제 쓰지 말아야 하는가

상황추천이유
수억 행 이상의 분석 쿼리RedshiftOLAP에 최적화된 컬럼나 스토리지
BI 대시보드 백엔드Redshift복잡한 집계 쿼리를 수 초에
S3 데이터 SQL 분석Redshift Spectrum 또는 Athena데이터 이동 없이 분석
간단한 S3 임시 쿼리Athena서버리스, Redshift보다 단순
OLTP (주문 처리, 사용자 인증)RDS/AuroraRedshift는 트랜잭션에 부적합
키-값 고속 조회DynamoDBRedshift는 단건 조회에 비효율
텍스트 검색OpenSearchRedshift는 풀텍스트 검색에 약함
💡
Redshift vs Athena: 둘 다 S3 데이터를 SQL로 분석할 수 있다. Athena는 완전 서버리스 + 스캔 데이터량 과금 → 간헐적 임시 쿼리에 적합. Redshift Spectrum은 복잡한 조인, 대규모 정기 분석에 적합. "가끔 S3에서 쿼리" → Athena, "매일 대규모 분석" → Redshift.

마치며: 데이터는 "저장"하는 것이 아니라 "질문"하는 것이다

이 시리즈에서 다룬 데이터 관련 서비스를 정리하면:

서비스용도질문 유형
RDS/AuroraOLTP"이 주문의 상태는?" (단건, 빠르게)
DynamoDB키-값 조회"이 사용자의 세션은?" (초고속)
OpenSearch텍스트 검색"이 키워드가 포함된 문서는?"
S3파일 저장"이 파일을 저장/가져와"
RedshiftOLAP"지난 1년간 카테고리별 매출 추이는?" (대규모 집계)

각 서비스가 다른 유형의 질문에 최적화되어 있다. RDS로 분석을 하거나, Redshift로 트랜잭션을 처리하는 것은 잘못된 도구를 쓰는 것이다.

Redshift의 가치는 **"데이터에 빠르게 질문하고 답을 얻는 것"**이다. 10분 걸리던 쿼리가 3초면 끝나면, 분석가는 하루에 10개의 질문 대신 100개의 질문을 할 수 있다. 더 많은 질문 = 더 깊은 인사이트 = 더 좋은 비즈니스 결정.

코어닷투데이에서도 Redshift는 데이터 분석의 핵심이다. AI 서비스의 사용 패턴, 모델 성능 추이, 비즈니스 메트릭 — 이런 데이터를 S3 데이터 레이크에 모으고, Redshift로 분석하여, 서비스 개선의 근거로 활용한다. 데이터에 질문을 던지고, 3초 만에 답을 얻는 것 — 그것이 데이터 웨어하우스의 가치다.