[AWS RedShift] 1. AWS RedShift 개념

·2023년 5월 9일
1

REDSHIFT

목록 보기
1/8

RedShift 사용에 앞서 짧게 RedShift란 무엇인가에 대해 정리해 보았다.

📌 RedShift란?

  • AWS에서 제공하는 클라우드 기반의 완전 관리형 데이터 웨어하우스 서비스이다.
  • PetaByte 규모의 데이터까지 처리할 수 있다.
  • PostgreSQL을 기반으로 두고 있어 표준 SQL을 이용하는 데이터 처리를 지원하며 이를 통해 BI를 얻을 수 있다.

📌 RedShift의 특징

  • 고성능 컴퓨팅과 분산 스토리지 기능을 결합해 대규모 데이터 집합의 저장, 분석 및 쿼리 수행에 최적화되어 있다.
  • 컬럼 기반 스토리지가 사용 가능하다. -> 데이터의 압축률을 높이고 저장 용량을 최적화
  • 대용량 병렬 처리(MPP) 기능을 제공한다. -> 대규모 데이터 집합을 빠르게 처리 가능
  • SQL 기반의 쿼리 언어를 지원한다.
  • 다른 AWS 서비스와 통합되어 있어 데이터를 쉽게 가지고 올 수 있다. -> 높은 유연성확장성 제공
  • 다만 RedShift는 고정 비용 옵션이기 때문에 제약이 존재한다. 그래서 대용량의 데이터 (기업에서 사용하는 데이터)를 처리할 때는 Redshift가 아닌 가변 비용 옵션의 데이터 웨어하우스 서비스 Big QuerySnowflake를 쓰는 것을 추천한다.

📌 RedShift의 Architecture


출처: https://hevodata.com/blog/amazon-redshift-data-warehouse/

1) Cluster

  • RedShift의 핵심 인프로 구성 요소로 노드 클러스터가 사용된다.
  • Cluster하나 이상의 Compute Node로 구성된다.
  • 두 개 이상의 Compute Node가 구성되면 추가적인 Leader Node가 이를 조정하고 외부 통신을 처리한다.
  • 모든 Client ApplicationLeader Node와만 직접 상호 작용한다.

2) Leader Node

  • Client ApplicationCompute Node 간의 모든 통신을 관리한다.
  • 복잡한 쿼리 결과를 얻기 위해 일련의 단계를 실행하는 데 필요한 실행 계획을 분석하고 개발한다.
  • 실행 계획을 기반으로 Leader Node는 코드를 컴파일 하고 이를 Compute Node에 배포해 각 Compute Node에 데이터 일부를 할당한다.
  • Leader Node는 쿼리가 Compute Node의 테이블을 참조하는 경우에만 Compute Node에 SQL문을 전달한다.
  • Leader Node에서만 특정 SQL 함수를 구현 및 설계할 수 있다. 📑 Leader Node에서만 사용할 수 있는 특정 SQL 함수

3) Compute Node

  • Leader Node에서 전달받은 컴파일된 코드를 실행하고 중간 결과를 Leader Node로 보내 최종 집계를 수행한다.
  • Compute Node는 노드 유형에 따라 자체 전용 CPU와 메모리를 가지게 된다.
  • 만약 워크로드가 증가하면 Node 수를 늘리거나 Node 유형을 업그레이드해 Cluster 컴퓨팅 용량을 늘릴 수 있다.

📌 Redshift 노드 유형

  • RedShift에서는 워크로드를 지원하는 여러 노드 유형을 제공한다.
  • 그중 필요한 성능, 데이터 크기, 확장 속도에 따라 RA3, DC2를 선택하는 것이 좋다.
  • Amazon RedShift Serverless 서비스를 사용할 경우 적절한 리소스를 자동으로 프로비저닝하므로 Node 유형을 선택하지 않아도 된다.

1) RA3

  • Amazon RedShift 노드 유형 중 가장 최신의 기술을 사용함.
  • 높은 처리량 및 대규모 데이터 집합 처리에 적합하다.
  • 고성능 SSD 스토리지를 사용하며 비용 효율적인 스토리지와 높은 성능을 제공한다.
  • Amazon Redshift SpectrumConcurrency Scaling과 같은 고급 기능도 모두 지원된다.
  • Redshift Managed Storage (RMS)와 완벽하게 통합되어 있다.
  • Amazon S3를 사용하여 스토리지를 자동으로 확장하며, 클러스터 크기를 기존 데이터 처리 능력과 스토리지 요구 사항에 따라 조정 가능하다.

2) DC2

  • 고성능 스토리지 중심으로 설계됨.
  • 빠른 스토리지 및 메모리 대역폭을 제공한다.
  • RA3 노드와 달리 전용 로컬 스토리지를 사용하여 데이터를 처리하기 때문에 높은 성능을 제공하지만 노드의 스토리지 용량을 확장하는 게 쉽지 않다.

3) DS2

  • 고용량 스토리지 중심으로 설계됨.
  • 높은 스토리지 대역폭과 함께 비용 효율적인 스토리지를 제공한다.
  • 하위 호환 버전인 DS2.8xlarge가 존재한다.
profile
송의 개발 LOG

0개의 댓글