

# 용량 사용량 제어
<a name="capacity-management-control-capacity-usage"></a>

최대 또는 최소 DPU 수에 대한 제어를 설정하여 Athena가 쿼리에 할당하는 DPU 수를 제어할 수 있습니다. 모든 쿼리에 대한 기준 제어를 설정하도록 작업 그룹 수준에서 이를 구성하거나 세분화된 제어를 위해 개별 쿼리 수준에서 구성할 수 있습니다. 그러면 쿼리 성능, 워크로드 동시성 및 비용을 직접 제어할 수 있습니다.
+ 최대 DPU 수를 설정하면 쿼리는 사용자가 지정한 것보다 더 많은 용량을 소비하지 못합니다. 따라서 비용 및 워크로드 동시성 제어가 간단해집니다. 예를 들어 용량 예약에 200개의 DPU가 있는 경우 쿼리당 최대 DPU 수를 8로 설정하면 25개의 쿼리를 동시에 실행할 수 있습니다. 예약을 400개의 DPU로 늘리면 50개의 쿼리를 동시에 실행할 수 있습니다.
+ 최소 DPU 수를 설정하면 원하는 최소 DPU 수로 쿼리가 실행되도록 보장합니다. 이는 쿼리에 대한 일반적인 용량 사용 프로파일을 미리 알고 있는 경우에 유용합니다.

**참고**  
DPU 사용 제어는 용량 예약으로 실행된 쿼리에만 적용됩니다.

**참고**  
모든 쿼리에 대해 동일한 수의 DPU를 사용하려면 최소 및 최대 DPU 수에 동일한 값을 사용합니다.

## 작업 그룹 수준에서 DPU 제어 설정
<a name="capacity-management-set-dpu-controls-workgroup-level"></a>

선택한 작업 그룹에 대한 워크로드 성능을 제어하고 비용을 관리하려면 작업 그룹 수준에서 DPU 제어를 설정합니다. 작업 그룹 수준에서 설정된 DPU 제어는 **클라이언트 측 설정 재정의**가 활성화된 경우 모든 쿼리에 적용됩니다.

**콘솔을 사용하여 DPU 제어를 설정하는 방법**

1. [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home)에서 Athena 콘솔을 엽니다.

1. 탐색 창에서 **작업 그룹(Workgroups)**을 선택합니다.

1. 용량 예약을 사용하는 작업 그룹을 선택하세요.

1. **실행 제어** 탭에서 **제어 편집**을 선택하세요.

1. 다음을 구성합니다.
   + **쿼리당 최소 DPU 수**에 4\~124 사이의 값(증분 단위: 4)을 입력하세요.
   + **쿼리당 최대 DPU 수**에 4\~124 사이의 값(증분 단위: 4)을 입력하세요.

1. **저장**을 선택합니다.

1. (선택 사항) **클라이언트 측 설정 재정의**를 선택하여 이러한 설정을 적용하고 쿼리 수준 DPU 구성을 무시하세요.

**AWS CLI를 사용하여 DPU 제어를 설정하는 방법**
+ `update-work-group` 명령을 사용하여 작업 그룹에 대한 DPU 제어를 설정합니다.

  ```
  aws athena update-work-group \
    --work-group "my_workgroup" \
    --configuration-updates '{
          "EngineConfiguration": {
              "Classifications": [
                  {
                      "Name": "athena-query-engine-properties",
                      "Properties": {
                          "max-dpu-count" : "24",
                          "min-dpu-count" : "12"
                          }
                      }
                  ]
          }}'
  ```

  `EnforceWorkGroupConfiguration`을 `true`로 설정하면 [StartQueryExecution](https://docs.aws.amazon.com/athena/latest/APIReference/API_StartQueryExecution.html)을 통해 제출할 때 작업 그룹 설정이 쿼리 수준에서 지정된 모든 DPU 제어를 재정의합니다. 이를 통해 작업 그룹의 모든 쿼리에서 일관된 리소스 할당이 보장됩니다.

## 개별 쿼리를 사용하여 DPU 제어 설정
<a name="capacity-management-set-dpu-controls-individual-queries"></a>

리소스 요구 사항이 서로 다른 쿼리에서 세분화된 제어가 필요한 경우 쿼리 수준 DPU 제어를 설정합니다. 쿼리 수준 DPU 제어는 작업 그룹에 **클라이언트 측 설정 재정의**가 활성화되어 있지 않은 한 작업 그룹 수준 설정보다 우선합니다.

**콘솔을 사용하여 쿼리에 대한 DPU 제어를 설정하는 방법**

1. [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home)에서 Athena 콘솔을 엽니다.

1. 탐색 창에서 **쿼리 편집기**를 선택합니다.

1. 용량 예약을 사용하는 작업 그룹을 선택하세요.

1. **쿼리 설정** 탭을 선택하세요.

1. **실행 제어** 섹션에서 **제어 편집**을 선택하세요.

1. 다음을 구성합니다.
   + **쿼리당 최소 DPU 수**에 4\~124 사이의 값(증분 단위: 4)을 입력하세요.
   + **쿼리당 최대 DPU 수**에 4\~124 사이의 값(증분 단위: 4)을 입력하세요.

1. **저장**을 선택합니다.

**AWS CLI를 사용하여 쿼리에 대한 DPU 제어를 설정하는 방법**
+ `engine-configuration` 파라미터와 함께 `start-query-execution` 명령을 사용하세요.

  ```
  aws athena start-query-execution \
    --query-string "SELECT * FROM my_table LIMIT 10" \
    --work-group "my_workgroup" \
    --engine-configuration '{
      "Classifications": [ {
          "Name": "athena-query-engine-properties",
              "Properties": {
                  "max-dpu-count" : "32",
                  "min-dpu-count" : "8"
                  }
              }
          ]}'
  ```

쿼리 수준 및 작업 그룹 수준 DPU 설정 간 관계는 다음과 같이 작업 그룹 구성에 따라 다릅니다.
+ **클라이언트 측 설정 재정의**가 활성화되면 모든 쿼리 수준 설정보다 작업 그룹 수준 DPU 제어가 우선합니다. 이를 통해 지정된 작업 그룹의 모든 쿼리에 대해 일관된 리소스 사용이 보장됩니다.
+ **클라이언트 측 설정 재정의**가 활성화되지 않은 경우 쿼리 수준 DPU 제어가 작업 그룹 수준 설정보다 우선합니다. 이를 통해 개별 쿼리를 유연하게 최적화할 수 있습니다.

어느 수준에서든 DPU 제어를 지정하지 않으면 Athena는 쿼리 복잡성에 따라 용량을 자동으로 할당합니다.

**참고**  
DDL 쿼리의 경우 최소 DPU 수의 최댓값은 4입니다. DDL 쿼리의 최솟값을 높게 설정하면 오류가 발생합니다.

## DPU 사용량 모니터링
<a name="capacity-management-monitor-dpu-usage"></a>

쿼리가 완료되면 DPU 사용량을 볼 수 있습니다. Athena는 콘솔, API 작업 및 CloudWatch를 통해 DPU 사용 지표를 제공합니다.

**콘솔에서 DPU 소비를 보는 방법**

1. [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home)에서 Athena 콘솔을 엽니다.

1. 탐색 창에서 **쿼리 편집기**를 선택합니다.

1. 쿼리가 완료되면 쿼리 결과 컨테이너에서 **소비된 DPU 수** 값을 확인하세요.

1. 과거 쿼리에 대한 DPU 소비를 보는 방법:

   1. 탐색 창에서 **최근 쿼리**를 선택하세요.

   1. 아직 표시되지 않은 경우 설정 아이콘을 선택하여 **소비된 DPU 수** 열을 테이블에 추가하세요.

   1. 완료된 각 쿼리에 대한 DPU 소비를 검토하세요.

1. 선택적으로 **쿼리 편집기**에서 **쿼리 통계** 탭을 선택하고 **소비된 DPU 수**를 검토하세요.

**API를 사용하여 DPU 소비를 검색하는 방법**

1. 다음 API 작업을 사용하여 프로그래밍 방식으로 DPU 소비를 검색하세요.
   + `GetQueryExecution` - 특정 쿼리에 대한 실행 세부 정보 반환
   + `BatchGetQueryExecution` - 여러 쿼리에 대한 실행 세부 정보 반환

1. AWS CLI 사용 예시:

   ```
   aws athena get-query-execution \
     --query-execution-id "123e4567-e89b-12d3-a456-426614174000"
   ```

   응답에서 `Statistics` 객체에 `DpuCount` 필드가 포함됩니다.

   ```
   {
     "QueryExecution": {
       "Statistics": {
         "DpuCount": 8
       }
     }
   }
   ```

**CloudWatch를 사용하여 DPU 사용량을 모니터링하는 방법**
+ Athena는 용량 사용률 및 기타 성능 데이터를 모니터링하는 데 도움이 되는 쿼리 관련 지표를 CloudWatch에 게시합니다. 자세한 내용은 [CloudWatch를 사용하여 Athena 쿼리 지표 모니터링](query-metrics-viewing.md)를 참조하세요.