워크로드 관리
이 섹션에서는 Amazon Redshift가 쿼리를 준비하고 실행하는 방법을 이해하는 데 도움이 되는 워크로드 관리(WLM)에 대해 설명합니다.
Amazon Redshift 워크로드 관리(WLM)는 워크로드 내에서 유연한 관리 우선 순위를 지원하므로, 짧고 빠르게 실행되는 쿼리가 오래 실행되는 쿼리 뒤에 대기열에 갇히지 않습니다. Amazon Redshift는 내부 시스템 대기열 및 사용자 액세스 가능 대기열을 포함하여 다양한 유형의 대기열에 대한 구성 파라미터를 정의하는 서비스 클래스에 따라 런타임에 쿼리 대기열을 작성합니다. 사용자 관점에서 보면 사용자 액세스 서비스 클래스와 대기열은 기능적으로 동일합니다. 일관성을 유지하기 위해 이 설명서에서는 queue라는 용어를 사용하여 사용자가 액세스할 수 있는 서비스 클래스와 런타임 큐를 정의합니다.
Redshift는 다양한 워크로드를 처리하도록 튜닝된 자동 워크로드 관리(자동 WLM)를 제공하며, 기본값으로 권장됩니다. 자동 WLM을 통해 Redshift는 쿼리가 도착하면 리소스 사용률을 결정하고 쿼리를 메인 클러스터에서 실행할지, 동시성 규모 조정 클러스터에서 실행할지, 아니면 각각 대기열로 보낼지를 동적으로 결정합니다. (쿼리가 대기열에 있는 경우 자동 WLM은 더 짧은 기간의 쿼리에 우선 순위를 둡니다.) 자동 WLM은 총 처리량을 극대화하고 효율적인 데이터 웨어하우스 리소스를 유지할 수 있도록 지원합니다. 워크로드의 크기나 예약 방식에 신경 쓸 필요 없이 워크로드를 실행할 수 있습니다. 프로비저닝된 클러스터의 기본값은 자동 WLM입니다. 자세한 내용은 자동 WLM 구현을 참조하세요.
참고
Amazon Redshift Serverless 작업 그룹은 항상 자동 WLM을 사용합니다.
많은 쿼리 또는 리소스 집약적인 쿼리가 실행되는 경우 워크로드가 로컬 리소스에 대기열에 대기할 때 워크로드 관리를 통해 추가 컴퓨팅 리소스로 확장할 수 있습니다. 자동 WLM을 통한 동시성 규모 조정은 사실상 무제한의 동시 사용자 및 쿼리에 대해 일관된 성능을 지원합니다.
세분화된 수동 최적화가 필요한 경우 Redshift 프로비저닝된 클러스터는 수동 WLM을 제공합니다. 여기서 고객은 리소스 할당, 쿼리 동시성 및 대기열을 관리합니다. 쿼리가 실행되면 WLM은 사용자의 사용자 그룹에 따라 또는 대기열 구성에 나열된 쿼리 그룹과 일치하여 쿼리를 대기열에 할당합니다. 이는 사용자가 설정하는 쿼리 그룹 레이블로 구성됩니다. 자세한 내용은 수동 WLM 구현을 참조하세요.
수동 WLM은 시간이 지남에 따라 워크로드 패턴에 맞게 미세 조정할 수 있지만, 대부분의 경우 정적 특성으로 인해 하루 또는 장기간에 걸쳐 변화하는 워크로드에 적응하기가 더 어려워질 수 있으므로 사용을 권장하지 않습니다. 더 많은 모니터링과 지속적인 튜닝이 필요합니다. 또한 수동 WLM은 할당된 메모리를 제한하기 위해 대기열을 수동으로 설정하는 등 많은 경우 자동 WLM만큼 컴퓨팅 리소스를 효율적으로 사용하지 못합니다.
워크로드 관리 구성의 성공을 측정하는 중요한 지표는 시스템 처리량, 즉 얼마나 많은 쿼리가 성공적으로 완료되었는지입니다. 시스템 처리량은 초당 쿼리 수로 측정됩니다. 시스템 지표에 대한 자세한 내용은 Amazon Redshift 클러스터 성능 모니터링 섹션을 참조하세요.
WLM 구성을 관리하는 가장 쉬운 방법은 Amazon Redshift 관리 콘솔을 사용하는 것입니다. Amazon Redshift 명령줄 인터페이스(CLI) 또는 Amazon Redshift API를 사용할 수도 있습니다. 워크로드 관리 구현 및 사용에 대한 자세한 내용은 워크로드 관리 구현 섹션을 참조하세요.