Top

Amazon Redshift [레드시프트 구축부터 성능, 쿼리, 비용 최적화까지 마스터하기]

  • 지은이김현준, 이성수
  • ISBN : 9791161753591
  • 30,000원
  • 2019년 10월 31일 펴냄
  • 페이퍼백 | 324쪽 | 188*235mm
  • 시리즈 : 클라우드 컴퓨팅

책 소개

요약

아마존에서 제공하는 데이터 웨어하우스 서비스인 아마존 레드시프트를 처음 접하는 독자를 위한 책이다. 먼저 레드시프트 클러스터의 아키텍처를 자세히 설명한다. 다음으로 AWS 콘솔에서 클러스터를 생성하고 쿼리를 수행할 때 어떠한 데이터 구조를 가져가야 하는지, 어떤 쿼리를 수행해야 하는지 성능, 보안, 비용 측면에서 자세히 설명한다. 마지막으로 AWS에서 레드시프트 스펙트럼을 이용해 다른 서비스와 함께 데이터 레이크를 구축하는 방법을 예제를 들어 설명한다. 이 책을 읽고 나면 AWS 데이터 웨어하우스 구축의 시작부터 최적화까지 100% 활용할 수 있을 것이다.

이 책에서 다루는 내용

■ 데이터 분석에 맞춤화된 실습용 레드시프트 클러스터 생성
■ 다양한 형식의 데이터를 적재하고 최적화하는 방법
■ 실습 데이터를 이용해 최적화한 테이블 분산 방식과 소트키 선정 방법
■ 레드시프트 쿼리 프로파일링 방법
■ 레드시프트 쿼리 튜닝 노하우
■ 안정적인 레드시프트 클러스터 구성과 관리, 모니터링 방법
■ 레드시프트 WLM과 스냅샷, VACUUM 작업 100% 이해하기
■ 레드시프트 정보 보안 수준 향상 방법
■ 레드시프트 스펙트럼을 활용한 S3 데이터 쿼리 방법
■ 레드시프트 과금 방식과 비용 절감 방법
■ 일래스틱 리사이즈와 컨커런시 스케일

이 책의 대상 독자

AWS에서 레드시프트를 처음 들어본 사용자부터 레드시프트를 사용해 AWS 내에서 데이터 웨어하우스를 구축하고자 하는 데이터 엔지니어까지 모두 참고할 수 있다. 기존 데이터베이스 관련 지식이 있다면 아마존 레드시프트에서 다른 아키텍처를 어떻게 사용해야 성능의 이점을 최대화할 수 있는지 참고할 수 있다. 데이터베이스 관련 지식이 부족하더라도 기본적인 쿼리 사용법부터 레드시프트 구조까지 자세히 설명하기 때문에 기초 사용자의 레드시프트를 사용 길잡이가 돼줄 것이다. AWS 클라우드에서 데이터 웨어하우스 및 데이터레이크를 구축하고자 하는 엔지니어라면 레드시프트의 특징을 기반으로 저자의 많은 시행착오와 경험에서 나오는 팁들을 참고할 수 있으며, 이 책이 앞으로 겪게 될 폭풍 속의 등대가 돼줄 것이다. 또한 클라우드에 시스템을 구축하는 만큼 얼마나 적은 비용으로 최대한의 효과를 낼 수 있는가에 초점을 맞추고 있다. 아마존 레드시프트를 사용할 때의 여러 팁을 사용자의 환경에 맞춰 적용함으로써 비용 효율적인 시스템을 구축할 수 있도록 안내할 것이다.

이 책의 구성

각 장에서 다루는 내용은 레드시프트 클러스터 구축 과정 순서로 구성했다. 독자에 따라 필요한 장만 읽어볼 수도 있지만 설치형 데이터 웨어하우스와 다르게 클라우드 데이터 웨어하우스에서는 시스템 관리자와 데이터 제공자, 분석가의 경계가 미미하다. 시스템 관리자와 데이터 제공자는 분석가의 쿼리를 잘 알고 있어야 하며, 분석가는 클러스터와 데이터 구성을 잘 이해하고 있어야 최적화된 쿼리 성능을 발휘할 수 있다. 따라서 사용자 역할에 상관없이 처음부터 끝까지 읽기를 권장한다.

1장. AWS 소개
아마존 레드시프트를 다루기 전에 AWS 서비스의 간략한 소개와 출시 배경을 다룬다.

2장. 레드시프트 시작하기
AWS를 처음 접하거나 레드시프트 클러스터를 처음 생성한다면 생성 과정에 등장하는 용어와 옵션이 생소할 것이다. 레드시프트 시스템 아키텍처를 설명하고 AWS 클라우드와 데이터레이크에서 레드시프트의 역할을 이해한 다음 대용량 데이터 분석 환경에 맞춤화된 레드시프트 클러스터 구성 과정을 설명한다.

3장. 데이터 최적화
레드시프트 클러스터가 준비됐다면, 데이터 웨어하우스와 마트 데이터를 구성할 단계다. 데이터 적재부터 데이터 최적화까지 다룬다. 레드시프트에서 데이터 최적화는 쿼리 성능을 결정하는 가장 중요한 단계다. 많은 레드시프트 입문자가 어려워하는 테이블 분산 방식과 소트키를 설명한다. 3장에서 적재한 실습 데이터는 이후 학습 과정에서 활용한다.

4장. 쿼리 최적화
레드시프트와 같이 대용량 데이터를 대상으로 쿼리를 처리하는 데이터베이스 시스템에서의 쿼리 튜닝 작업은 매우 중요하다. 1만 레코드를 대상으로 한 쿼리가 튜닝을 통해 1초 빨라졌다고 가정하면 데이터가 백만, 천만, 1조 건으로 늘어나는 경우 튜닝의 결과는 백 배 천 배로 빨라질 수 있다. 4장에서는 쿼리를 분석하고 프로파일링한 다음 쿼리를 튜닝하는 노하우를 소개한다.

5장. 클러스터 최적화
2장에서 생성한 클러스터를 관리하고 시스템과 데이터 안정성을 높게 유지하는 방법을 설명한다. 또한 많은 레드시프트 입문자가 어려워하는 WLM 구성과 VACUUM 작업을 설명한다.

6장. 레드시프트 보안
레드시프트 클러스터를 관리하고 확장하려면 정보 보안을 간과할 수 없다. 6장에서는 레드시프트 관련 AWS 네트워크 기능을 소개한다. 그 후 사용자 인증과 권한 설정을 통해 데이터 접근을 통제하고, 클러스터와 S3에 저장되는 데이터 암호화로 정보 보안 수준을 높인다. 마지막으로 SSL 클라이언트 연결을 설정해 클라이언트와 클러스터 간 데이터가 안전하게 전송되게 한다.

7장. 레드시프트 스펙트럼
레드시프트 스펙트럼은 AWS S3 데이터레이크와 레드시프트를 연결해주는 고리다. 레드시프트 스펙트럼으로 S3에 저장된 데이터를 쿼리하고 분석하는 방법을 설명하며, 스펙트럼 관련 요금과 비용 절감 방법을 소개한다.

8장. 부록
일래스틱 리사이즈, 컨커런시 스케일과 같이 레드시프트에 새롭게 추가됐지만 학습에 빠트릴 수 없는 기능을 다룬다. 일래스틱 리사이즈를 사용해 클러스터를 재생성하지 않고 클러스터 크기를 변경할 수 있으며, 컨커런시 스케일은 레드시프트 고질적인 컨커런시 제한 문제를 해결해준다. 추가로 레드시프트와 연동되는 AWS 서비스인 AWS Glue와 AWS Athena를 소개한다. 마지막으로 AWS 사용자의 최대 관심사인 레드시프트 요금과 비용 절감 방법을 설명한다.

저자/역자 소개

지은이의 말

레드시프트를 구축하고 관리하면서 관리자와 사용자로부터 다양한 시행 착오를 겪었다. 데이터 웨어하우스 전반적인 지식이 부족하기도 했고, 아마존 레드시프트 사용 경험과 자료도 부족했기 때문이다. 이 책을 출판하기 전만 해도 국내 서점과 온라인에 아마존 레드시프트 관련 자료를 찾아보기 힘들었다. 그러다 보니 레드시프트를 OLTP 데이터베이스와 같은 방식으로 사용하는 사용자도 많아져서 클러스터를 확장하기 전 관리자와 사용자 교육이 더욱 시급했다. 레드시프트는 빠르면서도 저렴한 OLAP 분석용 데이터베이스다. 물론 제대로 활용했을 때 그렇다. 레드시프트를 용도에 맞지 않게 사용하면 오히려 쿼리 수행 성능이 느려지고, 느려진 성능을 고 사양 노드로 대체하면서 클러스터 비용이 비싸지는 악순환이 발생한다. 이런 레드시프트 관련 오해를 풀고, 레드시프트를 20%가 아닌 120% 활용하길 바라는 마음에 사용자 교육과 운영 경험을 토대로 이 책을 쓰기로 결심했다.
이 책은 레드시프트에 익숙하지 않은 입문자를 위해 작성했다. 레드시프트에 쿼리를 실행하는 사용자와 데이터를 제공하는 데이터 관리자, 레드시프트를 운영하는 클러스터 관리자에게 필요한 내용을 모두 담았다. 사용자, 데이터 관리자, 클러스터 관리자의 역할과 필요한 지식이 크게 다르다고 생각할 수도 있지만, 사실 레드시프트에서 이들이 학습해야 할 내용은 공통 부분이 많다. 레드시프트에서 실행되는 쿼리는 데이터와 클러스터 구성에 따라 성능이 크게 달라지기 때문에 최적화된 쿼리를 작성하기 위해서는 데이터와 시스템 구성을 이해해야 한다. 데이터와 클러스터 관리자도 사용자 쿼리에 최적화된 데이터와 클러스터를 제공하기 위해서 사용자 쿼리 유형을 파악해야 한다.
아마존 레드시프트 매뉴얼의 내용은 최대한 배제하고 실전에 활용할 수 있는 내용과 노하우를 위주로 담았다. 자동차 매뉴얼에는 차를 수리하는 데 사용하는 정비 매뉴얼이 있고, 차를 안전하게 운전하고 차의 기능을 100% 활용하기 위한 운전자 매뉴얼이 있다. 이 책은 운전자 매뉴얼과 같이 레드시프트 클러스터를 안정적이면서도 100% 활용하는 방법을 설명한다. 독자에게 이 책이 큰 도움이 되길 바라며 최고의 성능을 자랑하는 레드시프트 클러스터를 만들어가기 바란다.

2019.9.1 김현준

처음 회사에서 모든 서비스를 AWS로 이관하려 했을 때 막막함을 감출 수 없었다. 이미 수 천 개의 원천 테이블이 수 백 개의 마트 테이블을 생성하고 있었고, 그때 당시 처음 들어보는 데이터베이스에 데이터뿐 아니라 모든 파이프라인까지 이관해야 했기 때문이다. 아마존 레드시프트와 기존에 사용하던 데이터 웨어하우스 장비는 여러 방면에서 다른 특징이 있었으며, 모든 이관 작업을 진행하면서 얻을 수 있는 정보가 아마존 문서밖에 없었기 때문에 여러 시행착오를 겪을 수밖에 없었다. 시행착오 가운데 동료들과 많은 의견을 나누고 때로는 AWS의 도움을 받아가면서 직접 몸으로 부딪혀 하나하나 경험을 얻게 됐고 현재는 안정적으로 클러스터를 운영하고 있다. 이 경험을 바탕으로 레드시프트를 처음 접하며 우리와 같은 고민을 하고 있는 엔지니어에게 경험을 공유할 책을 만들고자 결심했다.
과연 클라우드 환경에서 데이터 웨어하우스를 잘 구축할 수 있을지 걱정했었다. 하지만 아마존 레드시프트는 AWS에서 데이터 웨어하우스를 클라우드 환경에 최적화해 사용할 수 있게 돼 있다. 또한 지속적인 업데이트와 다양한 추가 기능을 제공하기 때문에 이제는 안정적이고 빠른 퍼포먼스를 제공하는 중요한 서비스로 자리매김했다. 특히 클라우드로 서비스가 넘어감에 따라 점차 데이터베이스 관리자와 데이터 엔지니어가 해야 하는 일의 경계가 허물어지고 있는 시점에서 데이터 웨어하우스 개발자와 빅데이터 엔지니어를 모두 포괄할 수 있는 서비스를 제공하고 있다. 이제는 엔지니어가 클러스터를 관리하고, 관리자는 데이터를 알고 최적화할 수 있는 능력이 요구된다. 이 책을 읽는 많은 독자가 엔지니어와 관리자의 경계를 넘나들며 AWS에서 데이터 웨어하우스를 성공적으로 구축할 수 있기를 바란다.

2019.9.1 이성수

지은이 소개

김현준

SK C&C, 삼성 반도체, 쿠팡에서 근무하며 다양한 데이터 플랫폼 구축 경험을 쌓았다. 현재는 쿠팡의 데이터 인프라 팀에서 아마존 레드시프트와 EMR 데이터 플랫폼 구축 및 관리 업무를 맡고 있다. 최대 관심 분야는 분산 시스템, 분산 캐시 등의 기술로 데이터베이스 성능과 사용자 경험을 향상시키는 기술을 연구하고 있다. 여유 시간에는 RPi, FPV 드론, RC 자동차의 컨트롤러를 개발하며 미래형 메카닉을 꿈꾸고 있다.

이성수

한국테라데이타, 쿠팡에서 데이터 엔지니어로 근무하며 지난 10년 동안 데이터 웨어하우스, 데이터 엔지니어링, 데이터 분석에 관한 많은 프로젝트를 수행하였다. 현재 쿠팡에서 시니어 데이터 엔지니어로 근무하면서 데이터 플랫폼뿐 아니라 다양한 원천 데이터에서 의미 있는 정보를 추출해 의사결정을 위한 레포트를 만드는 업무를 하고 있다. 업무 외 시간에는 가족과 함께 시간을 보낸다. 최근에는 IoT에 관심을 갖고 스마트 홈 구축에 흥미를 가지고 있다.

목차

목차
  • CHAPTER 1. AWS 소개
    • 1.1 클라우드 서비스
    • 1.2 클라우드 요금 제도
    • 1.3 고객 지원과 마케팅
      • AWS re:Invent
      • AWS Summit
      • AWS TechConnect
      • AWS Transformation Days
      • AWS Online Tech Talks
      • 오픈소스
      • API & SDK
      • AWS 교육과 자격증
    • 1.4 지속적인 서비스 진화
    • 1.5 글로벌 가용성
    • 1.6 시스템 보안
    • 1.7 정리

  • CHAPTER 2. 레드시프트 시작하기
    • 2.1 Amazon Redshift
      • 레드시프트의 특징
      • 레드시프트 포지셔닝
    • 2.2 시작하기
      • AWS 웹 콘솔 접속
      • 레드시프트 클러스터 생성
      • 노드 유형
    • 2.3 접속하기
      • 데이터베이스 툴
      • JDBC 접속
      • ODBC 접속
      • Python 접속
      • CLI 접속
    • 2.4 레드시프트 아키텍처
      • 시스템 아키텍처
      • 데이터 분산
      • 데이터 저장
    • 2.5 정리

  • CHAPTER 3. 데이터 최적화
    • 3.1 실습 데이터 적재
    • 3.2 테이블 생성
      • CREATE TABLE
      • CREATE TABLE AS
      • CREATE TABLE LIKE
      • CREATE TEMP TABLE
      • CREATE TABLE IF NOT EXISTS
      • 테이블 생성 제약 사항
    • 3.3 컬럼
      • 데이터 자료형
      • 컬럼 인코딩
    • 3.4 데이터 분산
      • 테이블 분산 방식
      • 테이블 분산 방식 선택하기
    • 3.5 소트키
      • 존맵(Zone Map)
      • 컴파운드 소트키(COMPOUND SORT KEY)
      • 인터리브 소트키(INTERLEAVED SORT KEY)
      • 소트키 유형 선택하기
    • 3.6 데이터 적재와 추출
      • COPY
      • UNLOAD
    • 3.7 정리

  • CHAPTER 4. 쿼리 최적화
    • 4.1 SQL 복습
      • WHERE
      • GROUP BY
      • JOIN
      • 쿼리 강제 종료
    • 4.2 쿼리 분석
      • 쿼리 플래닝
      • 실행 계획 분석하기
      • 오퍼레이터
      • 종료된 쿼리 분석하기
      • 시스템 점유율 분석하기
    • 4.3 쿼리 튜닝
      • 쿼리 패턴 분석과 테이블 디자인
      • 컬럼 프로젝션
      • 데이터 스캔 줄이기
      • 조건절에 함수 피하기
      • GROUP BY 튜닝
      • 커밋 빈도 줄이기
      • 통계 정보 최신으로 유지하기
      • 데이터 재 분산 & 재 배포 피하기
      • 쿼리 결과 최소화하기
    • 4.4 정리

  • CHAPTER 5. 클러스터 최적화
    • 5.1 클러스터 설정
      • 관리자 뷰
      • 시스템 테이블
      • 파라미터 그룹
      • WLM
      • 스냅샷
    • 5.2 클러스터 모니터링
      • 레드시프트 웹 콘솔 모니터링
      • Audit 로깅
      • 레드시프트 어드바이저
    • 5.3 테이블 최적화
      • ANALYZE
      • VACUUM
      • 딥 카피
      • 데이터의 균형
    • 5.4 클러스터 자동화
      • AWS Lambda
      • CloudWatch Events
    • 5.5 정리

  • CHAPTER 6. 레드시프트 보안
    • 6.1 레드시프트 네트워크 인프라
      • 네트워크 플랫폼
      • VPC & 서브넷
      • 라우팅 테이블
      • 인터넷 게이트웨이
      • NAT 게이트웨이
      • VPN(Virtual Private Network)
      • VPC Endpoints(PrivateLink)
      • 네트워크 방화벽
    • 6.2 사용자 인증
      • 사용자 생성
      • 그룹 생성
      • 사용자 인증 보안
    • 6.3 사용자 권한
      • 테이블 권한
      • 스키마 권한
      • 데이터베이스 권한
      • 함수 권한
      • UDF 언어 권한
      • 권환 회수
    • 6.4 데이터 보안
      • 데이터베이스 암호화
      • S3 데이터 암호화
    • 6.5 SSL
      • SSL 연결
      • SSL 인증서
      • Trust Store
      • 클러스터 설정
      • 클라이언트 설정
    • 6.6 정리

  • CHAPTER 7. 레드시프트 스펙트럼 사용하기
    • 7.1 레드시프트 Spectrum
    • 7.2 스펙트럼 구성하기
      • IAM 역할 설정하기
      • 외부 스키마 생성하기
      • 외부 테이블 생성하기
      • 메타데이터 저장소
      • 테이블 파티셔닝
    • 7.3 스펙트럼 쿼리 작성하기
      • 외부 테이블 조회 쿼리 및 비교
      • 내부 테이블과 외부 테이블의 조인
    • 7.4 스펙트럼 비용
    • 7.5 레드시프트 스펙트럼 최적화
      • 최적화된 데이터 포맷 사용
      • 압축 파일 사용
      • 대량 병렬 처리를 위한 파일 분할
      • 데이터 파티셔닝
    • 7.6 정리

  • CHAPTER 8. 부록
    • 8.1 클러스터 리사이즈
      • 클래식 리사이즈
      • 스냅샷 리사이즈
      • 일래스틱 리사이즈
    • 8.2 컨커런시 스케일
      • 컨커런시 스케일 요금
    • 8.3 AWS Glue
    • 8.4 Amazon Athena
    • 8.5 레드시프트 비용
      • 온디맨드 요금
      • 리저브드 인스턴스 요금
      • 레드시프트 비용 절약 방법

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안