RedShift
사용에 앞서 짧게 RedShift
란 무엇인가에 대해 정리해 보았다.
데이터 웨어하우스
서비스이다. PetaByte
규모의 데이터까지 처리할 수 있다.PostgreSQL
을 기반으로 두고 있어 표준 SQL
을 이용하는 데이터 처리를 지원
하며 이를 통해 BI
를 얻을 수 있다.컬럼 기반 스토리지
가 사용 가능하다. -> 데이터의 압축률
을 높이고 저장 용량을 최적화
대용량 병렬 처리(MPP) 기능
을 제공한다. -> 대규모 데이터 집합을 빠르게 처리
가능 SQL 기반
의 쿼리 언어를 지원한다. 다른 AWS 서비스와 통합
되어 있어 데이터를 쉽게 가지고 올 수 있다. -> 높은 유연성
과 확장성
제공 RedShift
는 고정 비용 옵션이기 때문에 제약이 존재한다. 그래서 대용량의 데이터 (기업에서 사용하는 데이터)를 처리할 때는 Redshift
가 아닌 가변 비용 옵션의 데이터 웨어하우스 서비스 Big Query
와 Snowflake
를 쓰는 것을 추천한다.
출처: https://hevodata.com/blog/amazon-redshift-data-warehouse/
노드 클러스터
가 사용된다. Cluster
는 하나 이상의 Compute Node
로 구성된다.Compute Node
가 구성되면 추가적인 Leader Node
가 이를 조정하고 외부 통신을 처리한다.Client Application
은 Leader Node
와만 직접 상호 작용한다.Client Application
과 Compute Node
간의 모든 통신을 관리한다. 실행 계획을 기반
으로 Leader Node
는 코드를 컴파일 하고 이를 Compute Node
에 배포해 각 Compute Node
에 데이터 일부를 할당한다.Leader Node
는 쿼리가 Compute Node
의 테이블을 참조하는 경우에만 Compute Node
에 SQL문을 전달한다.Leader Node
에서만 특정 SQL 함수
를 구현 및 설계할 수 있다. 📑 Leader Node에서만 사용할 수 있는 특정 SQL 함수Leader Node
에서 전달받은 컴파일된 코드를 실행하고 중간 결과를 Leader Node
로 보내 최종 집계를 수행한다.Compute Node
는 노드 유형에 따라 자체 전용 CPU와 메모리를 가지게 된다.Node 수
를 늘리거나 Node 유형
을 업그레이드해 Cluster 컴퓨팅 용량
을 늘릴 수 있다.RA3
, DC2
를 선택하는 것이 좋다.Amazon RedShift Serverless
서비스를 사용할 경우 적절한 리소스를 자동으로 프로비저닝하므로 Node
유형을 선택하지 않아도 된다.Amazon Redshift Spectrum
및 Concurrency Scaling
과 같은 고급 기능도 모두 지원된다.Redshift Managed Storage (RMS)
와 완벽하게 통합되어 있다.Amazon S3
를 사용하여 스토리지를 자동으로 확장하며, 클러스터 크기를 기존 데이터 처리 능력과 스토리지 요구 사항에 따라 조정 가능하다.고성능 스토리지 중심
으로 설계됨.RA3
노드와 달리 전용 로컬 스토리지
를 사용하여 데이터를 처리하기 때문에 높은 성능을 제공하지만 노드의 스토리지 용량을 확장하는 게 쉽지 않다.고용량 스토리지 중심
으로 설계됨.DS2.8xlarge
가 존재한다.