동시성 확장 - Amazon Redshift

동시성 확장

동시성 확장 기능을 사용하면 일관성 있게 빠른 쿼리 성능으로 수많은 동시 사용자 및 동시 쿼리를 지원할 수 있습니다. 동시성 크기 조정을 설정하면 Amazon Redshift가 자동으로 클러스터 용량을 추가하여 읽기 및 쓰기 쿼리의 증가를 처리합니다. 쿼리가 기본 클러스터에서 실행되든 동시성 조정 클러스터에서 실행되든 사용자에게는 최신 데이터가 보입니다.

WLM 대기열을 구성하여 동시성 조정 클러스터에 보낸 쿼리를 관리할 수 있습니다. 동시성 조정을 설정하면 대기열에서 기다리는 대신 적합한 쿼리가 동시성 조정 클러스터로 전송됩니다.

동시성 조정 클러스터가 쿼리를 활발하게 실행하는 시간에 대해서만 요금이 부과됩니다. 요금이 부과되는 방식 및 최소 요금 등 요금에 대한 자세한 내용은 동시성 크기 조정 요금을 참조하세요.

동시성 조정 기능

WLM 대기열에 대한 동시성 조정을 설정하면 대시보드 쿼리와 같은 읽기 작업에 사용할 수 있습니다. 또한 데이터 수집 및 처리를 위한 문과 같이 일반적으로 사용되는 쓰기 작업에도 사용할 수 있습니다.

쓰기 작업에 대한 동시성 조정 기능

동시성 조정은 추출, 변환 및 로드(ETL) 문과 같이 자주 사용하는 쓰기 작업을 지원합니다. 쓰기 작업에 대한 동시성 조정은 클러스터가 많은 수의 요청을 수신할 때 일관된 응답 시간을 유지하려는 경우 특히 유용합니다. 기본 클러스터의 리소스를 놓고 경합하는 쓰기 작업의 처리량을 향상시킵니다.

동시성 조정은 COPY, INSERT, DELETE, UPDATE 및 CREATE TABLE AS(CTAS) 문을 지원합니다. 또한 동시성 조정은 집계를 사용하지 않는 MV에 대한 구체화된 뷰 새로 고침을 지원합니다. 다른 데이터 조작 언어(DML) 문 및 데이터 정의 언어(DDL) 문은 지원되지 않습니다. TABLE AS가 없는 CREATE와 같이 지원되지 않는 쓰기 문이 지원되는 쓰기 문보다 먼저 명시적 트랜잭션에 포함되면 동시성 조정 클러스터에서는 쓰기 문이 아무것도 실행되지 않습니다.

동시성 조정을 위해 크레딧을 누적하면 이 크레딧 누적은 읽기 및 쓰기 작업 모두에 적용됩니다.

동시성 조정에 대한 제한 사항

다음은 Amazon Redshift 동시성 조정 사용에 대한 제한 사항입니다.

  • 인터리브 정렬 키를 사용하는 테이블에 대한 쿼리를 지원하지 않습니다.

  • 임시 테이블에 대한 쿼리를 지원하지 않습니다.

  • 제한적인 네트워크 또는 Virtual Private Cloud(VPC) 구성으로 보호되는 외부 리소스에 액세스하는 쿼리를 지원하지 않습니다.

  • Python 사용자 정의 함수(UDF) 및 람다 UDF가 포함된 쿼리를 지원하지 않습니다.

  • 시스템 테이블, PostgreSQL 카탈로그 테이블 또는 비백업 테이블에 액세스하는 쿼리를 지원하지 않습니다.

  • 제한적인 IAM 정책 권한이 있는 경우 외부 리소스에 액세스하는 COPY 또는 UNLOAD 쿼리는 지원하지 않습니다. 여기에는 Amazon S3 버킷 또는 DynamoDB 테이블과 같은 리소스 또는 소스에 적용되는 권한이 포함됩니다. IAM 소스에는 다음이 포함될 수 있습니다.

    • aws:sourceVpc – 소스 VPC입니다.

    • aws:sourceVpce - 소스 VPC 엔드포인트입니다.

    • aws:sourceIp - 소스 IP 주소입니다.

    경우에 따라 리소스에 액세스하는 COPY 및 UNLOAD 쿼리가 동시성 조정 클러스터로 전송되도록 리소스 또는 소스를 제한하는 권한을 제거해야 할 수 있습니다.

    리소스 정책에 대한 자세한 내용은 AWS Identity and Access Management 사용 설명서의 정책 유형버킷 정책을 사용하여 VPC 엔드포인트에서 액세스 제어를 참조하세요.

  • 쓰기 작업에 대한 Amazon Redshift 동시성 조정은 CREATE TABLE 또는 ALTER TABLE과 같은 DDL 작업에 대해 지원되지 않습니다.

  • COPY 명령에 대해 ANALYZE를 지원하지 않습니다.

  • DISTSTYLE이 ALL로 설정된 대상 테이블에 대한 쓰기 작업을 지원하지 않습니다.

  • 다음 파일 형식에서 COPY는 지원하지 않습니다.

    • PARQUET

    • ORC

  • 자격 증명 열이 있는 테이블에 대한 쓰기 작업을 지원하지 않습니다.

  • Amazon Redshift는 Amazon Redshift RA3 노드에서만 쓰기 작업에 대한 동시성 규모 조정을 지원합니다. 쓰기 작업에 대한 동시성 조정은 다른 노드 유형에서 지원되지 않습니다.

동시성 조정 지원 AWS 리전

Amazon Redshift를 사용하면 동시성 규모 조정을 사용하여 Redshift 클러스터 전반에서 동시 워크로드 수요를 관리할 수 있습니다. 이 주제에서는 Amazon Redshift로 동시성 규모 조정을 사용할 수 있는 리전에 대해 자세히 설명합니다.

다음 AWS 리전에서 동시성 크기 조정을 사용할 수 있습니다.

  • 미국 동부(버지니아 북부) 리전(us-east-1)

  • 미국 동부(오하이오) 리전(us-east-2)

  • 미국 서부(캘리포니아 북부) 리전(us-west-1)

  • 미국 서부(오레곤) 리전(us-west-2)

  • 아시아 태평양(뭄바이) 리전(ap-south-1)

  • 아시아 태평양(서울) 리전(ap-northeast-2)

  • 아시아 태평양(싱가포르) 리전(ap-southeast-1)

  • 아시아 태평양(시드니) 리전(ap-southeast-2)

  • 아시아 태평양(도쿄) 리전(ap-northeast-1)

  • 캐나다(중부) 리전(ca-central-1)

  • 중국(베이징) 리전(cn-north-1)

  • 중국(닝샤) 리전(cn-northwest-1)

  • 유럽(프랑크푸르트) 리전(eu-central-1)

  • 유럽(아일랜드) 리전(eu-west-1)

  • 유럽(런던) 리전(eu-west-2)

  • 유럽(파리) 리전(eu-west-3)

  • 유럽(스톡홀름) 리전(eu-north-1)

  • 유럽(취리히) 리전(eu-central-2)

  • 유럽(스페인) 리전(eu-south-2)

  • 남아메리카(상파울루) 리전(sa-east-1)

  • AWS GovCloud(미국 동부)

동시성 확장 대상

Amazon Redshift를 사용하면 쿼리 처리를 스케일 아웃하여 동시 쿼리 실행을 가속화할 수 있습니다. 다음 주제에서는 Amazon Redshift가 동시성 규모 조정으로 라우팅할 쿼리를 결정하는 데 사용하는 기준에 대해 알아봅니다.

기본 클러스터가 다음 요구 사항을 충족하는 경우에만 쿼리가 동시성 확장 클러스터로 라우팅됩니다.

  • EC2-VPC 플랫폼

  • 노드 유형은 dc2.8xlarge, dc2.large, ra3.large, ra3.xlplus, ra3.4xlarge, ra3.16xlarge이어야 합니다. 쓰기 작업용 동시성 규모 조정은 Amazon Redshift RA3 노드에서만 지원됩니다.

  • 노드 유형이 ra3.xlplus, ra3.4xlarge 또는 ra3.16xlarge인 클러스터의 경우 최대 32개의 컴퓨팅 노드가 허용됩니다. 또한 클러스터를 처음 생성할 때 기본 클러스터의 노드 수는 32개를 초과할 수 없습니다. 예를 들어 현재 클러스터에 20개의 노드가 있지만 원래 40개로 생성된 경우에도 동시성 확장에 대한 요구 사항을 충족하지 않습니다. 반대로 현재 DC2 클러스터에 40개의 노드가 있지만 원래 20개로 생성된 경우 동시성 확장에 대한 요구 사항을 충족합니다.

  • 단일 노드 클러스터가 아닙니다.

동시성 확장 대기열 구성

Amazon Redshift를 사용하면 동시성 규모 조정을 구성하여 동시성 및 시스템 리소스를 관리할 수 있습니다. 동시성 규모 조정 대기열을 통해 동시에 실행할 수 있는 쿼리 또는 사용자 세션 수에 대해 제한을 설정하는 것이 가능합니다. 다음 섹션에서는 Amazon Redshift에서 동시성 규모 조정 대기열을 사용하여 동시 쿼리 및 사용자 세션을 효과적으로 처리할 수 있는 방법에 대한 설명을 제공합니다.

워크로드 관리자(WLM) 대기열에서 동시성 확장을 사용하도록 설정하여 쿼리를 동시성 확장 클러스터로 라우팅합니다. 대기열에 대해 동시성 조정을 설정하려면 [동시성 조정 모드(Concurrency Scaling mode)] 값을 [자동(auto)]으로 설정합니다.

동시성 확장이 활성화된 대기열로 라우팅되는 쿼리 수가 대기열의 동시성 용량을 초과하면, 용량이 수동으로 구성되었든 자동으로 결정되었든 상관없이 적격 쿼리가 동시성 확장 클러스터로 전송됩니다. 기본 클러스터에서 대기열 슬롯을 사용할 수 있게 되면 쿼리가 기본 클러스터로 라우팅되어 실행됩니다. 다른 WLM 대기열과 마찬가지로 사용자 그룹을 기준으로 또는 쿼리 그룹 레이블을 사용하여 쿼리에 레이블을 지정하거나 쿼리를 대기열에 할당에서 정의한 일치 조건에 따라 쿼리를 동시성 확장 대기열로 라우팅합니다. 또한 WLM 쿼리 모니터링 규칙을 정의하여 쿼리를 라우팅할 수 있습니다. 예를 들어 5초보다 오래 걸리는 모든 쿼리를 동시성 확장 대기열로 라우팅할 수 있습니다. 대기열 동작은 자동 WLM을 사용하는지 수동 WLM을 사용하는지에 따라 달라질 수 있다는 점에 유의하세요. 자세한 내용은 자동 WLM 구현 또는 수동 WLM 구현을 참조하세요.

동시성 확장 클러스터의 기본 수는 1입니다. 사용할 수 있는 동시성 확장 클러스터 수는 max_concurrency_scaling_clusters에서 제어합니다.

동시성 확장 모니터링

Amazon Redshift를 사용하면 동시성 규모 조정을 모니터링하고 관리하여 데이터 웨어하우징 워크로드의 성능과 비용 효율성을 최적화할 수 있습니다. 동시성 규모 조정을 통해 Amazon Redshift는 워크로드 수요가 증가할 경우 클러스터 용량을 자동으로 추가하고 수요가 줄어들 경우 해당 용량을 제거할 수 있습니다. 다음 섹션에서는 Amazon Redshift 클러스터의 동시성 규모 조정 모니터링에 대한 가이드를 제공합니다.

쿼리가 기본 클러스터에서 실행 중인지 아니면 동시성 조정 클러스터에서 실행 중인지 확인하려면 Amazon Redshift 콘솔에서 클러스터로 이동한 후 클러스터를 선택합니다. 그런 다음 쿼리 모니터링 탭과 워크로드 동시성을 선택하여 실행 중인 쿼리와 대기 중인 쿼리에 대한 정보를 확인합니다.

실행 시간을 찾으려면 concurrency_scaling_status 열에서 STL_QUERY 테이블 및 필터를 쿼리합니다. 다음 쿼리는 동시성 확장 클러스터에서 실행한 쿼리 및 기본 클러스터에서 실행한 쿼리에 대한 대기열 시간 및 실행 시간을 비교합니다.

SELECT w.service_class AS queue , CASE WHEN q.concurrency_scaling_status = 1 THEN 'concurrency scaling cluster' ELSE 'main cluster' END as concurrency_scaling_status , COUNT( * ) AS queries , SUM( q.aborted ) AS aborted , SUM( ROUND( total_queue_time::NUMERIC / 1000000,2) ) AS queue_secs , SUM( ROUND( total_exec_time::NUMERIC / 1000000,2) ) AS exec_secs FROM stl_query q JOIN stl_wlm_query w USING (userid,query) WHERE q.userid > 1 AND q.starttime > '2019-01-04 16:38:00' AND q.endtime < '2019-01-04 17:40:00' GROUP BY 1,2 ORDER BY 1,2;

요구 사항에 따라 starttimeendtime 값을 조정합니다.

동시성 확장 시스템 뷰

Amazon Redshift를 사용하면 동시성 규모 조정 시스템 뷰 기능으로 클러스터의 동시성 규모 조정 활동을 모니터링 및 관리할 수 있습니다. 다음 섹션에서는 이러한 시스템 뷰를 쿼리하고 결과를 해석하여 Amazon Redshift 환경에서 동시성 스케일 인을 효과적으로 활용하는 방법에 대해 설명합니다.

접두사가 SVCS인 시스템 뷰 집합은 기본 클러스터와 동시성 확장 클러스터 모두의 쿼리에 대한 시스템 로그 테이블의 세부 정보를 제공합니다.

다음 뷰의 정보는 해당되는 STL 뷰 또는 SVL 뷰의 정보와 유사합니다.

다음 뷰는 동시성 확장에 고유한 뷰입니다.

동시성 조정에 대한 자세한 내용은 Amazon Redshift 관리 가이드의 다음 주제를 참조하세요.