본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
Amazon Redshift; Redshift; 아마존 레드시프트
대용량 데이터를 열 기반 저장과 대규모 병렬 처리(MPP)로 분석하는 AWS의 완전 관리형 데이터 웨어하우스

아마존 Redshift는 수십 GB에서 페타바이트 규모의 정형·반정형 데이터를 SQL로 분석하는 서비스이다. 판매, 로그, 클릭스트림 같은 데이터를 한곳에 모아 집계, 조인, 추세 분석, 대시보드 조회를 빠르게 처리한다. 표준 SQL과 JDBC·ODBC를 지원하므로 기존 비즈니스 인텔리전스 도구를 그대로 붙일 수 있다.

Redshift는 OLAP용이다. 주문 한 건을 넣고 고치는 식의 짧은 트랜잭션을 초당 수천 건 처리하는 OLTP 시스템이 아니므로, 애플리케이션의 운영 DB는 아마존 RDS·아마존 Aurora·다이나모DB에 두고 분석용 사본을 Redshift로 보낸다.

리더 노드와 컴퓨팅 노드로 이루어진 Redshift 클러스터
구성 요소 역할
리더 노드 클라이언트 연결을 받고 SQL을 파싱해 실행 계획을 만든 뒤, 컴파일한 코드를 컴퓨팅 노드에 나눠 주고 중간 결과를 모아 최종 집계한다. 클라이언트는 리더 노드하고만 통신한다.
컴퓨팅 노드 데이터 일부를 나눠 가지고 받은 코드를 병렬로 실행한다. 노드 안에서도 슬라이스 단위로 작업을 더 쪼갠다.
열 기반 저장 행이 아니라 열 단위로 디스크 블록에 저장한다. 분석 쿼리는 소수의 열만 읽는 경우가 많아 읽는 양이 크게 줄고, 같은 열의 값은 비슷해 압축률이 높다.
관리형 스토리지 RA3·RG 노드는 로컬 SSD를 캐시로 쓰고 데이터를 S3 기반 관리형 스토리지에 둔다. 컴퓨팅(노드 수)과 저장 용량을 따로 확장·과금한다.

컴퓨팅 노드가 2개 이상이면 리더 노드가 별도로 생긴다. 노드 유형은 성능과 데이터 증가를 고려해 RA3나 Graviton 기반의 RG를 권장한다. RG는 데이터 레이크 쿼리 엔진을 클러스터 안에 내장하고, RA3는 데이터 레이크 쿼리에 Redshift Spectrum을 쓴다.

구분 프로비저닝 클러스터 아마존 Redshift Serverless
용량 단위 노드 유형과 노드 수 Redshift 처리 단위(RPU, 1 RPU = 메모리 16GB)
확장 직접 크기 조정, 동시성 확장 작업량에 따라 몇 초 안에 자동 조정
과금 노드 실행 시간(예약 노드로 할인 가능) 데이터 웨어하우스가 쓰이는 동안의 사용량만
맞는 경우 꾸준하고 예측 가능한 대규모 작업 간헐적·예측 불가 작업, 운영 부담 최소화

아마존 Redshift Serverless

편집 원본 편집

Redshift Serverless는 클러스터와 노드를 고르지 않고 작업 그룹(workgroup)과 네임스페이스만 만들면 용량을 자동으로 프로비저닝하고 확장한다. 쿼리가 없을 때는 컴퓨팅 요금이 나오지 않는다. 기본 용량(base capacity)은 기본값 128 RPU이며 4 RPU부터 512 RPU까지 정할 수 있다. 기본 용량을 높이면 자원을 많이 쓰는 처리 작업이 빨라진다.

Redshift Spectrum

편집 원본 편집

S3에 있는 파일을 Redshift 테이블로 적재하지 않고 그대로 쿼리하는 기능이다. 파일 구조를 AWS Glue 데이터 카탈로그, Athena 카탈로그, Apache Hive 메타스토어 같은 외부 카탈로그에 외부 테이블로 등록하고, Redshift 내부 테이블과 조인한다. 처리 대부분이 Spectrum 계층에서 일어나 클러스터 부담이 적고, 같은 리전의 여러 클러스터가 같은 S3 데이터를 복사 없이 함께 쿼리한다. 외부 테이블은 갱신(UPDATE)할 수 없다. 자주 쓰는 최신 데이터는 Redshift에, 오래된 대량 데이터는 S3 데이터 레이크에 두고 함께 분석하는 구성에 쓴다.

제로 ETL 통합

편집 원본 편집

제로 ETL 통합은 운영 DB의 데이터를 ETL 파이프라인 없이 Redshift로 자동 복제한다. 원본은 계속 갱신하면서 Redshift에서 거의 실시간 데이터로 보고서와 대시보드를 돌린다. 지원 원본에는 Aurora MySQL, Aurora PostgreSQL, DynamoDB, RDS for MySQL, RDS for PostgreSQL, RDS for Oracle, 자체 관리형 DB와 일부 SaaS 애플리케이션이 있다.

동시성 확장(Concurrency Scaling)을 켜면 동시 사용자와 쿼리가 몰릴 때 Redshift가 클러스터 용량을 자동으로 덧붙여 처리한다. 대시보드 같은 읽기 쿼리뿐 아니라 COPY, INSERT, UPDATE, DELETE 같은 주요 쓰기 작업도 지원한다. 사용자는 주 클러스터든 추가 클러스터든 최신 데이터를 본다. 일정량의 무료 사용 크레딧이 쌓이는 방식이라 짧은 피크 대응에 유리하다.

  • 데이터 적재: S3에서 COPY 명령으로 병렬 적재하는 것이 기본이다. 아마존 Kinesis·아마존 MSK 스트리밍 수집, AWS Glue ETL도 쓸 수 있다.
  • 데이터 공유: 데이터를 복사하지 않고 다른 Redshift 클러스터·워크그룹·계정과 실시간으로 공유한다.
  • 보안: VPC 안에서 실행하며, KMS로 저장 데이터를 암호화하고, 열·행 수준 접근 제어를 지원한다.

비슷한 서비스와 구분

편집 원본 편집
서비스 성격 고르는 상황
아마존 Redshift 데이터 웨어하우스 여러 원본을 모은 대규모 정형 데이터의 반복적 복잡 분석, BI 대시보드
아마존 아테나 서버리스 S3 쿼리 엔진 클러스터 없이 S3 데이터를 가끔 SQL로 조회, 쿼리당 과금
아마존 EMR 관리형 하둡·스파크 클러스터 대규모 데이터 변환, 머신러닝 전처리, 사용자 정의 처리
RDS·Aurora OLTP 관계형 DB 애플리케이션의 트랜잭션 처리
  • 페타바이트 규모의 데이터를 복잡한 SQL로 분석하고 BI 도구와 연결하는 요구는 Redshift이다. 운영 트랜잭션 DB가 필요하면 Redshift는 오답이다.
  • S3에 쌓인 데이터를 Redshift에 적재하지 않고 Redshift 테이블과 함께 조회하려면 Redshift Spectrum이다. Redshift 없이 S3만 가끔 조회하면 Athena가 더 간단하고 싸다.
  • Aurora·RDS·DynamoDB 데이터를 ETL 파이프라인 관리 없이 Redshift에서 거의 실시간 분석하려면 제로 ETL 통합이다.
  • 동시 사용자가 몰리는 시간대만 쿼리가 느려지면 동시성 확장, 사용량이 간헐적이고 용량 관리를 원하지 않으면 Redshift Serverless를 고른다.
  • 저장 데이터가 계속 늘어 컴퓨팅과 따로 확장해야 하면 관리형 스토리지를 쓰는 RA3(또는 RG) 노드이다.