AWS Redshift는 Peta-byte 규모의 데이터까지 처리할 수 있는 완전 관리형 Data Warehouse 서비스이다. Redshift는 AWS에서 제공하는 Cloud DB 이긴 한데 MPP DB 서비스라고 보면 된다.
MPP (Mass Parallel Processing)란 대규모 병렬 컴퓨터로서, 많은 독립적인 Node들이 Network로 서로 연결이 된 하나의 매우 커다란 분산 메모리 컴퓨터 시스템을 말한다. MPP DB는 하나의 Query를 여러 개의 Process로 병렬 처리한다. (MPP에 대한 건 나중에 자세히..)
Redshift는 매우 빠른 처리 속도와 높은 확장성을 제공한다. Storage 용량이나 처리속도를 증가시키고 싶으면 간단히 Node 수를 증가시키거나(Scale-Out) 사양을 높이면 된다(Scale-Up).
그러니까 Redshift는 저장 용량이나 처리 속도를 마음대로 조절할 수 있고, 소규모 데이터부터 대규모 데이터까지 처리하며, 병렬로 실행되는 DB라고 보면 된다.
예를 들어 SELECT
문을 날렸는데 Query 실행시간이 너무 오래걸린다? 그러면 사양을 높이거나 Node 수를 늘리면 된다. (물론 사양을 높이거나 Node 수를 늘리는 것만이 답은 아니다)
Redshift의 각 Component들에 대해서 알아보자.
Cluster는 1개 이상의 Compute Node로 구성된다. 만약 2개 이상의 Compute Node가 Cluster에 Provisioning되면 추가 Leader Node가 Compute Node를 Coordinate하고, 외부 통신을 처리한다.
모든 Client applications은 오직 Leader Node와 상호작용한다.
current_schema()
함수의 경우 Leader Node 전용 함수이다.Node 유형
Cluster를 Launch할 때 Node 유형을 선택해야 한다. Node 유형은 각 Node의 CPU, RAM, Storage 용량, Storage drive 유형을 결정한다.
- RA3
RMS(Redshift Managed Storage)에 의해 관리되는 관리형 Storage를 갖춘 고성능 유형.
Computing + RMS로 구성된다. 즉 Computing과 Storage를 독립적으로 구성할 수 있다. 따라서 비용 구성도 컴퓨팅 비용 + RMS 비용으로 나뉜다.
사진에서 보이는 옵션을 보면 결국 Computing 사양을 선택하는 옵션이고 (시간당 $*.***/노드
), Storage 용량의 경우는 RMS에 의해 별도로 늘어나기 때문에 동일한 것을 볼 수 있다 (월별 $0.0026/GB
).
RMS는 고정된 저장용량을 가지지 않고, 수십 TB 이상의 용량까지 늘어나는 AWS에서 관리하는 Storage이다.
Computing 비용은 DC2에 비해 비싸긴 하다. 기본 4 vCPU부터 시작이기도 하고... RA3 유형에 CPU 낮은 걸 제공해주진 않는다 쩝...
ra3.xlplus
1개 Node 기준으로 Computing 비용만 단순 계산하면 월별 이 나온다. 물론 Cluster를 24시간 틀어놓진 않을테니..
Storage 비용은 월별 /GB이다.
- DC2 (Dense Compute)
고정된 Local SSD Storage를 갖춘 고성능 유형.
Computing과 Storage 사양을 별도로 구성할 수 없다. Storage를 늘리고 싶으면 Node 수를 늘려야한다.
기본적으로 160GB 이상의 고정된 Storage를 갖게 된다. 흔히 말해 우리가 SSD 160GB짜리 노트북이 필요하다고 할 때, 아예 그 노트북을 구입하는게 아니라 빌려서 사용한만큼 돈을 지불하는 것이다.
컴퓨팅 비용은 RA3에 비해 확실히 저렴하다(여기에 Storage 비용이 포함된 것 같다?).dc2.large
의 경우 월별 가 나온다.
- DS2 (Dense Storage)
고정된 Local HDD Storage를 갖춘 대규모 Workload에 적합한 유형
대용량 저장이 가능한 HDD를 활용한 유형같지만, SSD의 저장 용량도 좋아져서 권장하지 않는 Node 유형같다. 8개 이상의ds2.xlarge
또는ds2.8xlarge
를 사용하는 경우 RA3로 Upgrade하여 동일한 비용으로 2배 많은 Storage와 향상된 성능을 얻을 수 있다고 한다.
Node 유형 설명
https://aws.amazon.com/ko/redshift/pricing/