Amazon Web Services 한국 블로그

Amazon Redshift 동시성 확장(Concurrent Scaling) 기능 출시

Amazon Redshift는 엑사바이트 규모까지 확장이 가능한 데이터 웨어하우스입니다. 현재 NTT DOCOMO, FinraJohnson & Johnson을 비롯한 수많은 AWS 고객이 Redshift를 사용하여 미션 크리티컬 BI 대시보드를 실행하고 실시간 스트리밍 데이터를 분석하고 예측 분석 작업을 실행합니다.

그런데, 문제는 사용자 피크 시간에 동시 쿼리의 수가 증가할 때 발생합니다. 다수의 비즈니스 분석가가 모두 BI 대시보드로 이동하거나 오래 실행되는 데이터 과학 워크로드가 다른 워크로드와 리소스를 경합하는 경우 Redshift는 클러스터에서 충분한 컴퓨팅 리소스를 사용할 수 있을 때까지 쿼리를 대기열에 배치합니다. 이는 모든 작업을 완료하기 위한 동작이지만 피크 시간에 성능 저하가 발생한다는 것을 의미합니다. 이때 선택할 수 있는 옵션은 두 가지입니다.

  • 피크 요구 사항을 충족하기 위해 클러스터를 오버프로비저닝합니다. 이 옵션은 즉각적인 문제를 해결하지만 리소스 및 비용이 필요 이상으로 낭비됩니다.
  • 일반적인 워크로드에 맞춰 클러스터를 최적화합니다. 이 옵션을 사용하는 경우 피크 시간에 결과가 나오는 시간이 더 오래 걸리므로 중요한 비즈니스 의사 결정이 지연될 수 있습니다.

새로운 동시성 확장 (Concurrent Scaling) 기능

동시성 확장 (Concurrency Scaling)을 사용하면 사실상 무제한의 동시 사용자 및 동시 쿼리를 일관되게 빠른 쿼리 성능으로 지원할 수 있습니다.  따라서, 추가적인 쿼리 처리 성능을 필요에 따라 Redshift 클러스터 성능을 확장할 수 있습니다. 이 작업은 몇 초 내에 투명하게 수행되며 워크로드가 수백 개 동시 쿼리까지 증가하더라도 빠르고 일관적인 성능을 제공합니다. 추가 처리 성능은 몇 초 내에 준비되며 사전 준비 또는 사전 프로비저닝이 필요하지 않습니다. 초당 청구 금액으로 사용한 만큼만 요금을 지불하면 되며 기본 클러스터를 실행하는 동안 24시간마다 1시간의 동시 조정 클러스터 크레딧이 누적됩니다. 추가 처리 성능은 더 이상 필요하지 않은 경우 제거되므로 앞서 설명한 버스트 사용 사례를 해결하기에 매우 적합합니다.

특정 사용자 또는 대기열에 버스트 성능을 할당할 수 있으며 기존 BI 및 ETL 애플리케이션을 계속해서 사용할 수 있습니다. 동시 조정 클러스터는 많은 형태의 읽기 전용 쿼리를 처리하는 데 사용되며 유연성을 추가로 제공하기 위한 작업을 진행 중입니다. Concurrency Scaling에서 자세한 내용을 확인할 수 있습니다.

동시성 확장 기능 활용하기

기존 클러스터에서 이 기능을 몇 분 내에 활성화할 수 있습니다! 테스트용으로 만들어진 새 Redshift 파라미터 그룹에서 시작하는 것이 좋으므로 새 파라미터 그룹 하나를 생성합니다.

클러스터의 [Workload Management Configuration]을 편집하고 새 파라미터 그룹을 선택한 다음 [Concurrency Scaling Mode]를 [auto]로 설정하고 [Save]를 클릭합니다.

[Cloud Data Warehouse Benchmark Derived From TPC-DS]를 테스트 데이터 및 테스트 쿼리의 소스로 사용할 것입니다. DDL을 다운로드하고 AWS 자격 증명을 사용하여 사용자 지정한 다음 psql을 사용하여 클러스터에 연결하고 테스트 데이터를 생성합니다.

sample=# create database sample;
CREATE DATABASE
sample=# \connect sample;
psql (9.2.24, server 8.0.2)
WARNING: psql version 9.2, server version 8.0.
         Some psql features might not work.
SSL connection (cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256)
You are now connected to database "sample" as user "awsuser".
sample=# \i ddl.sql

이 DDL은 테이블 및 로드를 생성하고 S3 버킷에 저장된 데이터를 사용하여 채웁니다.

sample=# \dt
                 List of relations
 schema |          name          | type  |  owner
--------+------------------------+-------+---------
 public | call_center            | table | awsuser
 public | catalog_page           | table | awsuser
 public | catalog_returns        | table | awsuser
 public | catalog_sales          | table | awsuser
 public | customer               | table | awsuser
 public | customer_address       | table | awsuser
 public | customer_demographics  | table | awsuser
 public | date_dim               | table | awsuser
 public | dbgen_version          | table | awsuser
 public | household_demographics | table | awsuser
 public | income_band            | table | awsuser
 public | inventory              | table | awsuser
 public | item                   | table | awsuser
 public | promotion              | table | awsuser
 public | reason                 | table | awsuser
 public | ship_mode              | table | awsuser
 public | store                  | table | awsuser
 public | store_returns          | table | awsuser
 public | store_sales            | table | awsuser
 public | time_dim               | table | awsuser
 public | warehouse              | table | awsuser
 public | web_page               | table | awsuser
 public | web_returns            | table | awsuser
 public | web_sales              | table | awsuser
 public | web_site               | table | awsuser
(25 rows)

쿼리를 다운로드하고 다수의 PuTTY 창을 열어 Redshift 클러스터에 대한 유의미한 로드를 생성합니다.

병렬 쿼리의 초기 세트를 실행한 후 계속해서 쿼리를 늘립니다. 클러스터의 [Cluster Performance] 탭에서 이러한 쿼리를 확인할 수 있습니다.

[Database Performance] 탭에서 추가 처리 성능이 필요에 따라 온라인으로 전환되고 더 이상 필요하지 않은 경우 제거되는 것을 볼 수 있습니다.

여기서 볼 수 있듯이 모든 쿼리를 가능한 신속하게 처리하기 위해 필요에 따라 클러스터가 조정됩니다. Concurrency Scaling Usage는 추가 처리 성능을 사용한 시간(초)을 보여줍니다. 앞서 설명한 것과 같이 각 클러스터에는 24시간마다 1시간의 동시 크레딧이 누적됩니다.

max_concurrency_scaling_clusters 파라미터를 사용하여 사용 가능한 동시 조정 클러스터의 수를 제어할 수 있습니다. 기본 제한은 10이지만 더 많이 필요한 경우 증가를 요청할 수 있습니다.

정식 출시

오늘부터 미국 동부(버지니아 북부), 미국 동부(오하이오), 미국 서부(오레곤), EU(아일랜드)아시아 태평양(도쿄) 리전에서 동시 조정 클러스터를 사용할 수 있으며 올해 하반기에 더 많은 리전이 추가될 예정입니다.

Jeff;