

 Amazon Redshift는 패치 198부터 새 Python UDF 생성을 더 이상 지원하지 않습니다. 기존 Python UDF는 2026년 6월 30일까지 계속 작동합니다. 자세한 내용은 [블로그 게시물](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)을 참조하세요.

# Amazon Redshift 클러스터 성능 모니터링
<a name="metrics"></a>

Amazon Redshift는 클러스터와 데이터베이스의 상태 및 성능을 추적할 수 있도록 성능 지표와 데이터를 제공합니다. 이 섹션에서는 Amazon Redshift, 특히 Amazon Redshift 콘솔에서 사용할 수 있는 데이터 형식에 대해서 얘기하겠습니다.

Amazon Redshift 콘솔에서 사용할 수 있는 성능 데이터는 다음과 같이 2가지 범주로 나뉩니다.
+ **Amazon CloudWatch 지표 – **Amazon CloudWatch 지표는 CPU 사용량, 지연 시간, 처리량 등 클러스터의 물리적 요소를 모니터링하는 데 유용합니다. 지표 데이터는 Amazon Redshift 콘솔에 직접 표시됩니다. CloudWatch 콘솔에서도 확인 가능합니다. 아니면 AWS CLI 또는 AWS SDK 중 하나와 같이 다른 방식으로 지표를 사용할 수도 있습니다.
+ **쿼리/로드 성능 데이터 – **성능 데이터는 데이터베이스 작업 및 성능을 모니터링하는 데 유용합니다. 이 데이터는 Amazon Redshift 콘솔에 수집되어 CloudWatch 지표 결과와 특정 데이터베이스 쿼리 및 로드 이벤트의 상관관계를 쉽게 파악하는 데 도움이 됩니다. 또한 사용자 지정 성능 쿼리를 작성한 후 데이터베이스에서 직접 실행할 수도 있습니다. 쿼리 및 로드 성능 데이터는 Amazon Redshift 콘솔에만 표시되며 CloudWatch 지표로는 게시되지 않습니다.

성능 데이터는 Amazon Redshift 콘솔에 통합되어 다음과 같이 다양한 사용자 경험을 가능하게 합니다.
+ 크기 조정 등 클러스터에 대한 여러 가지 결정이 필요한 경우 클러스터와 연결된 성능 데이터가 상황에 따라 함께 표시됩니다.
+ CloudWatch와 비교했을 때 Amazon Redshift 콘솔에서는 일부 성능 지표가 더욱 적합한 눈금 단위로 표시됩니다. 예를 들어 `WriteThroughput`이 GB/s(CloudWatch에서는 바이트/초로 표시됨)로 표시되어 일반적인 노드의 스토리지 공간에 더욱 적합합니다.
+ 동일한 그래프에서 클러스터의 여러 노드에 대한 성능 데이터를 쉽게 표시할 수 있습니다. 이러한 방식으로 클러스터의 모든 노드에 대한 성능을 손쉽게 모니터링할 수 있습니다. 노드별 성능 데이터를 확인할 수도 있습니다.

Amazon Redshift는 추가 비용 없이 성능 데이터(CloudWatch 지표와 쿼리 및 로드 데이터)를 제공합니다. 성능 데이터는 1분 주기로 기록되기 때문에 Amazon Redshift 콘솔에서 성능 데이터의 이력 값에 액세스할 수 있습니다. CloudWatch를 사용하여 CloudWatch 지표로 표시되는 Amazon Redshift 성능 데이터에 액세스하는 방법에 대한 자세한 내용은 *Amazon CloudWatch User Guide*의 [What is CloudWatch?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatch.html.html)를 참조하세요.

# Amazon Redshift의 성능 데이터
<a name="metrics-listing"></a>

Amazon Redshift에 CloudWatch 지표를 사용하면 클러스터의 상태 및 성능에 대한 정보와 노드 수준의 정보를 얻을 수 있습니다. 단, 이 지표를 사용할 때는 각 지표마다 차원이 1개 이상 연결되어 있다는 점을 알고 있어야 합니다. 이러한 차원은 적용 대상 지표를 알려주고 지표의 범위를 나타냅니다. Amazon Redshift에는 다음과 같은 2가지 차원이 있습니다.
+ `NodeID` 차원을 갖는 지표는 클러스터 노드의 성능 데이터를 제공하는 지표입니다. 이러한 지표 집합에는 리더와 컴퓨팅 노드가 포함됩니다. 예를 들면 `CPUUtilization`, `ReadIOPS`, `WriteIOPS` 등이 있습니다.
+ `ClusterIdentifier` 차원만 갖고 있는 지표는 클러스터의 성능에 대한 데이터를 제공하는 지표입니다. 이러한 지표의 예로는 `HealthStatus`와 `MaintenanceMode`가 있습니다.
**참고**  
일부 지표의 경우에는 각 클러스터의 지표가 노드 특성의 합계를 의미합니다. 이때는 리더 노드의 특성이 컴퓨팅 노드와 합산되기 때문에 지표 값을 해석할 때는 주의가 필요합니다.

CloudWatch 지표 및 차원에 대한 내용은 *Amazon CloudWatch User Guide*의 [CloudWatch concepts](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html)을 참조하세요.

Amazon Redshift용 CloudWatch 지표에 대한 자세한 설명은 다음 섹션을 참조하세요.

**Topics**
+ [Amazon Redshift 지표](#redshift-metrics)
+ [Amazon Redshift 지표의 차원](#metrics-filterable-dimensions)
+ [Amazon Redshift 쿼리 및 로드 성능 데이터](#custom-metrics-listing)

## Amazon Redshift 지표
<a name="redshift-metrics"></a>

`AWS/Redshift` 네임스페이스에는 다음과 같은 지표가 포함됩니다. 달리 명시되지 않는 한, 지표는 1분 간격으로 수집됩니다.


| 지표 | 설명 | 
| --- | --- | 
| CommitQueueLength |  주어진 시점에 커밋을 기다리는 트랜잭션의 수입니다. 단위: 개 차원: `ClusterIdentifier`  | 
| ConcurrencyScalingActiveClusters |  주어진 시간에 능동적으로 쿼리를 처리 중인 동시성 확장 클러스터의 수입니다. 단위: 개 차원: `ClusterIdentifier`  | 
| ConcurrencyScalingSeconds |  활성 쿼리 처리 활동이 있는 동시성 확장 클러스터에서 사용하는 시간(초)입니다. 단위: 개 차원: `ClusterIdentifier`  | 
| CPUUtilization |  CPU 사용 백분율. 클러스터의 경우, 이 지표는 모든 노드(리더 및 컴퓨팅)의 CPU 사용 값을 집계한 결과를 의미합니다. 단위: 백분율 Dimensions: `ClusterIdentifier`, `NodeID`  차원: `ClusterIdentifier`  | 
| DatabaseConnections |  클러스터에 대한 데이터베이스 연결 수 단위: 개 차원: `ClusterIdentifier`  | 
| HealthStatus |  클러스터가 데이터베이스에 연결되어 간단한 쿼리를 실행할 때마다 클러스터의 상태를 나타냅니다. 이 작업을 성공적으로 실행할 수 있다면 클러스터는 정상 상태입니다. 그렇지 않다면 비정상 상태입니다. 비정상 상태는 클러스터 데이터베이스의 데이터 로드가 너무 많거나, 혹은 클러스터 데이터베이스에 구성 문제가 있을 때 발생합니다.  Amazon CloudWatch에서는 이 지표가 1 또는 0으로 보고되는 반면 Amazon Redshift 콘솔에서는 편의를 위해 이 지표가 `HEALTHY` 또는 `UNHEALTHY`로 표시됩니다. 이 지표가 Amazon Redshift 콘솔에 표시될 때는 샘플 평균이 무시되고 `HEALTHY` 또는 `UNHEALTHY`만 표시됩니다. 하지만 Amazon CloudWatch에서는 샘플링 문제로 인해 1과 0이 아닌 다른 값이 표시될 수도 있습니다. `HealthStatus`가 1 미만인 값은 모두 0(`UNHEALTHY`)으로 보고됩니다.  단위: 개수 (1/0)(Amazon Redshift 콘솔의 경우 `HEALTHY`/`UNHEALTHY`) 차원: `ClusterIdentifier`  | 
| MaintenanceMode |  클러스터가 현재 유지 관리 모드인지 여부를 나타냅니다.  Amazon CloudWatch에서는 이 지표가 1 또는 0으로 보고되는 반면 Amazon Redshift 콘솔에서는 편의를 위해 이 지표가 `ON` 또는 `OFF`로 표시됩니다. 이 지표가 Amazon Redshift 콘솔에 표시될 때는 샘플 평균이 무시되고 `ON` 또는 `OFF`만 표시됩니다. 하지만 Amazon CloudWatch에서는 샘플링 문제로 인해 1과 0이 아닌 다른 값이 표시될 수도 있습니다. `MaintenanceMode`가 0보다 큰 값은 모두 1(`ON`)로 보고됩니다.  단위: 개수 (1/0)(Amazon Redshift 콘솔의 경우 `ON`/`OFF`) 차원: `ClusterIdentifier`  | 
| MaxConfiguredConcurrencyScalingClusters |  파라미터 그룹에서 구성된 최대 동시성 확장 클러스터 수입니다. 자세한 내용은 [Amazon Redshift 파라미터 그룹](working-with-parameter-groups.md) 섹션을 참조하세요. 단위: 개 차원: `ClusterIdentifier`  | 
| NetworkReceiveThroughput |  노드 또는 클러스터의 데이터 수신 속도 단위: 바이트/초(Amazon Redshift 콘솔의 경우 MB/초) Dimensions: `ClusterIdentifier`, `NodeID`  차원: `ClusterIdentifier`  | 
| NetworkTransmitThroughput |  노드 또는 클러스터의 데이터 쓰기 속도 단위: 바이트/초(Amazon Redshift 콘솔의 경우 MB/초) Dimensions: `ClusterIdentifier`, `NodeID`  차원: `ClusterIdentifier`  | 
| PercentageDiskSpaceUsed |  사용된 디스크 공간 비율 단위: 백분율 차원: `ClusterIdentifier` Dimensions: `ClusterIdentifier`, `NodeID`   | 
| QueriesCompletedPerSecond | 초당 완료된 평균 쿼리 수입니다. 5분 간격으로 보고됩니다. 단일 노드 클러스터에서는 이 지표가 지원되지 않습니다. 단위: 개수/초 Dimensions: `ClusterIdentifier`, `latency`  Dimensions: `ClusterIdentifier`, `wlmid`  | 
| QueryDuration | 쿼리를 완료하는 데 걸리는 평균 시간입니다. 5분 간격으로 보고됩니다. 단일 노드 클러스터에서는 이 지표가 지원되지 않습니다. 단위: 마이크로초 차원: `ClusterIdentifier`, `NodeID`, `latency`  Dimensions: `ClusterIdentifier`, `latency`  차원: `ClusterIdentifier`, `NodeID`, `wlmid`  | 
| QueryRuntimeBreakdown | 쿼리 단계에서 실행한 총 쿼리 시간입니다. 5분 간격으로 보고됩니다. 단위: 밀리초 차원: ClusterIdentifier, NodeID, stage 차원: ClusterIdentifier, stage  | 
| ReadIOPS |  초당 평균 디스크 I/O 연산 수. 단위: 개수/초 Dimensions: `ClusterIdentifier`, `NodeID`  차원: `ClusterIdentifier`  | 
| ReadLatency |  디스크 I/O 연산당 평균 처리 시간. 단위: 초 Dimensions: `ClusterIdentifier`, `NodeID`  차원: `ClusterIdentifier`  | 
| ReadThroughput |  초당 디스크에서 읽은 평균 바이트 수입니다. 단위: 바이트(Amazon Redshift 콘솔의 경우 GB/초) Dimensions: `ClusterIdentifier`, `NodeID`  차원: `ClusterIdentifier`  | 
| RedshiftManagedStorageTotalCapacity |  관리형 스토리지의 총 용량입니다. 단위: 메가바이트 차원: `ClusterIdentifier`  | 
| TotalTableCount |  특정 시점에 열린 사용자 테이블의 수입니다. 이 합계에는 Amazon Redshift Spectrum 테이블이 포함되지 않습니다. 단위: 개 차원: `ClusterIdentifier`  | 
| WLMQueueLength |  워크로드 관리(WLM) 대기열을 입력하기 위해 대기하는 쿼리 수입니다. 단위: 개 Dimensions: `ClusterIdentifier`, `service class`  Dimensions: `ClusterIdentifier`, `QueueName`   | 
| WLMQueueWaitTime |  워크로드 관리(WLM) 대기열에서 대기하는 데 소요된 총 쿼리 시간. 5분 간격으로 보고됩니다. 단위: 밀리초 Dimensions: `ClusterIdentifier`, `QueryPriority`  Dimensions: `ClusterIdentifier`, `wlmid`  Dimensions: `ClusterIdentifier`, `QueueName`   | 
| WLMQueriesCompletedPerSecond |  워크로드 관리(WLM) 대기열에 대해 완료된 초당 평균 쿼리 수입니다. 5분 간격으로 보고됩니다. 단일 노드 클러스터에서는 이 지표가 지원되지 않습니다. 단위: 개수/초 Dimensions: `ClusterIdentifier`, `wlmid`  Dimensions: `ClusterIdentifier`, `QueueName`   | 
| WLMQueryDuration |  워크로드 관리(WLM) 대기열에 대해 쿼리를 완료하는 데 걸리는 평균 시간입니다. 5분 간격으로 보고됩니다. 단일 노드 클러스터에서는 이 지표가 지원되지 않습니다. 단위: 마이크로초 Dimensions: `ClusterIdentifier`, `wlmid`  Dimensions: `ClusterIdentifier`, `QueueName`   | 
| WLMRunningQueries |  WLM 대기열 1개당 기본 클러스터 및 동시성 확장 클러스터 모두에서 실행되는 쿼리의 수입니다. 단위: 개 Dimensions: `ClusterIdentifier`, `wlmid`  Dimensions: `ClusterIdentifier`, `QueueName`   | 
| WriteIOPS |  초당 커밋 작업의 평균 수. 단위: 개수/초 Dimensions: `ClusterIdentifier`, `NodeID`  차원: `ClusterIdentifier`  | 
| WriteLatency |  디스크 I/O 연산당 평균 처리 시간. 단위: 초 Dimensions: `ClusterIdentifier`, `NodeID`  차원: `ClusterIdentifier`  | 
| WriteThroughput |  초당 디스크에 쓴 평균 바이트 수. 단위: 바이트(Amazon Redshift 콘솔의 경우 GB/초) Dimensions: `ClusterIdentifier`, `NodeID`  차원: `ClusterIdentifier`  | 
| SchemaQuota |  스키마에 대해 구성된 할당량입니다. 단위: 메가바이트 차원: `ClusterIdentifier`, `Database`, `Schema`  주기적/푸시: `Periodic` 빈도: `5 minutes` 중지 조건: 스키마가 삭제되거나 할당량이 제거됨  | 
| NumExceededSchemaQuotas |  할당량이 초과된 스키마 수입니다. 단위: 개 차원: `ClusterIdentifier` 주기적/푸시: `Periodic` 빈도: `5 minutes` 중지 기준: 해당 사항 없음  | 
| StorageUsed |  스키마에서 사용하는 디스크 또는 스토리지 공간입니다. 단위: 메가바이트 차원: `ClusterIdentifier`, `Database`, `Schema`  주기적/푸시: `Periodic` 빈도: `5 minutes` 중지 조건: 스키마가 삭제되거나 할당량이 제거됨  | 
| PercentageQuotaUsed |  구성된 스키마 할당량을 기준으로 사용된 디스크 또는 스토리지 공간의 백분율입니다. 단위: 백분율 차원: `ClusterIdentifier`, `Database`, `Schema`  주기적/푸시: `Periodic` 빈도: `5 minutes` 중지 조건: 스키마가 삭제되거나 할당량이 제거됨  | 
| UsageLimitAvailable |  FeatureType에 따라 UsageLimitAvailable은 다음을 반환합니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/metrics-listing.html) 단위: 분 또는 TB 차원: `ClusterIdentifier`, `FeatureType`, `UsageLimitId`   | 
| UsageLimitConsumed |  FeatureType에 따라 UsageLimitConsumed는 다음을 반환합니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/metrics-listing.html) 단위: 분 또는 TB 차원: `ClusterIdentifier`, `FeatureType`, `UsageLimitId`   | 

## Amazon Redshift 지표의 차원
<a name="metrics-filterable-dimensions"></a>

Amazon Redshift 데이터는 다음 표의 차원 중 하나와 함께 필터링할 수 있습니다.


|  차원  |  설명  | 
| --- | --- | 
|  latency  |  가능한 값은 다음과 같습니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/metrics-listing.html)  | 
|  NodeID  |  클러스터 노드 고유의 요청 데이터를 필터링합니다. `NodeID`는 "Leader", "Shared" 또는 "Compute-N"이 되고, 여기에서 N은 클러스터의 노드 번호를 가리키는 0, 1 등으로 매겨집니다. "Shared"는 클러스터의 노드 수가 1개, 즉 리더 노드와 컴퓨팅 노드가 결합되었다는 것을 의미합니다. 지표는 `CPUUtilization`, `NetworkTransmitThroughput` 및 `ReadIOPS`일 때에 한해 리더 노드와 컴퓨팅 노드에 대해 보고됩니다. `NodeId` 차원을 사용하는 다른 지표는 컴퓨팅 노드에 대해서만 보고됩니다.  | 
|  ClusterIdentifier  |  클러스터 고유의 요청 데이터를 필터링합니다. 클러스터 고유의 지표로는 `HealthStatus`, `MaintenanceMode` 및 `DatabaseConnections`가 있습니다. 노드 지표이기도 한 이 차원의 일반 지표(`ReadIOPS` 등)는 노드 지표 데이터를 모두 종합한 것입니다. 이러한 지표들은 리더 노드와 컴퓨팅 노드의 속성을 모두 수집하기 때문에 해석할 때 주의하십시오.  | 
|  service class  |  `WLM` 서비스 클래스의 식별자입니다.  | 
|  stage  |  쿼리 실행 단계 가능한 값은 다음과 같습니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/metrics-listing.html)  | 
|  wlmid  |  워크로드 관리 대기열에 대한 식별자입니다.  | 
|  QueryPriority  |  쿼리의 우선순위입니다. 가능한 값은 `CRITICAL`, `HIGHEST`, `HIGH`, `NORMAL`, `LOW`, `LOWEST`입니다.  | 
|  QueueName  |  워크로드 관리 대기열의 이름입니다.  | 
|  FeatureType  |  사용량 한도로 제한되는 기능입니다. 가능한 값은 `CONCURRENCY_SCALING`, `CROSS_REGION_DATASHARING` 및 `SPECTRUM`입니다.  | 
|  UsageLimitId  |  사용량 한도의 식별자입니다.  | 

## Amazon Redshift 쿼리 및 로드 성능 데이터
<a name="custom-metrics-listing"></a>

Amazon Redshift는 CloudWatch 지표 외에도 쿼리 및 로드 성능 데이터를 제공합니다. 쿼리/로드 성능 데이터는 데이터베이스 성능과 클러스터 지표의 관계를 이해하는 데 유용합니다. 예를 들어 클러스터의 CPU가 급증한 것을 확인한 경우에는 클러스터 CPU 그래프에서 급증한 부분을 찾아 해당 시간에 실행된 쿼리를 살펴볼 수 있습니다. 반대로 특정 쿼리를 살펴볼 때는 지표 데이터(CPU 등)가 상황에 맞게 표시되어 쿼리가 클러스터 지표에 미치는 영향을 이해할 수 있습니다.

쿼리 및 로드 성능 데이터는 CloudWatch 지표로 게시되지 않기 때문에 Amazon Redshift 콘솔에서만 확인할 수 있습니다. 쿼리 및 로드 성능 데이터는 데이터베이스의 시스템 테이블을 사용한 쿼리에서 생성됩니다(자세한 내용은 *Amazon Redshift 개발자 안내서*의 [시스템 테이블 참조](https://docs.aws.amazon.com/redshift/latest/dg/cm_chap_system-tables.html) 참조). 사용자 지정 데이터베이스 성능 쿼리를 직접 작성할 수도 있지만 처음에는 콘솔에서 제공되는 쿼리/로드 성능 데이터를 사용하는 것이 좋습니다. 데이터베이스 성능을 직접 측정하고 모니터링하는 방법에 대한 자세한 내용은 *Amazon Redshift 개발자 안내서*의 [성능 관리](https://docs.aws.amazon.com/redshift/latest/dg/c-optimizing-query-performance.html)를 참조하세요.

다음은 Amazon Redshift 콘솔에서 액세스할 수 있는 쿼리/로드 데이터의 여러 가지 요소를 설명한 표입니다.


| 쿼리/로드 데이터 | 설명 | 
| --- | --- | 
| 쿼리 요약 |  특정 시간대에 실행된 쿼리 목록입니다. 이 목록은 쿼리 ID, 쿼리 실행 시간, 상태 등의 값을 기준으로 정렬할 수 있습니다. 클러스터 세부 정보 페이지의 **쿼리 모니터링** 탭에 이 데이터가 표시됩니다.  | 
| 쿼리 세부 정보 |  다음을 포함하여 특정 쿼리에 대한 세부 정보를 제공합니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/metrics-listing.html)  | 
| 로드 요약 |  지정 시간대의 모든 로드 목록입니다. 이 목록은 쿼리 ID, 쿼리 실행 시간, 상태 등의 값을 기준으로 정렬할 수 있습니다. 클러스터 세부 정보 페이지의 **쿼리 모니터링** 탭에 이 데이터가 표시됩니다.  | 
| 로드 세부 정보 |  다음을 포함하여 특정 로드 작업에 대한 세부 정보를 제공합니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/metrics-listing.html)  | 

# 성능 데이터 보기
<a name="performance-metrics-console"></a>

이 섹션에서는 Amazon Redshift 콘솔에서 클러스터 및 쿼리 성능에 대한 정보를 포함하여 성능 데이터를 확인하는 방법에 대해 설명합니다. 그 밖에 Amazon Redshift 콘솔에서 클러스터 지표에 대한 경보를 직접 생성할 수도 있습니다.

Amazon Redshift 콘솔에서는 성능 데이터가 클러스터를 기준으로 표시됩니다. 클러스터의 성능 데이터 그래프는 직접 데이터에 접근하여 가장 공통적인 성능 관련 질문에 대한 답변을 확인할 수 있도록 작성됩니다. 일부 성능 데이터([Amazon Redshift의 성능 데이터](metrics-listing.md) 참조)의 경우 CloudWatch를 사용하여 지표 그래프를 추가로 사용자 정의할 수도 있습니다. 예를 들어, 더 긴 시간을 선택하거나 여러 클러스터에서 결합할 수 있습니다. CloudWatch 콘솔의 사용 방법에 대한 자세한 내용은 [CloudWatch 콘솔의 성능 지표](using-cloudwatch-console.md) 섹션을 참조하세요.

Amazon Redshift 콘솔의 쿼리 모니터링 기능을 사용하여 쿼리를 모니터링, 격리 및 최적화하는 방법을 알아보려면 다음 동영상을 시청하세요.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/Wdvb5iYVnLg/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/Wdvb5iYVnLg)


**Topics**
+ [클러스터 성능 데이터 보기](performance-metrics-perf.md)
+ [쿼리 기록 데이터 보기](performance-metrics-query-history.md)
+ [데이터베이스 성능 데이터 보기](performance-metrics-database-performance.md)
+ [워크로드 동시성 및 동시성 확장 데이터 보기](performance-metrics-concurrency-scaling.md)
+ [자동 최적화 데이터 보기](performance-metrics-autonomics.md)
+ [쿼리 및 로드 보기](performance-metrics-queries.md)
+ [쿼리 세부 정보 보기 및 분석](performance-metrics-query-execution-details.md)
+ [쿼리 실행 시 클러스터 성능 보기](performance-metrics-query-cluster.md)
+ [로드 작업 중 클러스터 지표 보기](performance-metrics-loads.md)
+ [클러스터 워크로드 분석 차트 보기](analyze-workload-performance.md)

# 클러스터 성능 데이터 보기
<a name="performance-metrics-perf"></a>

Amazon Redshift의 클러스터 지표를 사용하여 다음과 같이 일반적인 성능 태스크를 수행할 수 있습니다.
+ 특정 시간 동안 클러스터 지표의 이상 여부를 확인하여 이상이 있는 경우에는 성능 히트의 원인이 되는 쿼리를 식별합니다.
+ 이전 또는 현재 쿼리가 클러스터 성능에 영향을 미치는지 검사합니다. 문제가 있는 쿼리가 발견되면 쿼리 실행 시 클러스터 성능 등을 포함하여 세부 정보를 확인할 수 있습니다. 이 정보를 사용하여 쿼리 속도가 느려진 이유, 성능 개선을 위해 필요한 사항 등을 진단할 수 있습니다.

**성능 데이터를 보려면**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)에서 Amazon Redshift 콘솔을 엽니다.

1. 탐색 메뉴에서 **클러스터(Clusters)**를 선택한 후 목록에서 클러스터의 이름을 선택하여 세부 정보를 엽니다. 클러스터의 세부 정보가 표시됩니다. 여기에는 **클러스터 성능**, **쿼리 모니터링**, **데이터베이스**, **데이터 공유**, **일정**, **유지 관리** 및 **속성** 탭이 포함될 수 있습니다.

1. 다음을 포함한 성능 정보를 보려면 **Cluster performance(클러스터 성능)** 탭을 선택합니다.
   + **CPU 사용률**
   + **Percentage disk space used(사용된 디스크 공간 비율**
   + **데이터베이스 연결**
   + **상태 확인**
   + **쿼리 지속시간**
   + **쿼리 처리량**
   + **동시성 확장 활동**

   그 밖에도 많은 지표를 사용할 수 있습니다. 사용 가능한 지표를 보고 표시할 지표를 선택하려면 **기본 설정** 아이콘을 선택합니다.

## 클러스터 성능 그래프
<a name="cluster-performance-metrics-examples"></a>

다음은 새 Amazon Redshift 콘솔에 표시되는 그래프의 예입니다.
+ [**CPU 사용률(CPU utilization)**] – 모든 노드(리더 및 컴퓨팅)에 대한 CPU 사용률의 백분율을 표시합니다. 클러스터 마이그레이션 또는 기타 리소스를 많이 사용하는 작업을 예약하기 전에 클러스터 사용량이 가장 낮은 시간을 찾으려면 이 차트를 모니터하여 개별 노드 또는 모든 노드당 CPU 사용률을 확인합니다.  
![\[각 노드의 CPU 사용률을 백분율로 보여주는 Amazon Redshift 콘솔의 CPU 사용률 그래프 이미지입니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/cluster-performance-cpu-utilization.png)
+ [**유지 관리 모드(Maintenance mode)**] – `On` 및 `Off` 표시기를 사용하여 선택한 시간에 클러스터가 유지 관리 모드에 있는지 여부를 표시합니다. 클러스터가 유지 관리 진행 중인 시간을 확인할 수 있습니다. 그런 다음, 이 시간을 클러스터에 대해 완료된 작업과 연관시켜 반복 이벤트에 대한 향후 가동 중지 시간을 예측할 수 있습니다.  
![\[유지 관리 모드가 On인지, 아니면 Off인지를 보여주는 Amazon Redshift 콘솔의 그래프 이미지입니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/cluster-performance-maintenance-mode.png)
+ [**사용된 디스크 공간 백분율(Percentage disk space used)**] – 클러스터 전체가 아니라 각 컴퓨팅 노드당 디스크 공간 사용량의 백분율을 표시합니다. 이 차트에서 디스크 사용률을 모니터링할 수 있습니다. VACUUM 및 COPY와 같은 유지 관리 작업은 정렬 작업에 대해 중간 임시 스토리지 공간을 사용하므로 디스크 사용량이 급증합니다.  
![\[각 노드의 디스크 공간 백분율을 보여주는 Amazon Redshift 콘솔의 그래프 이미지입니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/cluster-performance-percentage-disk-space-used.png)
+ [**읽기 처리량(Read throughput)**] – 초당 디스크에서 읽은 평균 메가바이트 수를 표시합니다. 이 차트를 평가하여 클러스터의 해당 물리적 측면을 모니터링할 수 있습니다. 클러스터의 인스턴스와 클러스터의 볼륨 간 네트워크 트래픽은 처리량에서 제외됩니다.  
![\[각 노드의 읽기 처리량을 보여주는 Amazon Redshift 콘솔의 그래프 이미지입니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/cluster-performance-read-throughput.png)
+ [**읽기 지연 시간(Read latency)**] – 디스크 읽기 I/O 작업에 소요된 평균 시간을 밀리초 단위로 표시합니다. 반환할 데이터에 대한 응답 시간을 볼 수 있습니다. 대기 시간이 길면 발신자가 유휴 시간(새 패킷을 보내지 않음)을 더 많이 소비하므로 처리량이 증가하는 속도가 줄어듭니다.  
![\[각 노드의 읽기 지연 시간을 보여주는 Amazon Redshift 콘솔의 그래프 이미지입니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/cluster-performance-read-latency.png)
+ [**쓰기 처리량(Write throughput)**] – 초당 디스크에 기록된 평균 메가바이트 수를 표시합니다. 이 지표를 평가하여 클러스터의 해당 물리적 측면을 모니터링할 수 있습니다. 클러스터의 인스턴스와 클러스터의 볼륨 간 네트워크 트래픽은 처리량에서 제외됩니다.  
![\[각 노드의 쓰기 처리량을 보여주는 Amazon Redshift 콘솔의 그래프 이미지입니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/cluster-performance-write-throughput.png)
+ [**쓰기 지연 시간(Write latency)**] – 디스크 쓰기 I/O 작업에 소요된 평균 시간을 밀리초 단위로 표시합니다. 쓰기 승인이 반환되는 시간을 평가할 수 있습니다. 대기 시간이 길면 발신자가 유휴 시간(새 패킷을 보내지 않음)을 더 많이 소비하므로 처리량이 증가하는 속도가 줄어듭니다.  
![\[각 노드의 쓰기 지연 시간을 보여주는 Amazon Redshift 콘솔의 그래프 이미지입니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/cluster-performance-write-latency.png)
+ [**데이터베이스 연결(Database connections)**] – 클러스터에 대한 데이터베이스 연결 수를 표시합니다. 이 차트를 사용하여 데이터베이스에 대해 설정된 연결 수를 확인하고 클러스터 사용량이 가장 낮은 시간을 찾을 수 있습니다.  
![\[클러스터에 대한 데이터베이스 연결 수를 보여주는 Amazon Redshift 콘솔의 그래프입니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/cluster-performance-database-connections.png)
+ [**총 테이블 수(Total table count)**] – 클러스터 내의 특정 시점에 열려 있는 사용자 테이블 수를 표시합니다. 열려 있는 테이블 수가 많을 때 클러스터 성능을 모니터링할 수 있습니다.  
![\[클러스터에 대한 총 테이블 수를 보여주는 Amazon Redshift 콘솔의 그래프 이미지입니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/cluster-performance-total-table-count.png)
+ [**상태(Health status)**] – 클러스터의 상태를 `Healthy` 또는 `Unhealthy`로 나타냅니다. 클러스터가 데이터베이스에 연결할 수 있고 간단한 쿼리를 성공적으로 수행하면 클러스터가 정상으로 간주됩니다. 그렇지 않다면 비정상 상태입니다. 비정상 상태는 클러스터 데이터베이스의 데이터 로드가 너무 많거나, 혹은 클러스터 데이터베이스에 구성 문제가 있을 때 발생합니다.  
![\[클러스터의 상태를 보여주는 Amazon Redshift 콘솔의 그래프 이미지입니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/cluster-performance-health-status.png)
+ [**쿼리 기간(Query duration)**] – 쿼리를 완료하는 걸리는 평균 시간을 마이크로 초 단위로 표시합니다. 이 차트의 데이터를 벤치마킹하여 클러스터 내 I/O 성능을 측정하고 필요한 경우 가장 시간이 많이 걸리는 쿼리를 조정할 수 있습니다.  
![\[클러스터에 대한 쿼리 기간을 보여주는 Amazon Redshift 콘솔의 그래프 이미지입니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/cluster-performance-query-duration.png)
+ [**쿼리 처리량(Query throughput)**] – 초당 완료된 평균 쿼리 수를 표시합니다. 이 차트의 데이터를 분석하여 데이터베이스 성능을 측정하고 균형 잡힌 방식으로 다중 사용자 워크로드를 지원하는 시스템의 기능을 특성화할 수 있습니다.  
![\[클러스터에 대한 쿼리 처리량을 보여주는 Amazon Redshift 콘솔의 그래프 이미지입니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/cluster-performance-query-throughput.png)
+ [**WLM 대기열당 쿼리 기간(Query duration per WLM queue)**] – 쿼리를 완료하는 데 걸리는 평균 시간을 마이크로초 단위로 표시합니다. 이 차트의 데이터를 벤치마킹하여 WLM 대기열당 I/O 성능을 측정하고 필요한 경우 가장 시간이 많이 걸리는 쿼리를 조정할 수 있습니다.  
![\[WLM 대기열당 쿼리 기간을 보여주는 Amazon Redshift 콘솔의 그래프 이미지입니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/cluster-performance-query-duration-per-wlm-queue.png)
+ [**WLM 대기열당 쿼리 처리량(Query throughput per WLM queue)**] - 초당 완료된 평균 쿼리 수를 표시합니다. 이 차트의 데이터를 분석하여 WLM 대기열당 데이터베이스 성능을 측정할 수 있습니다.  
![\[WLM 대기열당 쿼리 처리량을 보여주는 Amazon Redshift 콘솔의 그래프 이미지입니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/cluster-performance-query-throughput-per-wlm-queue.png)
+ [**동시성 조정 활동(Concurrency scaling activity)**] – 활성 동시성 조정 클러스터의 수를 표시합니다. 동시성 조정이 사용되면 동시 읽기 쿼리의 증가를 처리하는 데 필요한 추가 클러스터 용량을 Amazon Redshift에서 자동으로 추가합니다.  
![\[활성 동시성 조정 클러스터의 수를 보여주는 Amazon Redshift 콘솔의 그래프 이미지입니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/cluster-performance-concurrency-scaling-activity.png)

# 쿼리 기록 데이터 보기
<a name="performance-metrics-query-history"></a>

Amazon Redshift의 쿼리 기록 지표를 사용하여 다음을 수행할 수 있습니다.
+ 쿼리 성능 문제를 격리하고 진단합니다.
+ 동일한 타임라인에서 쿼리 실행 시간 지표와 클러스터 성능 지표를 비교하여 두 지표가 어떻게 관련되는지 확인합니다. 그러면 속도가 느린 쿼리를 식별하거나, 병목 현상 쿼리를 발견하거나, 워크로드 클러스터의 크기의 조정 필요성을 결정하는 데 도움이 됩니다.
+ 타임라인에서 선택하여 특정 쿼리의 세부 정보로 드릴다운합니다. **쿼리 ID** 및 기타 속성이 그래프 아래의 행에 표시되면 쿼리를 선택하여 쿼리 세부 정보를 볼 수 있습니다. 세부 정보에는 쿼리의 SQL 문, 실행 세부 정보 및 쿼리 계획 등이 포함됩니다. 자세한 내용은 [쿼리 세부 정보 보기 및 분석](performance-metrics-query-execution-details.md) 섹션을 참조하세요.
+ 로드 작업이 성공적으로 완료되고 SLA(서비스 수준 계약)를 충족하는지 확인합니다.

**쿼리 기록 데이터를 표시하려면**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)에서 Amazon Redshift 콘솔을 엽니다.

1. 탐색 메뉴에서 **클러스터(Clusters)**를 선택한 후 목록에서 클러스터 이름을 선택하여 세부 정보를 엽니다. 클러스터의 세부 정보가 표시됩니다. 여기에는 **클러스터 성능**, **쿼리 모니터링**, **데이터베이스**, **데이터 공유**, **일정**, **유지 관리** 및 **속성** 탭이 포함될 수 있습니다.

1. 쿼리에 대한 지표를 보려면 **Query monitoring(쿼리 모니터링)** 탭을 선택합니다.

1. **쿼리 모니터링** 섹션에서 **쿼리 기록** 탭을 선택합니다.

   창의 컨트롤을 사용하여 **쿼리 목록**과 **클러스터 지표** 간에 전환할 수 있습니다.

   **쿼리 목록**을 선택하면 탭에 다음과 같은 그래프가 포함됩니다.
   + [**쿼리 실행 시간(Query runtime)**] – 타임라인의 쿼리 활동입니다. 이 그래프를 사용하여 동일한 기간에 실행 중인 쿼리를 확인합니다. 쿼리를 선택하여 더 많은 쿼리 실행 세부 정보를 확인합니다. X축에는 선택한 기간이 표시됩니다. 그래프로 된 쿼리를 실행 중, 완료됨, 로드 등을 기준으로 필터링할 수 있습니다. 각 막대는 쿼리를 나타내고 막대의 길이는 막대의 시작부터 끝까지 실행 시간을 나타냅니다. 쿼리에는 SQL 데이터 조작 문(예: SELECT, INSERT, DELETE)과 로드(예: COPY)가 포함될 수 있습니다. 기본적으로 가장 긴 실행 쿼리 100개가 선택한 기간 동안 표시됩니다.
   + [**쿼리 및 로드(Queries and loads)**] – 클러스터에서 실행된 쿼리 및 로드 목록입니다. 이 창에는 쿼리가 현재 실행 중인 경우 **쿼리를 종료하는** 옵션이 포함되어 있습니다.

   **클러스터 지표**를 선택하면 이 탭에는 다음 그래프가 포함됩니다.
   + [**쿼리 실행 시간(Query runtime)**] – 타임라인의 쿼리 활동입니다. 이 그래프를 사용하여 동일한 기간에 실행 중인 쿼리를 확인합니다. 쿼리를 선택하여 더 많은 쿼리 실행 세부 정보를 확인합니다.
   + [**CPU 사용률(CPU utilization)**] – 리더 노드별 클러스터의 CPU 사용률 및 계산 노드의 평균입니다.
   + [**사용된 스토리지 용량(Storage capacity used)**] – 사용된 스토리지 용량의 백분율입니다.
   + [**활성 데이터베이스 연결(Active database connections)**] – 클러스터에 대한 활성 데이터베이스 연결 수입니다.

쿼리 기록 그래프로 작업할 때는 다음 사항을 고려하십시오.
+ **쿼리 실행 시간** 차트에서 특정 쿼리를 나타내는 막대를 선택하여 해당 쿼리에 대한 세부 정보를 확인합니다. **쿼리 및 로드** 목록에서 쿼리 ID를 선택하여 세부 정보를 확인할 수도 있습니다.
+ 스와이프하여 **쿼리 실행 시간** 차트의 섹션을 선택하여 특정 기간을 표시하도록 확대할 수 있습니다.
+ **쿼리 실행 시간** 차트에서 선택한 필터로 모든 데이터를 고려하려면 **쿼리 및 로드** 목록에 나열된 모든 페이지를 앞으로 이동합니다.
+ **설정 기어 아이콘**으로 표시되는 기본 설정 창을 사용하여 [**쿼리 및 로드(Queries and loads)**] 목록에 표시되는 열과 행 수를 변경할 수 있습니다.
+ **쿼리 및 로드** 목록은 왼쪽 탐색기의 **쿼리** 아이콘, **쿼리 및 로드**를 탐색하여 표시할 수도 있습니다. 자세한 내용은 [쿼리 및 로드 보기](performance-metrics-queries.md) 섹션을 참조하세요.

## 쿼리 기록 그래프
<a name="performance-metrics-query-history-examples"></a>

다음은 새 Amazon Redshift 콘솔에 표시되는 그래프의 예입니다.

**참고**  
Amazon Redshift 콘솔 그래프에는 최신 100,000개의 쿼리에 대한 데이터만 포함됩니다.
+ **쿼리 실행 시간**   
![\[같은 시간대에 어떤 쿼리가 실행되고 있는지 타임라인에 쿼리 활동을 표시하는 그래프입니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/query-history-query-runtime.png)
+ **쿼리 및 로드**   
![\[시작 시간, 기간, 상태, 쿼리 ID 등의 속성을 열로 하여 쿼리 및 로드 목록을 표시하는 테이블입니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/query-history-queries-and-loads.png)
+ **CPU 사용률**   
![\[15분 단위로 CPU 사용률을 보여주는 선 그래프입니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/query-history-cpu-utilization.png)
+ **사용된 스토리지 용량**   
![\[15분 단위로 사용된 스토리지 용량의 백분율을 보여주는 선 그래프입니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/query-history-storage-capacity-used.png)
+ **활성 데이터베이스 연결**   
![\[15분 단위로 활성 데이터베이스 연결 수를 보여주는 선 그래프입니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/query-history-active-database-connections.png)

# 데이터베이스 성능 데이터 보기
<a name="performance-metrics-database-performance"></a>

Amazon Redshift의 데이터베이스 성능 지표를 사용하여 다음을 수행할 수 있습니다.
+ 쿼리에 소요된 시간을 처리 단계별로 분석합니다. 단계별로 소요된 시간의 비정상적인 추세를 찾을 수 있습니다.
+ 쿼리 수, 기간 및 쿼리 처리량을 기간 범위(짧은, 중간, 긴)별로 분석합니다.
+ 쿼리 우선 순위(가장 낮음, 낮음, 보통, 높음, 가장 높음, 위험)별로 쿼리 대기 시간의 추세를 찾습니다.
+ WLM 대기열별 쿼리 기간, 처리량 또는 대기 시간의 추세를 확인합니다.

**데이터베이스 성능 데이터를 표시하려면**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)에서 Amazon Redshift 콘솔을 엽니다.

1. 탐색 메뉴에서 **클러스터(Clusters)**를 선택한 후 목록에서 클러스터 이름을 선택하여 세부 정보를 엽니다. 클러스터의 세부 정보가 표시됩니다. 여기에는 **클러스터 성능**, **쿼리 모니터링**, **데이터베이스**, **데이터 공유**, **일정**, **유지 관리** 및 **속성** 탭이 포함될 수 있습니다.

1. 쿼리에 대한 지표를 보려면 **Query monitoring(쿼리 모니터링)** 탭을 선택합니다.

1. **쿼리 모니터링** 섹션에서 **데이터베이스 성능** 탭을 선택합니다.

   창의 컨트롤을 사용하여 **클러스터 지표**와 **WLM 대기열 지표** 간에 전환할 수 있습니다.

   **클러스터 지표**를 선택하면 이 탭에는 다음 그래프가 포함됩니다.
   + [**워크로드 실행 분석(Workload execution breakdown)**] – 쿼리 처리 단계에서 사용된 시간입니다.
   + [**기간 범위별 쿼리(Queries by duration range)**] – 짧은, 중간 및 긴 쿼리의 수입니다.
   + [**쿼리 처리량(Query throughput)**] – 초당 완료된 평균 쿼리 수입니다.
   + [**쿼리 기간(Query duration)**] – 쿼리를 완료하는 데 걸리는 평균 시간입니다.
   + [**우선 순위별 평균 대기열 대기 시간(Average queue wait time by priority)**] – 쿼리 우선 순위를 기준으로 WLM 대기열에서 쿼리가 대기하는 총 시간입니다.

    **WLM 대기열 지표**를 선택하면 이 탭에는 다음 그래프가 포함됩니다.
   + [**대기열별 쿼리 기간(Query duration by queue)**] – WLM 대기열별 평균 쿼리 기간입니다.
   + [**대기열별 쿼리 처리량(Query throughput by queue)**] – WLM 대기열별 초당 완료된 평균 쿼리 수입니다.
   + [**대기열별 쿼리 대기 시간(Query wait time by queue)**] – WLM 대기열별 평균 쿼리 대기 기간입니다.

## 데이터베이스 성능 그래프
<a name="performance-metrics-database-performance-examples"></a>

다음은 새 Amazon Redshift 콘솔에 표시되는 그래프의 예입니다.
+ **워크로드 실행 분석**   
![\[쿼리 처리 단계의 기간을 일 단위로 표시하는 세로 막대 그래프입니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/database-performance-workload-execution-breakdown.png)
+ **기간 범위별 쿼리**   
![\[일 단위로 쿼리 수를 표시하는 세로 막대 그래프입니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/database-performance-queries-by-duration.png)
+ **쿼리 처리량**   
![\[평균 쿼리 처리량을 일 단위로 표시한 선 그래프입니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/database-performance-query-throughput.png)
+ **쿼리 지속시간**   
![\[평균 쿼리 기간을 일 단위로 표시한 선 그래프입니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/database-performance-query-duration.png)
+ **우선 순위별 평균 대기열 대기 시간**   
![\[평균 대기열 대기 시간을 일 단위로 표시한 선 그래프입니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/database-performance-queue-wait-by-priority.png)
+ **대기열별 쿼리 기간**   
![\[대기열별 평균 쿼리 기간을 일 단위로 표시한 선 그래프입니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/database-performance-query-duration-by-queue.png)
+ **대기열별 쿼리 처리량**   
![\[대기열별 평균 쿼리 처리량을 일 단위로 표시한 선 그래프입니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/database-performance-query-throughput-by-queue.png)
+ **대기열별 쿼리 대기 시간**   
![\[대기열별 평균 쿼리 대기 시간을 일 단위로 표시한 선 그래프입니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/database-performance-queue-wait-by-queue.png)

# 워크로드 동시성 및 동시성 확장 데이터 보기
<a name="performance-metrics-concurrency-scaling"></a>

Amazon Redshift에서 동시성 조정 지표를 사용해 할 수 있는 작업은 다음과 같습니다.
+ 동시성 확장을 활성화하여 대기 중인 쿼리 수를 줄일 수 있는지 여부를 분석합니다. WLM 대기열별로 또는 모든 WLM 대기열에 대해 비교할 수 있습니다.
+ 동시성 확장 클러스터의 동시성 확장 활동을 확인합니다. 이를 통해 동시성 확장이 `max_concurrency_scaling_clusters`로 제한을 받는지 여부를 알 수 있습니다. 이러한 알림을 받으면 DB 파라미터에서 `max_concurrency_scaling_clusters`를 늘리도록 선택할 수 있습니다.
+ 모든 동시성 확장 클러스터에 걸쳐 합계를 낸 총 동시성 확장 사용량을 확인할 수 있습니다.

**동시성 확장 데이터를 표시하려면**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)에서 Amazon Redshift 콘솔을 엽니다.

1. 탐색 메뉴에서 **클러스터(Clusters)**를 선택한 후 목록에서 클러스터 이름을 선택하여 세부 정보를 엽니다. 클러스터의 세부 정보가 표시됩니다. 여기에는 **클러스터 성능**, **쿼리 모니터링**, **데이터베이스**, **데이터 공유**, **일정**, **유지 관리** 및 **속성** 탭이 포함될 수 있습니다.

1. 쿼리에 대한 지표를 보려면 **Query monitoring(쿼리 모니터링)** 탭을 선택합니다.

1. **쿼리 모니터링** 섹션에서 **워크로드 동시성** 탭을 선택합니다.

   이 탭에는 다음과 같은 그래프가 포함되어 있습니다.
   + [**클러스터에서 대기 중인 쿼리와 실행 중인 쿼리 비교(Queued vs. Running queries on the cluster)**] – 클러스터의 모든 WLM 대기열에서 대기 중인 쿼리 수와 비교하여 (기본 클러스터 및 동시성 조정 클러스터에서) 실행 중인 쿼리 수입니다.
   + [**대기열당 대기 중인 쿼리와 실행 중인 쿼리 비교(Queued vs. Running queries per queue)**] – 각 WLM 대기열에서 대기 중인 쿼리 수와 비교하여 (기본 클러스터 및 동시성 조정 클러스터에서) 실행 중인 쿼리 수입니다.
   + [**동시성 조정 활동(Concurrency scaling activity)**] – 쿼리를 능동적으로 처리하고 있는 동시성 조정 클러스터 수입니다.
   + [**동시성 조정 사용량(Concurrency scaling usage)**] – 활성 쿼리 처리 활동이 있는 동시성 조정 클러스터의 사용량입니다.

## 워크로드 동시성 그래프
<a name="performance-metrics-concurrency-scaling-examples"></a>

다음은 새 Amazon Redshift 콘솔에 표시되는 그래프의 예입니다. Amazon CloudWatch에서 유사한 그래프를 만들려면 동시성 크기 조정 및 WLM CloudWatch 지표를 사용할 수 있습니다. Amazon Redshift용 CloudWatch 지표에 대한 자세한 내용은 [Amazon Redshift의 성능 데이터](metrics-listing.md) 섹션을 참조하세요.
+ **클러스터에서 대기 중인 쿼리와 실행 중인 쿼리 비교**   
![\[일 단위로 표시되는 세로 막대 그래프로, 각 막대는 두 가지 색상으로 나뉘며, 하나는 클러스터에서 대기 중인 평균 쿼리를 표시하고 다른 하나는 동일한 클러스터에서 실행 중인 평균 쿼리를 표시합니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/workload-concurrency-queued-vs-running-cluster.png)
+ **대기열당 대기 중인 쿼리와 실행 중인 쿼리 비교**   
![\[각 대기열에서 대기 중인 쿼리 수와 비교하여 실행 중인 쿼리 수를 일 단위로 표시한 세로 막대 그래프입니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/workload-concurrency-queued-vs-running-per-queue.png)
+ **동시성 확장 활동**   
![\[쿼리를 활발하게 처리하고 있는 동시성 확장 클러스터의 수를 일 단위로 표시한 가로 점 그래프입니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/workload-concurrency-concurrency-scaling-activity.png)
+ **Concurrency scaling usage(동시성 확장 사용**   
![\[활성 쿼리 처리 활동이 있는 동시성 확장 클러스터의 사용량을 일 단위로 표시한 가로선 그래프입니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/workload-concurrency-concurrency-scaling-usage.png)

# 자동 최적화 데이터 보기
<a name="performance-metrics-autonomics"></a>

Amazon Redshift 콘솔은 추가 컴퓨팅 리소스를 사용하여 실행되는 자동 최적화 또는 Autonomics에 대한 정보를 제공합니다. 이 정보를 사용하여 사용량을 추적하고 사용량 한도에 도달했는지 모니터링할 수 있습니다. Amazon Redshift는 프로비저닝된 클러스터 자체에서 실행되는 Autonomics에 대해 요금을 청구하지 않지만 추가 컴퓨팅 리소스를 사용하여 실행되는 Autonomics에 대해서는 요금을 청구합니다. 자세한 내용은 *Amazon Redshift 데이터베이스 개발자 안내서*의 [자동 데이터베이스 최적화를 위한 추가 컴퓨팅 리소스 할당](https://docs.aws.amazon.com/redshift/latest/dg/t_extra-compute-autonomics.html)을 참조하세요.

**추가 컴퓨팅 Autonomics 데이터를 보려면**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)에서 Amazon Redshift 콘솔을 엽니다.

1. 탐색 메뉴에서 **클러스터(Clusters)**를 선택한 후 목록에서 클러스터의 이름을 선택하여 세부 정보를 엽니다.

1. 클러스터의 세부 정보 페이지의 **작업** 드롭다운 메뉴에서 **사용량 한도 관리**를 선택합니다. 클러스터의 **유지 관리** 탭을 선택한 다음 아래로 스크롤하여 **사용량 한도 생성**을 선택할 수도 있습니다.

1. 추가 컴퓨팅 Autonomics 데이터를 보여주는 그래프는 **자동 최적화를 위한 추가 컴퓨팅에 대한 사용량 한도**라는 제목의 섹션 아래에 표시됩니다. 그래프에는 Amazon Redshift가 지정된 기간 동안 추가 컴퓨팅 리소스를 사용하여 Autonomics를 실행하는 시간이 표시됩니다.

# 쿼리 및 로드 보기
<a name="performance-metrics-queries"></a>

 Amazon Redshift 콘솔은 데이터베이스에서 실행되는 쿼리 및 로드에 대한 정보를 제공합니다. 이 정보를 사용하여 장시간 처리로 병목 현상을 유발하여 다른 쿼리의 효율적 처리를 방해하는 쿼리를 식별하고 문제를 해결할 수 있습니다. Amazon Redshift 콘솔에서 쿼리 정보를 사용하여 쿼리 처리를 모니터링할 수 있습니다.

**쿼리 성능 데이터를 표시하려면**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)에서 Amazon Redshift 콘솔을 엽니다.

1. 탐색 메뉴에서 쿼리를 선택한 다음 **쿼리 및 로드(Queries and loads)**를 선택하여 계정에 대한 쿼리 목록을 표시합니다.

   기본적으로 이 목록에는 지난 24시간 동안의 모든 클러스터에 대한 쿼리가 표시됩니다. 콘솔에서 표시된 날짜의 범위를 변경할 수 있습니다.
**중요**  
**Queries and loads(쿼리 및 로드)** 목록에 시스템의 가장 긴 실행 쿼리(최대 100개의 쿼리)가 표시됩니다.

# 쿼리 세부 정보 보기 및 분석
<a name="performance-metrics-query-execution-details"></a>

 쿼리 식별자를 사용하여 쿼리의 세부 정보를 볼 수 있습니다. 세부 정보에는 쿼리의 완료 상태, 기간, SQL 문, 사용자 쿼리인지 또는 Amazon Redshift에 의해 다시 작성된 쿼리인지 여부 등이 포함될 수 있습니다. *사용자 쿼리*는 SQL 클라이언트에서 Amazon Redshift에 제출되거나 비즈니스 인텔리전스 도구에 의해 생성되는 쿼리입니다. Amazon Redshift는 쿼리를 다시 작성하여 최적화할 수 있으며 이로 인해 쿼리가 여러 번 다시 작성될 수 있습니다. 프로세스는 Amazon Redshift에 의해 수행되지만 사용자 쿼리와 함께 쿼리 세부 정보 페이지에 다시 작성된 쿼리가 표시됩니다.

**쿼리를 보려면**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)에서 Amazon Redshift 콘솔을 엽니다.

1. 탐색 메뉴에서 쿼리를 선택한 다음 **쿼리 및 로드(Queries and loads)**를 선택하여 계정에 대한 쿼리 목록을 표시합니다. 쿼리를 찾으려면 이 페이지의 설정을 변경해야 할 수도 있습니다.

1. 목록에서 **쿼리** 식별자를 선택하여 **쿼리 세부 정보**를 표시합니다.

   **쿼리 세부 정보** 페이지에는 **쿼리 세부 정보** 및 **Query plan(쿼리 계획)** 탭이 쿼리 지표와 함께 포함되어 있습니다.

   지표에는 시작 시간, 쿼리 ID, 상태 및 기간과 같은 쿼리에 대한 세부 정보가 포함됩니다. 다른 세부 정보에는 쿼리가 기본 클러스터에서 실행되었는지 동시성 확장 클러스터에서 실행되었는지 여부 및 상위 쿼리인지 다시 작성된 쿼리인지 여부가 포함됩니다.

# 쿼리 실행 시 클러스터 성능 보기
<a name="performance-metrics-query-cluster"></a>

쿼리 실행 시 클러스터의 성능을 모니터링하여 잠재적 병목 현상을 식별하고 쿼리 실행을 최적화할 수 있습니다. 쿼리 실행 시 클러스터 성능을 확인하면 CPU 사용률, 디스크 I/O, 네트워크 트래픽과 같은 시스템 수준 지표와 실행 시간, 처리된 데이터, 쿼리 단계와 같은 쿼리 수준의 세부 정보를 실시간으로 볼 수 있습니다. 다음 절차는 프로비저닝된 클러스터를 효과적으로 관리하고 최적화하기 위한 성능 지표에 액세스하고 이를 해석하는 방법을 안내합니다.

**쿼리 실행 시 클러스터 성능을 표시하려면**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)에서 Amazon Redshift 콘솔을 엽니다.

1. 탐색 메뉴에서 **클러스터(Clusters)**를 선택한 후 목록에서 클러스터 이름을 선택하여 세부 정보를 엽니다. 클러스터의 세부 정보가 표시됩니다. 여기에는 **클러스터 성능**, **쿼리 모니터링**, **데이터베이스**, **데이터 공유**, **일정**, **유지 관리** 및 **속성** 탭이 포함될 수 있습니다.

1. 더 자세한 세부 정보를 보려면 **Query monitoring(쿼리 모니터링)** 탭을 선택합니다.

   자세한 내용은 [쿼리 기록 데이터 보기](performance-metrics-query-history.md) 섹션을 참조하세요.

# 로드 작업 중 클러스터 지표 보기
<a name="performance-metrics-loads"></a>

로드 작업 도중 클러스터 성능을 확인하면 리소스를 소비하는 쿼리를 식별하여 영향을 최소화할 수 있는 조치를 취할 수 있습니다. 혹은 로드 작업을 완료할 필요가 없는 경우에는 중간에 종료할 수도 있습니다.

**참고**  
Amazon Redshift 콘솔에서 쿼리 및 로드를 종료하려면 특정 권한이 필요합니다. 사용자가 쿼리 및 로드를 종료할 수 있도록 하려면 `redshift:CancelQuerySession` 작업을 IAM(AWS Identity and Access Management) 정책에 추가해야 합니다. 이 요구 사항은 **Amazon Redshift 읽기 전용** AWS 관리형 정책을 선택하거나 IAM에서 사용자 정의 정책을 생성하는지 여부에 상관없이 적용됩니다. **Amazon Redshift 전체 액세스 권한** 정책이 적용되는 사용자는 쿼리 및 로드를 종료하는 데 필요한 권한을 이미 보유하고 있습니다. Amazon Redshift의 IAM 정책 작업에 대한 자세한 내용은 [리소스 액세스 관리](redshift-iam-access-control-overview.md#redshift-iam-accesscontrol-managingaccess) 섹션을 참조하세요.

**로드 작업 중 클러스터 성능을 표시하려면**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)에서 Amazon Redshift 콘솔을 엽니다.

1. 탐색 메뉴에서 **클러스터(Clusters)**를 선택한 후 목록에서 클러스터 이름을 선택하여 세부 정보를 엽니다. 클러스터의 세부 정보가 표시됩니다. 여기에는 **클러스터 성능**, **쿼리 모니터링**, **데이터베이스**, **데이터 공유**, **일정**, **유지 관리** 및 **속성** 탭이 포함될 수 있습니다.

1. 더 자세한 세부 정보를 보려면 **Query monitoring(쿼리 모니터링)** 탭을 선택합니다.

1. **Queries and loads(쿼리 및 로드)** 섹션에서 **로드**를 선택하여 클러스터의 로드 작업을 표시합니다. 로드가 실행 중인 경우 **쿼리 종료**를 선택하여 종료할 수 있습니다.

# 클러스터 워크로드 분석 차트 보기
<a name="analyze-workload-performance"></a>

콘솔에서 워크로드 실행 분석 차트를 확인하면 워크로드의 성능을 자세히 파악할 수 있습니다. 이 차트는 QueryRuntimeBreakdown 지표에서 제공한 데이터를 사용하여 작성됩니다. 이 차트를 사용하여 다양한 처리 단계(대기 및 계획 등)에서 쿼리에 소요된 시간을 알 수 있습니다.

**참고**  
단일 노드 클러스터에 대한 워크로드 실행 분석 차트는 표시되지 않습니다.

다음 측정치 목록에는 다양한 처리 단계에 대한 설명이 나와 있습니다.
+ `QueryPlanning`: SQL 문을 구문 분석하고 최적화하는 데 소요된 시간.
+ `QueryWaiting`: 워크로드 관리(WLM) 대기열에서 대기하는 데 소요된 시간.
+ `QueryExecutingRead`: 읽기 쿼리를 실행하는 데 소요된 시간.
+ `QueryExecutingInsert`: 삽입 쿼리를 실행하는 데 소요된 시간.
+ `QueryExecutingDelete`: 삭제 쿼리를 실행하는 데 소요된 시간.
+ `QueryExecutingUpdate`: 업데이트 쿼리를 실행하는 데 소요된 시간.
+ `QueryExecutingCtas`: CREATE TABLE AS 쿼리를 실행하는 데 소요된 시간.
+ `QueryExecutingUnload`: 언로드 쿼리를 실행하는 데 소요된 시간.
+ `QueryExecutingCopy`: 복사 쿼리를 실행하는 데 소요된 시간.

예를 들어, Amazon Redshift 콘솔의 다음 그래프는 쿼리가 전송된 시간을 계획, 대기, 읽기 및 쓰기 단계로 표시합니다. 이 그래프의 결과를 다른 측정치와 결합하여 이후 분석에 사용할 수 있습니다. 경우에 따라 그래프에 단기간의 쿼리(`QueryDuration` 측정치로 측정됨)가 오랫동안 대기 상태로 지속되는 것으로 표시될 수 있습니다. 이 경우 특정 대기열의 WLM 동시성 속도를 높여서 처리량을 늘릴 수 있습니다.

다음은 워크로드 실행 분석 차트의 예입니다. 차트에서 y축 값은 누적 막대 그래프로 표시된 지정된 시간에 각 단계의 평균 지속 시간입니다.

![\[쿼리 처리 단계의 기간을 일 단위로 표시하는 세로 막대 그래프입니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/database-performance-workload-execution-breakdown.png)


다음 다이어그램은 Amazon Redshift가 동시 세션에 대한 쿼리 처리를 어떻게 집계하는지를 보여 줍니다.

![\[가로 막대 그래프는 세션 번호를 X축에, 시간을 Y축에 표시합니다. 각 세션은 서로 다른 쿼리 상태로 구분되는 가로 막대입니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/querybreakdownschematic.png)


**클러스터 워크로드 분석 차트를 보려면**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)에서 Amazon Redshift 콘솔을 엽니다.

1. 탐색 메뉴에서 **클러스터(Clusters)**를 선택한 후 목록에서 클러스터 이름을 선택하여 세부 정보를 엽니다. 클러스터의 세부 정보가 표시됩니다. 여기에는 **클러스터 성능**, **쿼리 모니터링**, **데이터베이스**, **데이터 공유**, **일정**, **유지 관리** 및 **속성** 탭이 포함될 수 있습니다.

1. 쿼리에 대한 지표를 보려면 **Query monitoring(쿼리 모니터링)** 탭을 선택합니다.

1. **쿼리 모니터링** 섹션에서 **데이터베이스 성능**을 선택하고 **클러스터 지표**를 선택합니다.

   선택한 시간 범위에 대해 다음 지표가 누적 막대 차트로 표시됩니다.
   + **계획** 시간 
   + **대기** 시간 
   + **커밋** 시간 
   + **실행** 시간 

# 쿼리 실행 분석
<a name="analyzing-query-execution"></a>

쿼리의 실행 세부 정보를 분석하여 쿼리의 수행 방식을 이해하고 최적화가 필요한 잠재적 영역을 식별할 수 있습니다. 쿼리를 분석하면 관련 단계, 각 단계에 소요된 시간, 처리된 데이터 양 등 쿼리 계획에 대한 인사이트를 얻을 수 있습니다. 일반적인 사용 사례로는 실행 속도가 느린 쿼리 문제 해결, 데이터 배포 전략 최적화, 쿼리 재작성 또는 인덱싱 기회 파악 등이 있습니다.

**쿼리를 분석하려면**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)에서 Amazon Redshift 콘솔을 엽니다.

1. 탐색 메뉴에서 쿼리를 선택한 다음 **쿼리 및 로드(Queries and loads)**를 선택하여 계정에 대한 쿼리 목록을 표시합니다. 쿼리를 찾으려면 이 페이지의 설정을 변경해야 할 수도 있습니다.

1. 목록에서 **쿼리** 식별자를 선택하여 **쿼리 세부 정보**를 표시합니다.

   **쿼리 세부 정보** 페이지에는 **쿼리 세부 정보** 및 **Query plan(쿼리 계획)** 탭이 쿼리 지표와 함께 포함되어 있습니다.
**참고**  
**쿼리 런타임** 그래프에서 쿼리를 드릴다운할 때 **클러스터 세부 정보** 페이지의 **쿼리 기록** 탭에서 **쿼리 세부 정보** 페이지로 이동할 수도 있습니다.

**쿼리 세부 정보** 페이지는 다음 섹션을 포함합니다.
+ 다음 스크린샷과 같이 **다시 작성된 쿼리**의 목록.  
![\[시작 시간, 기간, 상태 및 쿼리 ID와 같은 속성을 열 이름으로 사용하여 재작성된 쿼리 목록을 보여주는 테이블입니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/query-details-rewritten-queries.png)
+ 다음 스크린샷과 같이 **쿼리 세부 정보** 섹션.  
![\[콘솔의 쿼리 세부 정보 섹션에 특정 쿼리에 대한 속성이 표시됩니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/query-details-query.png)
+ 실행된 **SQL** 및 실행에 대한 [**실행 세부 정보(Execution details)**]가 포함된 [**쿼리 세부 정보(Query details)**] 탭.
+ **쿼리 계획** 단계 및 쿼리 계획에 대한 기타 정보가 포함된 **쿼리 계획** 탭. 이 테이블에는 쿼리가 실행될 때의 클러스터에 대한 그래프도 포함되어 있습니다.
  + **클러스터 상태**   
![\[워크로드 중 클러스터 상태를 보여주는 콘솔의 클러스터 상태 섹션입니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/query-details-cluster-health-status.png)
  + **CPU 사용률**   
![\[콘솔의 CPU 사용률 섹션에는 클러스터의 CPU 사용률을 분 단위로 표시하는 선 그래프가 표시됩니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/query-details-cpu-utilization.png)
  + **사용된 스토리지 용량**   
![\[콘솔의 스토리지 용량 사용량 섹션에 사용된 스토리지 용량 비율을 분 단위로 표시한 선 그래프가 표시됩니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/query-details-storage-capacity-used.png)
  + **활성 데이터베이스 연결**   
![\[콘솔의 활성 데이터베이스 연결 섹션에는 시간 경과에 따른 클러스터에 대한 활성 데이터베이스 연결 수를 선 그래프로 표시합니다.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/query-details-active-database-connections.png)

# 경보 생성
<a name="performance-metrics-alarms"></a>

Amazon Redshift 콘솔에서 생성하는 경보는 CloudWatch 경보입니다. 이 경보는 클러스터 또는 서버리스 인스턴스에 대한 사전 결정이 가능하다는 점에서 유용합니다. [Amazon Redshift의 성능 데이터](metrics-listing.md)에 나열된 모든 지표에 대해 경보를 1개 이상 설정할 수 있습니다. 예를 들어 클러스터 노드의 높은 `CPUUtilization`에 대해 경보를 설정하면 노드 사용량의 초과 시점을 알 수 있습니다. 높은 `DataStorage`에 대한 경보는 서버리스 네임스페이스가 데이터에 사용하는 스토리지 공간을 추적합니다.

[**작업(Actions)**]에서 경보를 수정하거나 삭제할 수 있습니다. Slack 또는 Amazon Chime 웹훅 URL을 지정하여 CloudWatch에서 Slack 또는 Amazon Chime으로 알림을 보내는 차임 또는 슬랙 알림을 생성할 수도 있습니다.

이 섹션에서는 Amazon Redshift 콘솔에서 경보를 생성하는 방법에 대해 알아봅니다. CloudWatch 콘솔을 사용하여 경보를 생성하거나 AWS CLI 또는 AWS SDK 등의 다른 방식으로 지표를 사용할 수도 있습니다.

**Amazon Redshift 콘솔로 CloudWatch 경보를 생성하려면**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)에서 Amazon Redshift 콘솔을 엽니다.

   Amazon Redshift Serverless를 사용하는 경우 대시보드 오른쪽 상단에서 **Go to Serverless**(Serverless로 이동)를 선택합니다.

1. 탐색 메뉴에서 **경보(Alarms)**를 선택한 후 **경보 생성(Create alarm)**을 선택합니다.

1. [**경보 생성(Create alarm)**] 페이지에서 CloudWatch 경보를 생성할 속성을 입력합니다.

1. **경보 생성**을 선택하세요.

# 실행 쿼리 종료
<a name="terminate-queries"></a>

**쿼리** 페이지에서는 현재 진행 중인 쿼리를 종료할 수도 있습니다.

**참고**  
Amazon Redshift 콘솔에서 쿼리 및 로드를 종료하려면 특정 권한이 필요합니다. 사용자가 쿼리 및 로드를 종료할 수 있도록 하려면 `redshift:CancelQuerySession` 작업을 IAM(AWS Identity and Access Management) 정책에 추가해야 합니다. 이 요구 사항은 **Amazon Redshift 읽기 전용** AWS 관리형 정책을 선택하거나 IAM에서 사용자 정의 정책을 생성하는지 여부에 상관없이 적용됩니다. **Amazon Redshift 전체 액세스 권한** 정책이 적용되는 사용자는 쿼리 및 로드를 종료하는 데 필요한 권한을 이미 보유하고 있습니다. Amazon Redshift의 IAM 정책 작업에 대한 자세한 내용은 [리소스 액세스 관리](redshift-iam-access-control-overview.md#redshift-iam-accesscontrol-managingaccess) 섹션을 참조하세요.

**실행 쿼리를 종료하려면**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)에서 Amazon Redshift 콘솔을 엽니다.

1. 탐색 메뉴에서 쿼리를 선택한 다음 **쿼리 및 로드(Queries and loads)**를 선택하여 계정에 대한 쿼리 목록을 표시합니다.

1. 목록에서 종료할 실행 쿼리를 선택한 다음 **쿼리 종료**를 선택합니다.

# CloudWatch 콘솔의 성능 지표
<a name="using-cloudwatch-console"></a>

CloudWatch 콘솔에서 Amazon Redshift 지표를 사용하여 작업할 때는 다음과 같은 몇 가지 사항을 알고 있어야 합니다.
+ 쿼리 및 로드 성능 데이터는 Amazon Redshift 콘솔에서만 제공됩니다.
+ 일부 CloudWatch 지표의 단위는 Amazon Redshift 콘솔에서 사용하는 단위와 다릅니다. 예를 들어 `WriteThroughput`이 GB/s(CloudWatch에서는 바이트/초로 표시됨)로 표시되어 일반적인 노드의 스토리지 공간에 더욱 적합합니다.

CloudWatch 콘솔, 명령줄 도구 또는 Amazon SDK에서 Amazon Redshift 지표를 사용하여 작업할 때는 다음과 같은 개념을 알고 있어야 합니다.

1. 첫째, 사용할 지표 차원을 지정합니다. 차원은 지표를 고유하게 식별하는 데 도움이 되는 이름-값 페어입니다. Amazon Redshift의 차원은 `ClusterIdentifier`와 `NodeID`입니다. CloudWatch 콘솔에서는 클러스터 및 노드 고유의 차원을 쉽게 선택할 수 있도록 `Redshift Cluster` 및 `Redshift Node` 뷰가 제공됩니다. 차원에 대한 자세한 내용은 *CloudWatch Developer Guide*의 [Dimensions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#Dimension)를 참조하세요.

1. 둘째, 지표 이름(`ReadIOPS` 등)을 지정합니다.

아래 표는 제공되는 Amazon Redshift 지표 차원의 유형을 요약한 것입니다. 지표에 따라 1분 또는 5분 간격으로 데이터를 무료로 사용할 수 있습니다. 자세한 내용은 [Amazon Redshift 지표](metrics-listing.md#redshift-metrics) 섹션을 참조하세요.


| CloudWatch 네임스페이스 | 차원 | 설명 | 
| --- | --- | --- | 
| AWS/Redshift |  NodeID  |  클러스터 노드 고유의 요청 데이터를 필터링합니다. `NodeID`는 "Leader", "Shared" 또는 "Compute-N"이 되고, 여기에서 N은 클러스터의 노드 번호를 가리키는 0, 1 등으로 매겨집니다. "Shared"는 클러스터의 노드 수가 1개, 즉 리더 노드와 컴퓨팅 노드가 결합되었다는 것을 의미합니다.  | 
| AWS/Redshift |  ClusterIdentifier  |  클러스터 고유의 요청 데이터를 필터링합니다. 클러스터 고유의 지표로는 `HealthStatus`, `MaintenanceMode` 및 `DatabaseConnections`가 있습니다. 노드 지표이기도 한 이 차원의 일반 지표(`ReadIOPS` 등)는 노드 지표 데이터를 모두 종합한 것입니다. 이러한 지표들은 리더 노드와 컴퓨팅 노드의 속성을 모두 수집하기 때문에 해석할 때 주의하십시오.  | 

게이트웨이 및 볼륨 지표 작업은 기타 서비스 지표 작업과 유사합니다. 대부분 공통 태스크는 CloudWatch 설명서에 간략히 설명되어 있습니다. 몇 가지 나열하면 다음과 같습니다.
+ [사용 가능한 지표 보기](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/viewing_metrics_with_cloudwatch.html)
+ [지표에 대한 통계 얻기](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/getting-metric-statistics.html)
+ [CloudWatch 경보 생성](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)

# 쿼리 프로파일러
<a name="using-query-plan-profiler"></a>

이 문서에서는 쿼리의 구성 요소 및 성능을 분석하기 위한 그래픽 도구인 쿼리 프로파일러에 대해 설명합니다.

쿼리 프로파일러는 Amazon Redshift 콘솔을 통해 볼 수 있는 쿼리 모니터링 및 문제 해결 기능입니다. 쿼리 성능을 분석하는 데 유용합니다. 주요 목적은 쿼리에 대한 시각적인 그래픽 실행 순서, 실행 계획 및 통계를 표시하고 이를 더 쉽게 이해하고 해결할 수 있도록 하는 것입니다. 쿼리 프로파일러는 다음 유형의 쿼리 구성 요소를 분석하는 데 도움이 됩니다.
+ **하위 쿼리** - 하위 쿼리는 쿼리 작업의 일부입니다. Amazon Redshift는 쿼리를 하나의 대규모 쿼리로 처리하는 것보다 더 효율적인 경우 쿼리를 여러 하위 쿼리로 분할할 수 있습니다. 프로파일러에서 각 하위 쿼리의 속성을 볼 수 있습니다. 하위 쿼리는 스트림과 추가 하위 구성 요소로 구성됩니다.

  쿼리 프로파일러가 표시하는 하위 쿼리 유형에는 일반적으로 다음이 포함됩니다.
  + **임시 테이블 쿼리**: 이 하위 쿼리의 텍스트는 `CREATE TEMP TABLE` 명령으로 시작합니다. 이 하위 쿼리는 처리할 다른 하위 쿼리에 대한 임시 테이블을 생성합니다.
  + **통계 쿼리**: 쿼리 프로파일러는 이 하위 쿼리를 식별하는 데 도움이 되도록 이 하위 쿼리의 시작 부분에 다음 주석을 추가합니다.

    ```
    -- collect statistics of child query queryID
    ```

    이 하위 쿼리는 Amazon Redshift 쿼리 엔진이 성능을 최적화하는 데 사용하는 정보를 수집합니다.
**참고**  
쿼리 프로파일러는 사용자가 Amazon Redshift가 실행하는 최종 하위 쿼리로 제공하는 쿼리를 보여줍니다.
+ **스트림** - 스트림은 사용 가능한 컴퓨팅 노드 슬라이스 위에 분할된 세그먼트 모음입니다. 각 하위 쿼리는 하나 이상의 세그먼트로 구성됩니다. 쿼리 프로파일러에서 실행 시간과 같은 각 스트림의 속성을 볼 수 있습니다. 스트림 목록을 살펴보면 성능 병목 현상을 빠르게 찾을 수 있습니다.
+ **세그먼트** - 세그먼트는 단일 프로세스가 실행할 수 있는 여러 단계의 조합입니다. 또한 세그먼트는 컴퓨팅 노드 슬라이스에서 실행할 수 있는 가장 작은 컴파일 단위입니다. 여기서 조각이란 Amazon Redshift의 병렬 처리 유닛을 말합니다. 스트림을 구성하는 세그먼트들은 병렬로 실행됩니다. 쿼리 프로파일러는 세그먼트를 그래픽으로 표시하지 않지만 해당 단계의 세부 정보 창에서 단계에 대한 세그먼트 정보에 액세스할 수 있습니다.
+ **단계** - 각 세그먼트는 단계 모음으로 구성됩니다. 단계는 쿼리의 작업 부분입니다. 예를 들어 단계에는 *해시조인* 또는 테이블에서 레코드를 읽는 *스캔*이 포함될 수 있습니다.

스트림, 세그먼트 및 단계에 대한 자세한 내용은 *Amazon Redshift 데이터베이스 개발자 안내서*의 [쿼리 계획 및 실행 워크플로](https://docs.aws.amazon.com/redshift/latest/dg/c-query-planning.html)를 참조하세요.

쿼리 프로파일러는 `SYS_QUERY_HISTORY`, `SYS_QUERY_DETAIL`, `SYS_QUERY_EXPLAIN` 및 `SYS_CHILD_QUERY_TEXT` 뷰에서 반환된 정보를 표시합니다. 이러한 뷰에 대한 자세한 내용은 *Amazon Redshift 데이터베이스 개발자 안내서*의 [SYS\$1QUERY\$1HISTORY](https://docs.aws.amazon.com/redshift/latest/dg/SYS_QUERY_HISTORY), [SYS\$1QUERY\$1DETAIL](https://docs.aws.amazon.com/redshift/latest/dg/SYS_QUERY_DETAIL.html), [SYS\$1QUERY\$1EXPLAIN](https://docs.aws.amazon.com/redshift/latest/dg/SYS_QUERY_EXPLAIN.html), [SYS\$1CHILD\$1QUERY\$1TEXT](https://docs.aws.amazon.com/redshift/latest/dg/SYS_CHILD_QUERY_TEXT.html)를 참조하세요.

쿼리 프로파일러는 데이터베이스에서 최근에 실행된 쿼리에 대한 쿼리 정보만 표시합니다. 데이터베이스에 대해 실행되지 않고 미리 채워진 캐시 데이터를 사용하여 완료하는 쿼리는 이전에 정보를 사용할 수 없는 경우 쿼리 프로파일이 없습니다. 이는 Amazon Redshift가 쿼리 계획을 생성하지 않기 때문입니다.

## 쿼리 프로파일러를 사용하기 위한 사전 조건
<a name="using-query-plan-profiler-prereqs"></a>

SYS 모니터링 뷰는 사용 편의성과 복잡성 감소를 위해 설계되어 효과적인 모니터링 및 문제 해결을 위한 완전한 지표를 제공합니다. SYS 모니터링 뷰는 클러스터의 크기 또는 활동과 관계없이 지난 7일 동안의 쿼리 기록도 보장합니다. 사용자는 자신이 실행한 쿼리만 볼 수 있으며 슈퍼 사용자는 모든 사용자의 쿼리를 볼 수 있습니다.

IAM 사용자 계정 또는 역할에는 콘솔의 **쿼리 및 데이터베이스 모니터링** 섹션에 액세스할 수 있는 권한이 필요합니다. 이 섹션에서는 사용자 계정 또는 역할에 권한을 추가하는 방법을 설명합니다.

다음 정책을 사용하여 IAM 사용자 계정 또는 역할에 최소 권한을 추가하세요.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "redshift:DescribeClusters",
                "redshift-serverless:ListNamespaces",
                "redshift-serverless:ListWorkgroups",
                "redshift-data:ExecuteStatement",
                "redshift-data:DescribeStatement",
                "redshift-data:GetStatementResult"
            ],
            "Resource": [
                "arn:aws:redshift-serverless:us-east-1:111122223333:*",
                "arn:aws:redshift:us-east-1:111122223333:*"
            ]
        }
    ]
}
```

------

**Topics**
+ [역할에 대한 쿼리 모니터링 권한 부여](#using-query-plan-profiler-prereqs-role)
+ [사용자에 대한 쿼리 모니터링 권한 부여](#using-query-plan-profiler-prereqs-user)
+ [IAM 자격 증명을 사용한 임시 자격 증명](#using-query-plan-profiler-prereqs-temp-iam)

### 역할에 대한 쿼리 모니터링 권한 부여
<a name="using-query-plan-profiler-prereqs-role"></a>

`sys:monitor` 권한이 있는 역할의 사용자는 모든 쿼리를 볼 수 있습니다. `sys:operator` 권한이 있는 역할의 사용자는 쿼리를 취소하고 쿼리 기록을 분석하고 vacuum 작업을 수행할 수 있습니다.

**역할에 쿼리 모니터링 권한을 부여하려면**

1. 시스템 모니터링 액세스를 제공하려면 다음 명령을 사용하세요. 여기서 *role-name*은 액세스를 제공하려는 역할의 이름입니다.

   ```
   grant role sys:monitor to "IAMR:role-name";
   ```

1. (선택 사항) 시스템 운영자 액세스를 제공하려면 다음 명령을 사용하세요. 여기서 *role-name*은 액세스를 제공하려는 역할의 이름입니다.

   ```
   grant role sys:operator to "IAMR:role-name";
   ```

### 사용자에 대한 쿼리 모니터링 권한 부여
<a name="using-query-plan-profiler-prereqs-user"></a>

`sys:monitor` 권한이 있는 사용자는 모든 쿼리를 볼 수 있습니다. `sys:operator` 권한이 있는 사용자는 쿼리를 취소하고 쿼리 기록을 분석하고 vacuum 작업을 수행할 수 있습니다.

**사용자에게 쿼리 모니터링 권한을 부여하려면**

1. 시스템 모니터링 액세스를 제공하려면 다음 명령을 사용하세요. 여기서 *user-name*은 액세스를 제공하려는 사용자의 이름입니다.

   ```
   grant role sys:monitor to "IAMR:user-name";
   ```

1. (선택 사항) 시스템 운영자 액세스를 제공하려면 다음 명령을 사용하세요. 여기서 *-name*은 액세스를 제공하려는 사용자의 이름입니다.

   ```
   grant role sys:operator to "IAMR:user-name";
   ```

### IAM 자격 증명을 사용한 임시 자격 증명
<a name="using-query-plan-profiler-prereqs-temp-iam"></a>

이 옵션은 클러스터에 연결할 때만 사용할 수 있습니다. 이 방법을 사용하면 쿼리 프로파일러가 사용자 이름을 IAM ID에 매핑하고 IAM ID로 데이터베이스에 연결하기 위한 임시 암호를 생성합니다. 이 메서드를 사용하여 연결하는 사용자에게는 `redshift:GetClusterCredentialsWithIAM`에 대한 IAM 권한이 허용되어야 합니다. 사용자가 이 메서드를 사용하지 못하도록 하려면 IAM 사용자 또는 역할을 수정하여 이 권한을 거부합니다.

## Amazon Redshift 콘솔에서 쿼리 프로파일러에 액세스하여 쿼리 분석
<a name="using-query-plan-profiler-accessing"></a>

Amazon Redshift Serverless 또는 프로비저닝된 Amazon Redshift에 대한 쿼리 프로파일러에 액세스할 수 있습니다. 세부 정보는 다음 섹션을 참조하세요.

**Topics**
+ [Amazon Redshift Serverless용 Amazon Redshift 콘솔에서 쿼리 프로파일러 액세스](#using-query-plan-profiler-accessing-serverless)
+ [Amazon Redshift 프로비저닝용 Amazon Redshift 콘솔에서 쿼리 프로파일러 액세스](#using-query-plan-profiler-accessing-provisioned)

### Amazon Redshift Serverless용 Amazon Redshift 콘솔에서 쿼리 프로파일러 액세스
<a name="using-query-plan-profiler-accessing-serverless"></a>

Amazon Redshift Serverless용 쿼리 프로파일러에 액세스하려면 다음을 수행합니다.
+ Amazon Redshift Serverless 콘솔을 엽니다.
+ 탐색 창의 **모니터링**에서 **쿼리 및 데이터베이스 모니터링**을 선택합니다.
+ 작업 그룹을 선택합니다.
+ **쿼리 및 데이터베이스 모니터링**을 선택합니다.
+ 쿼리를 선택합니다.
+ **쿼리 세부 정보** 페이지에서 **쿼리 계획** 탭을 선택합니다.

쿼리 계획을 사용할 수 있는 경우 하위 쿼리 목록이 표시됩니다. 쿼리 프로파일러에서 조회할 쿼리를 선택합니다.

### Amazon Redshift 프로비저닝용 Amazon Redshift 콘솔에서 쿼리 프로파일러 액세스
<a name="using-query-plan-profiler-accessing-provisioned"></a>

Amazon Redshift 프로비저닝용 쿼리 프로파일러에 액세스하려면 다음을 수행합니다.
+ Amazon Redshift 프로비저닝 클러스터 대시보드를 엽니다.
+ 클러스터를 선택합니다.
+ **Query monitoring**(쿼리 모니터링)을 선택합니다.
+ 데이터베이스에 연결
+ **쿼리 및 데이터베이스 모니터링**을 선택합니다.
+ 쿼리를 선택합니다.

쿼리 계획을 사용할 수 있는 경우 하위 쿼리 목록이 표시됩니다. 쿼리 프로파일러에서 조회할 쿼리를 선택합니다.

## 쿼리 프로파일러 사용자 인터페이스
<a name="using-query-plan-profiler-ui"></a>

쿼리 프로파일러는 다음 페이지를 사용하여 쿼리에 대한 정보를 표시합니다.
+ ** [쿼리 세부 정보 페이지](#using-query-plan-profiler-ui-query-details) ** -이 페이지에는 쿼리에 대한 통계 및 하위 쿼리가 표시됩니다.
+ ** [하위 쿼리 페이지](#using-query-plan-profiler-ui-child-query) ** -이 페이지에는 하위 쿼리에 대한 실행 계획의 통계, 스트림 및 시각적 표현이 표시됩니다. **쿼리 및 데이터베이스 모니터링** 페이지의 **하위 쿼리** 목록에서 하위 쿼리를 선택하면 콘솔에 이 페이지가 표시됩니다.

### 쿼리 세부 정보 페이지
<a name="using-query-plan-profiler-ui-query-details"></a>

![\[Query details interface showing execution time, data returned, and performance breakdown for query 4960.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/metrics_qp_query_details.png)


쿼리 세부 정보 페이지에는 다음과 같은 구성 요소가 있습니다.
+ **상단 창** - 페이지 상단의 창에 상태 및 유형과 같은 쿼리에 대한 세부 정보가 표시됩니다. 상단 창에 표시되는 정보의 소스에 대한 자세한 내용은 *Amazon Redshift 데이터베이스 개발자 안내서*의 [SYS\$1QUERY\$1HISTORY](https://docs.aws.amazon.com/redshift/latest/dg/SYS_QUERY_HISTORY.html)를 참조하세요.
+ **SQL 탭** - 하단 패널의 이 탭에는 원래 사용자 쿼리에 대한 SQL 텍스트가 표시됩니다.
+ **쿼리 계획 탭** - 하단 패널의 이 탭에는 Amazon Redshift가 사용자 쿼리에 대한 데이터 및 통계를 준비하는 데 사용하는 하위 쿼리 목록이 표시됩니다. 기본적으로 **하위 쿼리** 목록에는 각 하위 쿼리에 대한 정보와 집계된 통계가 표시됩니다. 이 페이지에 표시되는 정보의 소스에 대한 자세한 내용은 *Amazon Redshift 데이터베이스 개발자 안내서*의 [SYS\$1QUERY\$1DETAIL](https://docs.aws.amazon.com/redshift/latest/dg/SYS_QUERY_DETAIL.html)을 참조하세요.

  기본 설정 메뉴를 사용하여 **하위 쿼리** 목록에서 열을 추가하거나 제거할 수 있습니다.
+ **관련 지표** - 하단 패널의 이 탭에는 쿼리에 대한 다음 CloudWatch 지표가 표시됩니다.
  + **사용된 RPU 용량**(서버리스 작업 그룹의 경우): 쿼리에서 사용되는 컴퓨팅 용량으로, Redshift 처리 장치(RPU)에서 측정됩니다. 자세한 내용은 [Amazon Redshift Serverless의 컴퓨팅 용량](serverless-capacity.md) 섹션을 참조하세요.
  + **클러스터 상태**, **CPU 사용률**, **사용된 스토리지 용량**(프로비저닝된 클러스터의 경우): 사용된 쿼리의 상태 및 시스템 리소스입니다.
  + **활성 데이터베이스 연결:** 쿼리의 `DatabaseConnections` 지표입니다.

  CloudWatch 지표에 대한 자세한 내용은 [Amazon Redshift의 성능 데이터](metrics-listing.md) 섹션을 참조하세요.

### 하위 쿼리 페이지
<a name="using-query-plan-profiler-ui-child-query"></a>

![\[Query execution plan showing stages from Distribute to Aggregate with execution times.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/metrics_qp_child_query_plan.png)


하위 쿼리 페이지에는 다음과 같은 구성 요소가 있습니다.
+ **하위 쿼리 풀다운** - 이 컨트롤은 각 하위 쿼리의 시퀀스 이름과 실행 시간을 표시합니다. 이 컨트롤에서 다른 하위 쿼리를 선택하여 탐색할 수 있습니다.
+ **측면 패널** - 이 패널에는 하위 쿼리 스트림과 하위 쿼리 텍스트를 표시하는 탭이 포함되어 있습니다.
+ **하위 쿼리 스트림 탭** - 상단 패널의 이 탭에는 다음이 표시됩니다.
  + **스트림** - 이 창에는 하위 쿼리의 스트림 목록이 표시됩니다. 이 창에는 Amazon Redshift가 쿼리를 최적화하는 데 사용하는 스트림에 대한 정보와 집계된 데이터가 표시됩니다. 이 창의 세부 정보에 대한 자세한 내용은 *Amazon Redshift 데이터베이스 개발자 안내서*의 [SYS\$1QUERY\$1DETAIL](https://docs.aws.amazon.com/redshift/latest/dg/SYS_QUERY_DETAIL.html)을 참조하세요.

    기본 설정 메뉴를 사용하여 **스트림** 창에서 열을 추가하거나 제거할 수 있습니다. **스트림** 창의 기어 아이콘을 사용하여 기본 설정 메뉴에 액세스합니다.
  + **하위 쿼리 창** - 하위 쿼리의 단계를 그래픽으로 표현합니다. **하위 쿼리** 창에 대한 자세한 내용은 다음 [하위 쿼리 창](#using-query-plan-profiler-child-query-pane) 섹션을 참조하세요.
+ **하위 쿼리 텍스트 탭** - 상단 패널의 이 탭은 하위 쿼리에 대한 SQL 코드를 표시합니다.
+ **하위 쿼리 세부 정보 창** - 오른쪽 패널의 이 창에는 하위 쿼리에 대한 세부 정보가 표시됩니다. 이 창의 세부 정보에 대한 자세한 내용은 *Amazon Redshift 데이터베이스 개발자 안내서*의 [SYS\$1QUERY\$1DETAIL](https://docs.aws.amazon.com/redshift/latest/dg/SYS_QUERY_DETAIL.html)을 참조하세요.
+ **스트림 세부 정보 창** - **스트림** 창에서 스트림을 선택하면 **스트림 세부** 정보 창에 스트림에 대한 정보가 표시됩니다. 이 패널의 세부 정보에 대한 자세한 내용은 *Amazon Redshift 데이터베이스 개발자 안내서*의 [SYS\$1QUERY\$1DETAIL](https://docs.aws.amazon.com/redshift/latest/dg/SYS_QUERY_DETAIL.html)을 참조하세요.
+ **단계 세부 정보 창** - **스트림** 창에서 단계를 선택하거나 **하위 쿼리 계획** 의 그래프를 선택하면 **단계 세부** 정보 창에 단계에 대한 정보가 표시됩니다. 이 창의 세부 정보에 대한 자세한 내용은 *Amazon Redshift 데이터베이스 개발자 안내서*의 [SYS\$1QUERY\$1DETAIL](https://docs.aws.amazon.com/redshift/latest/dg/SYS_QUERY_DETAIL.html)을 참조하세요.

## 하위 쿼리 창
<a name="using-query-plan-profiler-child-query-pane"></a>

쿼리 프로파일러는 **하위 쿼리** 창의 하위 쿼리를 선택한 하위 쿼리의 단계를 그래픽으로 표현하여 표시합니다.

**하위 쿼리** 창에는 실행 순서와 단계 간의 관계가 표시됩니다. 예를 들어 한 단계가 다른 두 단계의 출력을 조인하는 경우 **하위 쿼리** 창에는 두 노드가 연결된 트리 노드로 단계가 표시됩니다.

![\[Tree diagram showing Hashjoin step with Scan + Item and Hash steps as child nodes.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/metrics_qp_hashjoin.png)


**하위 쿼리** 창에는 기본적으로 단계가 포함된 스트림이 표시되지 않습니다. Amazon Redshift가 하위 쿼리의 단계를 논리적으로 분할하는 데 사용하는 스트림을 표시하려면 **스트림 보기**를 선택합니다. **스트림 보기**를 선택하면 **하위 쿼리** 창에 쿼리 스트림에 포함된 단계가 표시됩니다.

**하위 쿼리** 창에는 세그먼트 정보가 표시되지 않습니다. 단계의 세그먼트를 보려면 단계를 선택합니다. 그러면 **단계 세부 정보** 창에 단계의 세그먼트가 표시됩니다.

### 하위 쿼리 창에서 탐색
<a name="using-query-plan-profiler-child-query-pane-navigation"></a>

**하위 쿼리** 창에서 단계를 선택하여 하위 쿼리에 대한 자세한 정보를 볼 수 있습니다. 또한 작업 영역을 이동 및 확대/축소하여 쿼리 계획의 단계를 더 잘 시각화할 수 있습니다.

다음 방법을 사용하여 **하위 쿼리** 계획에서 노드, 이동 및 확대/축소를 선택할 수 있습니다.
+ **마우스 사용** - 노드를 선택하고 이동하려는 작업 영역을 클릭한 후 끌어서 **Ctrl**(Windows) 또는 **CMD**(Mac)를 누른 상태에서 마우스 휠로 확대/축소할 수 있습니다. 노드를 선택하면 작업 영역이 해당 노드를 강조 표시하도록 확대/축소하고 이동합니다. 작업 영역에서 스트림을 선택하면 해당 스트림이 **스트림** 목록에 강조 표시됩니다. 작업 영역에서 단계를 선택하면 **단계 세부 정보** 창에 해당 단계에 대한 정보가 표시됩니다.
+ **작업 영역 왼쪽 상단에 있는 확대/축소 및 맞춤 컨트롤 사용** - 이러한 컨트롤을 사용하면 전체 작업 영역에 맞게 확대/축소하고 전체 화면 모드로 전환할 수 있습니다. 전체 쿼리 계획에 맞게 확대/축소면 작업 영역에서는 쿼리 계획을 가로 및 세로로 중앙에 맞춥니다.
+ **작업 영역 오른쪽 하단의 미니맵 사용** - 작업 영역 왼쪽 하단 모서리의 미니맵 컨트롤을 사용하여 작업 영역을 이동하거나 확대/축소할 수 있습니다.
+ ****스트림** 창에서 스트림 선택 **- **스트림** 창에서 스트림을 선택하면 작업 영역이 이동 및 확대/축소되어 선택한 스트림이 표시되고 **스트림 세부 정보** 창에 스트림에 대한 정보가 표시됩니다.
+ ****스트림 세부 정보** 창에서 단계 선택 **- **스트림 세부 정보** 창에서 단계를 선택하면 작업 영역이 이동 및 확대/축소되어 선택한 단계가 표시되고 **단계 세부 정보** 창에 단계에 대한 정보가 표시됩니다.

**참고**  
작업 영역 또는 다른 창에서 단계를 선택하면 작업 영역은 선택한 단계가 가장 잘 보이도록 확대/축소 및 이동을 시도합니다.  
작업 영역 또는 다른 창에서 스트림 또는 단계를 선택하면 작업 영역의 오른쪽 상단 컨트롤에서 **이동 및 확대/축소**를 선택한 경우에만 작업 영역이 해당 스트림 또는 단계로 확대/축소 및 이동됩니다. 풀다운에서 적절한 설정을 선택하여 이 동작을 이동 및 확대/축소, 이동만 또는 이동 없음으로 제한할 수 있습니다.  

![\[Dropdown menu showing pan and zoom options for workspace navigation control.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/metrics_qp_pan_zoom.png)


## 쿼리 프로파일러를 사용하여 쿼리 문제 해결
<a name="using-query-plan-profiler-troubleshooting"></a>

쿼리 문제를 해결하는 경우 하위 쿼리를 선택하여 **총 쿼리 시간 중 가장 높은 비율**을 사용하는 스트림을 결정할 수 있습니다. 이는 쿼리의 어떤 부분을 추가로 분석해야 하는지 빠르게 결정할 수 있는 방법입니다.

어떤 하위 쿼리가 가장 오래 걸리는지 확인한 후 해당 단계를 보고 어떤 조인 또는 스캔이 성능 저하를 유발할 수 있는지 확인하세요.

# 쿼리 및 데이터베이스 모니터링
<a name="metrics-enhanced-query-monitoring"></a>

이 문서에서는 Amazon Redshift 프로비저닝된 클러스터 또는 서버리스 작업 그룹과 이에 대해 실행되는 쿼리의 성능을 분석하는 AWS Management Console 기능인 쿼리 및 데이터베이스 모니터링 페이지를 설명합니다.

쿼리 및 데이터베이스 모니터링 페이지를 사용하여 다음 시나리오를 조사할 수 있습니다.
+ 지정된 기간 동안 데이터 웨어하우스 지표 모니터링
+ 쿼리가 데이터 웨어하우스의 전체 성능에 미치는 영향
+ 쿼리 실행 시간을 잠금 대기 시간, 컴파일 시간, 실행 시간과 같은 수명 주기 이벤트로 구분하여 확인
+ 지정된 기간 동안 가장 리소스 집약적인 쿼리를 실행하는 사용자
+ 패치 이벤트가 쿼리 성능에 미치는 영향 모니터링

**Topics**
+ [권한](#metrics-enhanced-query-monitoring-permissions)
+ [쿼리 및 데이터베이스 모니터링 콘솔](#metrics-enhanced-query-monitoring-console)

## 권한
<a name="metrics-enhanced-query-monitoring-permissions"></a>

콘솔에 액세스하는 데 사용하는 AWS 계정의 권한은 **쿼리 및 데이터베이스 모니터링** 페이지에 표시되는 쿼리에 영향을 줍니다. 기본적으로 자신의 쿼리만 볼 수 있습니다. 다른 사용자가 소유한 쿼리를 보려면 계정에 `SYS:MONITOR` 역할을 부여하세요. 사용자가 **쿼리 및 데이터베이스 모니터링** 페이지에서 실행 중인 쿼리를 종료하도록 허용하려면 사용자에게 `SYS:OPERATOR` 권한을 부여하세요.

Amazon Redshift Serverless 또는 프로비저닝됨에 대한 IAM 사용자 또는 역할에 `sys:monitor` 역할을 자동으로 할당하려면 다음 명령을 실행하세요.

```
create role monitor;
grant role sys:monitor to role monitor;
```

쿼리 모니터링에 사용되는 IAM 역할을 업데이트하려면 다음을 수행하세요.

1. **태그** 탭을 선택합니다.

1. **태그 관리**를 선택합니다.

1. **RedshiftDbRoles** 키와 **monitor** 값을 사용하여 태그를 추가합니다.

1. 변경 내용을 저장합니다.

사용자에게 데이터베이스 자격 증명을 추가하려면 다음 명령을 실행하세요.

```
grant role sys:monitor to <username>
```

GRANT 명령 사용에 대한 자세한 내용은 *Amazon Redshift 데이터베이스 개발자 안내서*의 [GRANT](https://docs.aws.amazon.com/redshift/latest/dg/r_GRANT.html)를 참조하세요.

쿼리 모니터링을 사용하려면 IAM 사용자에게 Amazon Redshift 데이터 플레인에 액세스할 수 있는 권한이 필요합니다. IAM 사용자의 권한 정책에 다음 권한이 있는지 확인해야 합니다.

```
{
    "Sid": "DataAPIPermissions",
    "Action": [
        "redshift-data:ExecuteStatement",
        "redshift-data:CancelStatement",
        "redshift-data:GetStatementResult",
        "redshift-data:DescribeStatement",
        "redshift-data:ListDatabases"
    ],
    "Effect": "Allow",
    "Resource": "arn:aws:redshift-serverless:us-west-2:123456789012:workgroup/01234567-89ab-cdef-0123-456789abcdef"
},
```

### IAM 자격 증명을 사용한 임시 자격 증명
<a name="metrics-enhanced-query-monitoring-permissions-temp-iam"></a>

이 옵션은 클러스터에 연결할 때만 사용할 수 있습니다. 이 방법을 사용하면 쿼리 및 데이터베이스 모니터링이 사용자 이름을 IAM ID에 매핑하고 IAM ID로 데이터베이스에 연결하기 위한 임시 암호를 생성합니다. 이 메서드를 사용하여 연결하는 사용자에게는 `redshift:GetClusterCredentialsWithIAM`에 대한 IAM 권한이 허용되어야 합니다. 사용자가 이 메서드를 사용하지 못하도록 하려면 IAM 사용자 또는 역할을 수정하여 이 권한을 거부합니다.

## 쿼리 및 데이터베이스 모니터링 콘솔
<a name="metrics-enhanced-query-monitoring-console"></a>

이 섹션에서는 쿼리 및 데이터베이스 모니터링 콘솔 페이지 사용에 대해 설명합니다.

쿼리 및 데이터베이스 모니터링 콘솔을 사용하여 데이터 웨어하우스의 성능 개요를 빠르게 확인할 수 있습니다. 시간 경과에 따른 데이터 웨어하우스의 성능을 모니터링하고 데이터 웨어하우스의 프로비저닝된 클러스터 또는 개별 쿼리의 성능을 조사하여 병목 현상과 기타 개선할 영역을 효과적으로 식별할 수 있습니다.

**쿼리 및 데이터베이스 모니터링** 페이지에는 다음과 같은 기능이 있습니다.
+ **보안 강화** - 다른 사용자의 쿼리를 모니터링하려면 높은 권한이 필요합니다. 자세한 내용은 [권한](#metrics-enhanced-query-monitoring-permissions) 섹션을 참조하세요.
+ **7일 쿼리 기록** - 7일간의 쿼리 기록에 대한 액세스를 보장합니다.
+ **쿼리 모니터링** - 사용자 쿼리 수준에서 프로비저닝된 클러스터 및 서버리스 작업 그룹의 쿼리를 모니터링할 수 있습니다.
+ **쿼리 추세 분석** - 지정된 기준과 일치하는 유사한 쿼리들의 성능을 비교할 수 있습니다.

쿼리 및 데이터베이스 모니터링 페이지에 액세스하려면 다음을 수행합니다.

1. [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)에서 Amazon Redshift에 로그인합니다.

1. 탐색 창에서 **쿼리 및 데이터베이스 모니터링**을 선택합니다.

**쿼리 및 데이터베이스 모니터링** 콘솔 페이지는 다음과 같이 나타납니다.

![\[Query and database monitoring dashboard showing data warehouse overview, performance summary, and profiler sections.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/metrics_eqm_homepage.png)


**쿼리 및 데이터베이스 모니터링** 페이지에는 다음과 같은 구성 요소가 있습니다.
+ **데이터 웨어하우스 개요** - 프로비저닝된 클러스터와 서버리스 작업 그룹의 평균 쿼리 성능을 모니터링합니다. 이 페이지에 있는 통계에서 스파이크 또는 활동량이 많은 기간을 조사하여 특정 클러스터 또는 작업 그룹의 성능 문제를 빠르게 확인할 수 있습니다.
+ **쿼리 성능 요약** - 특정 프로비저닝된 클러스터 또는 서버리스 작업 그룹의 평균 쿼리 성능을 모니터링합니다. **데이터 웨어하우스 개요** 목록에서 클러스터 또는 작업 그룹 중 하나를 클릭하여 **쿼리 성능 요약** 페이지에 액세스할 수도 있습니다.

**Topics**
+ [쿼리 성능 요약](#metrics-enhanced-query-monitoring-console-summary)
+ [쿼리 세부 정보](#metrics-enhanced-query-monitoring-console-query-details)
+ [쿼리 패턴](#metrics-enhanced-query-monitoring-console-query-pattern)

### 쿼리 성능 요약
<a name="metrics-enhanced-query-monitoring-console-summary"></a>

**쿼리 및 데이터베이스 모니터링** 페이지에서 **쿼리 성능 요약**을 선택하거나 **데이터 웨어하우스 개요** 페이지에서 클러스터 또는 작업 그룹을 선택하면 콘솔에 개별 프로비저닝된 클러스터 또는 서버리스 작업 그룹의 성능 요약이 표시됩니다.

![\[Query and database monitoring interface showing performance graph and query history for redshift-클러스터-1.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/metrics_eqm_clusterdetails.png)


이 페이지에는 다음과 같은 구성 요소가 있습니다.
+ **클러스터 또는 작업 그룹 드롭다운** - 분석하려는 클러스터 또는 작업 그룹을 선택합니다.
+ **데이터 웨어하우스 성능** - 이 창에는 지정된 기간 내 클러스터 또는 작업 그룹의 기록이 표시되며 쿼리의 각 단계에 소요된 시간이 나타납니다. 앞의 그래픽에서 1월 20일에 계획 및 실행 시간이 늘어나는 것과 같이 특정 쿼리 단계에서 스파이크가 나타나는 경우 이 정보를 사용하여 쿼리 성능과 관련된 문제를 식별할 수 있습니다. 표시되는 기본 기간은 지난 7일이지만 분석 요구 사항에 따라 기간을 조정할 수 있습니다.
+ **쿼리 기록** - 이 창에는 지정된 필터 내에서 실행된 모든 쿼리의 성능 기록이 표시됩니다. 이 정보를 사용하여 개별 쿼리의 성능 문제를 해결할 수 있습니다. 특정 쿼리를 추가로 분석하려면 이 그래프 또는 **데이터 웨어하우스 성능** 그래프에서 쿼리를 선택합니다.

  차트의 데이터 포인트 위로 마우스를 가져가면 팝업이 나타납니다. 이 팝업에는 해당 데이터 포인트에 대한 시간 지표의 분석 정보가 표시됩니다. 데이터 포인트에 쿼리 데이터가 포함된 경우 **드릴다운**을 선택하여 차트의 시간 범위를 데이터 포인트의 다음으로 작은 시간 단위로 업데이트할 수 있습니다. 이러한 시간 단위는 다음과 같습니다.
  + 일
  + 시간
  + 15분
  + 5분
  + 1분

  예를 들어 데이터 포인트에서 **드릴다운**을 선택하면 그래프 범위가 1일로 변경됩니다. **드릴다운**을 다시 선택하면 그래프 범위가 1시간으로 변경됩니다.
+ **쿼리 프로파일러** - 쿼리 성능을 모니터링하기 위한 그래픽 도구입니다. 자세한 내용은 [쿼리 프로파일러](using-query-plan-profiler.md) 섹션을 참조하세요.

### 쿼리 세부 정보
<a name="metrics-enhanced-query-monitoring-console-query-details"></a>

클러스터 또는 작업 그룹 세부 정보 페이지의 **데이터 웨어하우스 성능** 또는 **쿼리 기록** 창에서 쿼리를 선택하면 **쿼리 세부 정보** 페이지가 열립니다.

![\[Query details page showing query information, elapsed time breakdown, and SQL details.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/metrics_eqm_querydetails.png)


**쿼리 세부 정보** 페이지에 대한 자세한 내용은 [쿼리 세부 정보 페이지](using-query-plan-profiler.md#using-query-plan-profiler-ui-query-details) 섹션을 참조하세요.

### 쿼리 패턴
<a name="metrics-enhanced-query-monitoring-console-query-pattern"></a>

**쿼리 성능 요약** 페이지의 **쿼리 기록** 창에서 **쿼리 패턴 보기** 버튼을 선택하여 동일한 패턴의 쿼리에 대한 기록을 볼 수 있습니다. **쿼리 패턴** 페이지에는 지정한 SQL 문으로 검색된 지난 주의 모든 쿼리가 표시됩니다.

![\[Query pattern page showing performance trend graph and history table of queries.\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/metrics_eqm_querypattern.png)


**쿼리 패턴** 페이지에는 다음과 같은 구성 요소가 있습니다.
+ **쿼리 패턴** - 분석 중인 쿼리를 검색하는 SQL 문입니다.
+ **쿼리 성능 추세 분석** - 쿼리 패턴에서 선택된 모든 쿼리의 경과 시간을 보여주는 막대 그래프입니다. 결과는 일별로 그룹화됩니다.
+ **동일한 패턴의 쿼리 기록** - 쿼리 패턴에서 선택된 쿼리의 각 단계에 소요된 시간입니다.

**쿼리 패턴** 페이지에서는 다음과 같은 인사이트를 얻을 수 있습니다.
+ 매일 특정 시간에 실행되는 쿼리에 관한 추세
+ 데이터 웨어하우스에 대해 정기적으로 실행되는 쿼리의 실행 시간 급증

# Sys 뷰 기반 쿼리 및 데이터베이스 모니터링
<a name="metrics-sys-view-based-queries"></a>

이 문서에서는 Amazon Redshift 콘솔에서 쿼리의 구성 요소 및 성능을 분석하기 위한 도구인 쿼리 및 데이터베이스 모니터링 페이지에 데이터를 제공하는 `SYS` 뷰를 설명합니다. 쿼리 및 데이터베이스 모니터링 페이지에 대한 자세한 내용은 [쿼리 및 데이터베이스 모니터링](metrics-enhanced-query-monitoring.md) 섹션을 참조하세요.

**쿼리 및 데이터베이스 모니터링** 페이지에는 `SYS` 뷰에서 제공하는 정보를 표시하는 기능이 있습니다. 콘솔 뷰에는 그래픽 형식으로 쿼리의 실행 계획을 보여주는 쿼리 프로파일러가 포함되어 있습니다. `SYS` 기반 뷰로 전환하려면 다음 단계에 따라 새로운 **쿼리 및 데이터베이스 모니터링** 페이지에 대한 올바른 액세스 및 권한을 부여합니다.

**쿼리 및 데이터베이스 모니터링** 페이지의 `SYS` 기반 뷰에는 다음과 같은 기능이 있습니다.
+ **보안 강화** - 다른 사용자의 쿼리를 모니터링하려면 높은 권한이 필요합니다.
+ **7일 쿼리 기록** - 7일간의 쿼리 기록에 대한 액세스를 보장합니다.
+ **쿼리 프로파일러** - 쿼리 성능을 모니터링하기 위한 그래픽 도구입니다. 자세한 내용은 [쿼리 프로파일러](using-query-plan-profiler.md) 섹션을 참조하세요.

기본적으로 자신의 쿼리만 볼 수 있습니다. 다른 사용자가 소유한 쿼리를 보려면 계정에 `SYS:MONITOR` 역할을 부여하세요. 사용자가 실행 중인 쿼리를 종료하도록 허용하려면 사용자에게 `SYS:OPERATOR` 권한을 부여하세요.

모든 사용자가 소유한 쿼리를 보는 권한을 데이터베이스 사용자 또는 역할에 부여하려면 다음 명령을 실행하세요.

```
grant role sys:monitor to "IAM:role-name";
grant role sys:monitor to "IAM:user-name";
```

Amazon Redshift Serverless 또는 프로비저닝됨에 대한 IAM 사용자 또는 역할에 `sys:monitor` 역할을 자동으로 할당하려면 다음 명령을 실행하세요.

```
 create role monitor;
grant role sys:monitor to role monitor;
```

쿼리 모니터링에 사용되는 IAM 역할을 업데이트하려면 다음을 수행하세요.

1. **태그** 탭을 선택합니다.

1. **태그 관리**를 선택합니다.

1. **RedshiftDbRoles** 키와 **monitor** 값을 사용하여 태그를 추가합니다.

1. 변경 내용을 저장합니다.

사용자에게 데이터베이스 자격 증명을 추가하려면 다음 명령을 실행하세요.

```
grant role sys:monitor to <username>
```

## 권한
<a name="metrics-sbq-permissions"></a>

쿼리 모니터링을 사용하려면 IAM 사용자에게 Amazon Redshift 데이터 플레인에 액세스할 수 있는 권한이 필요합니다. IAM 사용자의 권한 정책에 다음 권한이 있는지 확인해야 합니다.

```
{
    "Sid": "DataAPIPermissions",
    "Action": [
        "redshift-data:ExecuteStatement",
        "redshift-data:CancelStatement",
        "redshift-data:GetStatementResult",
        "redshift-data:DescribeStatement",
        "redshift-data:ListDatabases"
    ],
    "Effect": "Allow",
    "Resource": "arn:aws:redshift-serverless:us-west-2:123456789012:workgroup/01234567-89ab-cdef-0123-456789abcdef"
},
```

## 데이터베이스에 연결
<a name="metrics-sbq-connect"></a>

향상된 쿼리 모니터링 기능을 사용하기 전에 먼저 `SYS` 뷰 기반 정보에 액세스하기 위해 데이터베이스에 연결해야 합니다. 데이터베이스에 연결하려면 다음 자격 증명 중 하나를 사용합니다.
+ 사용자 이름 및 암호
+ IAM 역할과 연결된 임시 자격 증명
+ 데이터베이스 사용자

향상된 쿼리 모니터링을 사용할 때 다음 사항에 유의하세요.
+ 프로비저닝된 클러스터의 경우 향상된 쿼리 모니터링에서 `SYS` 뷰를 사용하기 때문에 데이터베이스에 연결해야 합니다. 이러한 뷰는 보안이 강화되어 있으며 다른 사용자가 소유한 쿼리에 대한 데이터에 액세스하기 위해 승격된 권한이 필요합니다.
+ `SYS` 뷰 기반 쿼리 및 데이터베이스 모니터링 페이지를 사용할 대 사용자 계정에 데이터베이스 슈퍼 사용자 역할이 없는 경우 자신의 `user_id`만 표시됩니다. 사용자 이름은 수퍼유저가 아닌 사용자에게 숨겨집니다.
+ Sys 뷰 기반 쿼리 및 데이터베이스 모니터링 페이지 경험의 일부로 쿼리 실행 프로세스 ID(`p_id`)가 열 제목 `session_id` 아래에 나타납니다.