

# 작업 그룹을 사용하여 쿼리 액세스 및 비용 제어
<a name="workgroups-manage-queries-control-costs"></a>

Athena 작업 그룹을 사용하여 워크로드를 분리하고, 팀 액세스를 제어하고, 구성을 적용하고, 쿼리 지표를 추적하여 비용을 제어할 수 있습니다.

**워크로드 분리**  
작업 그룹을 사용하여 워크로드를 분리할 수 있습니다. 예를 들어, 보고서 생성과 같은 자동화된 예약 애플리케이션용으로 한 개, 분석가의 임시 사용을 위해 또 다른 한 개, 즉 두 개의 작업 그룹을 만들 수 있습니다.

**팀별 액세스 제어**  
작업 그룹은 IAM 리소스 역할을 하기 때문에 리소스 수준 자격 증명 기반 정책을 사용하여 특정 작업 그룹에 액세스하고 쿼리를 실행할 수 있는 사용자를 제어할 수 있습니다. 조직에서 서로 다른 두 팀의 쿼리를 분리하려면 각 팀에 대해 별도의 작업 그룹을 생성할 수 있습니다. 각 작업 그룹에는 계정의 모든 쿼리가 아닌 해당 작업 그룹의 쿼리에 대한 자체 쿼리 기록 및 저장된 쿼리 목록이 있습니다. 자세한 내용은 [IAM 정책을 사용하여 작업 그룹 액세스 제어](workgroups-iam-policy.md) 섹션을 참조하세요.

**구성 적용**  
선택적으로 작업 그룹에서 실행되는 모든 쿼리에 동일한 작업 그룹 전역 설정을 적용할 수 있습니다. 이러한 설정에는 Amazon S3 쿼리 결과 위치, 예상 버킷 소유자, 암호화 및 쿼리 결과 버킷에 기록된 객체의 제어가 포함됩니다. 자세한 내용은 [Override client-side settings(클라이언트 측 설정 재정의)](workgroups-settings-override.md) 섹션을 참조하세요.

**쿼리 지표, 쿼리 이벤트를 추적하여 비용 제어**  
각 Athena 작업 그룹에 대한 쿼리 지표, 쿼리 이벤트를 추적하여 비용을 제어하려면 다음 기능을 사용할 수 있습니다.
+ **쿼리 지표 게시** - 작업 그룹의 쿼리 지표를 CloudWatch에 게시합니다. Athena 콘솔에서 작업 그룹 각각에 대해 쿼리 지표를 볼 수 있습니다. CloudWatch에서 사용자 지정 대시보드를 생성하고, 이러한 지표에 대한 임계값과 경보를 설정할 수 있습니다. 자세한 내용은 [Athena에서 CloudWatch 쿼리 지표 활성화](athena-cloudwatch-metrics-enable.md) 및 [CloudWatch를 사용하여 Athena 쿼리 지표 모니터링](query-metrics-viewing.md)(을)를 참조하세요.
+ **Athena 사용량 지표 모니터링** - CloudWatch 그래프 및 대시보드를 통해 현재 서비스 사용량을 표시하여 계정이 리소스를 어떻게 사용하는지 확인합니다. 자세한 내용은 [CloudWatch를 사용하여 Athena 사용량 지표 모니터링](monitoring-athena-usage-metrics.md) 섹션을 참조하세요.
+ **쿼리 이벤트 모니터링** - Amazon EventBridge를 사용하여 쿼리의 상태에 대한 실시간 알림을 받습니다. 자세한 내용은 [EventBridge를 사용하여 Athena 쿼리 이벤트 모니터링](athena-events.md) 섹션을 참조하세요.
+ **데이터 사용량 제어 생성** - Athena에서는 쿼리당 및 작업 그룹당 데이터 사용량 제어를 구성할 수 있습니다. Athena는 데이터 사용량이 지정된 임계값을 초과하면 쿼리를 취소하거나 작업 그룹 임계값을 초과하면 Amazon SNS 경보를 활성화합니다. 자세한 내용은 [쿼리당 및 작업 그룹당 데이터 사용량 제어 구성](workgroups-setting-control-limits-cloudwatch.md) 섹션을 참조하세요.
+ **비용 할당 태그 사용** - Billing and Cost Management 콘솔을 사용하여 작업 그룹에 비용 할당 태그를 지정할 수 있습니다. 작업 그룹에서의 쿼리 실행과 관련된 비용은 비용 및 사용 보고서에 해당 비용 할당 태그와 함께 나타납니다. 자세한 내용은 *AWS Billing 사용 설명서*에서 [사용자 정의 비용 할당 태그 사용](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/custom-tags.html)을 참조하세요.
+ **용량 예약 사용** - 비용을 추가로 제어하기 위해 사용자가 지정한 데이터 처리 장치 수로 용량 예약을 생성하고 예약에 하나 이상의 작업 그룹을 추가할 수 있습니다. 자세한 내용은 [쿼리 처리 용량 관리](capacity-management.md) 섹션을 참조하세요.

Amazon Athena 작업 그룹을 사용하여 워크로드를 분리하고, 사용자 액세스를 제어하고, 쿼리 사용량 및 비용을 관리하는 방법에 대한 자세한 내용은 AWS 빅 데이터 블로그 게시물 [Amazon Athena 작업 그룹을 사용하여 쿼리 분리 및 비용 관리](https://aws.amazon.com/blogs/big-data/separating-queries-and-managing-costs-using-amazon-athena-workgroups/)를 참조하세요.

**참고**  
이제 Amazon SageMaker Unified Studio(미리 보기) 내에서 Amazon Athena 리소스에 액세스할 수 있어 조직의 데이터에 액세스하고 최상의 도구로 작업하는 데 도움이 됩니다. 저장된 쿼리를 Athena 작업 그룹에서 SageMaker Unified Studio 프로젝트로 마이그레이션하고, 기존 Athena 작업 그룹으로 프로젝트를 구성하고, IAM 역할 업데이트를 통해 필요한 권한을 유지할 수 있습니다. 자세한 내용은 [ Amazon Athena 리소스를 Amazon SageMaker Unified Studio로 마이그레이션(미리 보기)](https://github.com/aws/Unified-Studio-for-Amazon-Sagemaker/tree/main/migration/athena)을 참조하세요.

## 고려 사항 및 제한 사항
<a name="workgroups-considerations-limitations"></a>

Athena에서 작업 그룹을 사용할 때는 다음 사항을 유의해야 합니다.
+ 각 계정에는 기본 작업 그룹이 있습니다. 작업 그룹을 생성하지 않은 경우 기본적으로 해당 계정의 모든 쿼리는 다음과 같이 기본 작업 그룹에서 실행됩니다. 기본 작업 그룹은 삭제할 수 없습니다. 기본 권한은 모든 인증된 사용자가 이 작업 그룹에 액세스할 수 있도록 허용합니다.
+ 작업 그룹에 액세스할 수 있는 경우 작업 그룹의 설정, 지표, 데이터 사용량 제어 한도를 볼 수 있습니다. 추가 권한으로 설정 및 데이터 사용 제어 제한을 편집할 수 있습니다.
+ 쿼리를 실행하면 현재 작업 그룹에서 실행됩니다. API 작업, 명령줄 인터페이스, JDBC 드라이버 또는 ODBC 드라이버를 사용하여 클라이언트 애플리케이션을 통해 콘솔의 작업 그룹 컨텍스트에서 쿼리를 실행할 수 있습니다.
+ Athena 콘솔 쿼리 편집기에서 각 작업 그룹 내에 쿼리 탭을 최대 10개까지 열 수 있습니다. 작업 그룹 간에 전환할 경우 쿼리 탭에는 최대 3개의 작업 그룹이 열린 채로 유지됩니다.
+ 계정에서 AWS 리전당 최대 1,000개의 작업 그룹을 생성할 수 있습니다.
+ 작업 그룹을 비활성화할 수 있습니다. 작업 그룹을 비활성화하면 다시 활성화할 때까지는 해당 작업 그룹에서 쿼리를 실행할 수 없습니다.
+ Athena는 저장된 쿼리가 포함된 작업 그룹을 삭제하려고 하면 경고를 표시합니다. 다른 사용자가 액세스할 수 있는 작업 그룹을 삭제하기 전에 해당 사용자가 다른 작업 그룹에 대해 쿼리를 실행하는 데 사용할 수 있는 액세스 권한이 있는지 확인하세요.

**Topics**
+ [고려 사항 및 제한 사항](#workgroups-considerations-limitations)
+ [작업 그룹 만들기](creating-workgroups.md)
+ [작업 그룹 관리](workgroups-create-update-delete.md)
+ [CloudWatch 및 EventBridge를 사용하여 쿼리 모니터링](workgroups-control-limits.md)
+ [Athena 작업 그룹 API 사용](workgroups-api-list.md)
+ [작업 그룹 문제 해결](workgroups-troubleshooting.md)

# 작업 그룹 만들기
<a name="creating-workgroups"></a>

작업 그룹을 만들려면 `CreateWorkgroup` API 작업에 대한 권한이 필요합니다. [작업 그룹 및 태그에 대한 액세스 구성](workgroups-access.md) 및 [IAM 정책을 사용하여 작업 그룹 액세스 제어](workgroups-iam-policy.md) 섹션을 참조하세요. 태그를 추가할 경우 `TagResource`에 대한 권한도 추가해야 합니다. [작업 그룹에 대한 태그 정책 예제](tags-access-control.md#tag-policy-examples-workgroups)을(를) 참조하세요.

다음 절차는 Athena 콘솔을 사용하여 작업 그룹을 생성하는 방법을 보여줍니다. Athena API를 사용하여 작업 그룹을 생성하려면 [CreateWorkGroup](https://docs.aws.amazon.com/athena/latest/APIReference/API_CreateWorkGroup.html)을 참조하세요.

**Athena 콘솔에서 작업 그룹을 생성하려면**

1.  생성할 작업 그룹을 결정합니다. 몇 가지 고려해야 할 요소는 다음과 같습니다.
   + 각 작업 그룹에서 쿼리를 실행할 수 있는 사용자 및 작업 구성을 소유하는 사용자. IAM 정책을 사용하여 작업 그룹 권한을 적용합니다. 자세한 내용은 [IAM 정책을 사용하여 작업 그룹 액세스 제어](workgroups-iam-policy.md) 섹션을 참조하세요.
   + Amazon S3에서 작업 그룹의 쿼리 결과에 사용할 위치. 작업 그룹의 모든 사용자가 이 위치에 액세스할 수 있어야 합니다.
   + 작업 그룹 쿼리 결과를 암호화해야 하는지 여부. 암호화는 쿼리별이 아니라 작업 그룹별로 수행되므로 암호화된 쿼리 결과와 암호화되지 않은 쿼리 결과에 대해 별도의 작업 그룹을 생성해야 합니다. 자세한 내용은 [Amazon S3에 저장된 Athena 쿼리 결과 암호화](encrypting-query-results-stored-in-s3.md) 섹션을 참조하세요.

1. 콘솔 탐색 창이 표시되지 않으면 왼쪽의 확장 메뉴를 선택합니다.  
![\[확장 메뉴를 선택합니다.\]](http://docs.aws.amazon.com/ko_kr/athena/latest/ug/images/nav-pane-expansion.png)

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

1. **작업 그룹** 페이지에서 **작업 그룹 생성**을 선택합니다.

1. **작업 그룹 생성(Create workgroup)** 페이지에서 다음과 같이 필드에 값을 입력합니다.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/athena/latest/ug/creating-workgroups.html)

1. **작업 그룹 생성**을 선택합니다. **작업 그룹(Workgroups)** 페이지의 목록에 해당 작업 그룹이 나타납니다.

   쿼리 편집기에서 Athena는 콘솔 오른쪽 상단의 **작업 그룹** 옵션에 현재 작업 그룹을 표시합니다. 이 옵션을 사용하여 작업 그룹을 전환할 수 있습니다. 쿼리를 실행하면 현재 작업 그룹에서 실행됩니다.

1. 사용자 그룹 또는 역할에 대해 작업 그룹에 대한 액세스를 허용하는 IAM 정책을 생성합니다. 이 정책은 작업 그룹 멤버십과 `workgroup` 리소스에 대한 작업에 대한 액세스를 설정합니다. 자세한 내용은 [IAM 정책을 사용하여 작업 그룹 액세스 제어](workgroups-iam-policy.md) 섹션을 참조하세요. JSON 정책 예제는 [작업 그룹 및 태그에 대한 액세스 구성](workgroups-access.md) 단원을 참조하세요.

1. (선택 사항) 클라이언트 측 설정 재정의 옵션 때문에 작업 그룹 전체 암호화가 적용되지 않는 경우 Amazon S3에서 작업 그룹의 모든 쿼리 결과에 대해 최소 수준의 암호화를 구성합니다. 이 기능을 사용하면 쿼리 결과가 암호화되지 않은 상태로 Amazon S3 버킷에 저장되지 않도록 합니다. 자세한 내용은 [작업 그룹에 대한 최소 암호화 구성](workgroups-minimum-encryption.md) 섹션을 참조하세요.

1. (선택 사항) Amazon CloudWatch 및 Amazon EventBridge를 사용하여 작업 그룹의 쿼리를 모니터링하고 비용을 제어할 수 있습니다. 자세한 내용은 [CloudWatch 및 EventBridge를 사용하여 쿼리 모니터링 및 비용 제어](workgroups-control-limits.md) 섹션을 참조하세요.

1. (선택 사항) Billing and Cost Management 콘솔을 사용하여 작업 그룹에 비용 할당 태그를 지정합니다. 자세한 내용은 *AWS Billing 사용 설명서*에서 [사용자 정의 비용 할당 태그 사용](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/custom-tags.html)을 참조하세요.

1. (선택 사항) 작업 그룹에서 쿼리 전용 처리 용량을 확보하려면 작업 그룹을 용량 예약에 추가합니다. 하나 이상의 작업 그룹을 예약에 할당할 수 있습니다. 자세한 내용은 [쿼리 처리 용량 관리](capacity-management.md) 섹션을 참조하세요.

# Override client-side settings(클라이언트 측 설정 재정의)
<a name="workgroups-settings-override"></a>

작업 그룹을 생성하거나 편집할 때 **클라이언트측 설정 재정의** 옵션을 선택할 수 있습니다. 이 옵션은 기본적으로 설정되어 있지 않습니다. 이 필드의 선택 여부에 따라 Athena는 다음을 수행합니다.
+ **클라이언트 측 설정 재정의**를 선택하지 않으면 작업 그룹 설정이 클라이언트 수준에서 적용되지 않습니다. 작업 그룹에 대해 클라이언트 측 설정 재정의 옵션이 선택되지 않으면 Athena는 이 작업 그룹에서 실행하는 모든 쿼리에 대해 클라이언트 설정(쿼리 결과 위치 설정, 예상되는 버킷 소유자, 암호화, 쿼리 결과 버킷에 쓴 객체 제어 포함)을 사용합니다. 각 사용자는 콘솔의 **설정** 메뉴에서 자체 설정을 지정할 수 있습니다. 클라이언트 측 설정이 설정되지 않은 경우 작업 그룹 전체 설정이 적용됩니다. AWS CLI, API 작업 또는 JDBC 드라이버와 ODBC 드라이버를 사용하여 클라이언트 측 설정을 재정의하지 않는 작업 그룹에서 쿼리를 실행하는 경우 쿼리는 쿼리에 지정된 설정을 사용합니다.
+ **클라이언트 측 설정 재정의**를 선택하면 작업 그룹 설정이 작업 그룹의 모든 클라이언트에 대해 작업 그룹 수준에서 적용됩니다. 작업 그룹에 대해 클라이언트 측 설정 재정의 옵션이 선택되면 Athena는 이 작업 그룹에서 실행하는 모든 쿼리에 대해 작업 그룹 설정(쿼리 결과 위치 설정, 예상되는 버킷 소유자, 암호화, 쿼리 결과 버킷에 쓴 객체 제어 포함)을 사용합니다. 작업 그룹 설정은 콘솔, API 작업 또는 JDBC 드라이버나 ODBC 드라이버를 사용할 때 쿼리에 지정하는 모든 클라이언트 측 설정을 재정의합니다. 클라이언트 측 설정을 재정의하도록 작업 그룹을 설정한 후 드라이버 또는 API에서 클라이언트 측 설정을 생략할 수 있습니다.

  클라이언트 측 설정을 재정의하는 경우 다음에 사용자 또는 작업 그룹 사용자가 Athena 콘솔을 열 때 Athena는 작업 그룹의 쿼리가 작업 그룹의 설정을 사용함을 알리고 이 변경 사항을 승인하라는 메시지를 표시합니다.
**참고**  
클라이언트 측 설정을 재정의하면 임의의 Amazon S3 버킷의 결과 가용성을 기반으로 하는 사용자 지정 자동화가 중단될 수 있으므로 재정의하기 전에 최종 사용자에게 알리는 것이 좋습니다.
**중요**  
API 작업, AWS CLI 또는 JDBC 드라이버와 ODBC 드라이버를 사용하여 클라이언트 측 설정을 재정의하는 작업 그룹에서 쿼리를 실행하는 경우 쿼리에서 클라이언트 측 설정을 생략하거나 작업 그룹 설정에 맞게 업데이트해야 합니다.  
쿼리에서 클라이언트 측 설정을 지정하지만 설정을 재정의하는 작업 그룹에서 실행하면 쿼리는 실행되지만 작업 그룹 설정이 사용됩니다. 작업 그룹 설정 보기에 대한 자세한 내용은 [작업 그룹의 세부 정보 보기](viewing-details-workgroups.md) 섹션을 참조하세요.

# 작업 그룹 관리
<a name="workgroups-create-update-delete"></a>

Athena 콘솔([https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home))에서 다음 작업을 수행할 수 있습니다.




| 문 | 설명 | 
| --- | --- | 
|  [작업 그룹 만들기](creating-workgroups.md)  |  새로운 작업 그룹을 만듭니다.  | 
| [작업 그룹의 세부 정보 보기](viewing-details-workgroups.md) | 이름, 설명, 데이터 사용 제한, 쿼리 결과 위치, 예상 쿼리 결과 버킷 소유자 및 암호화와 같은 작업 그룹의 세부 정보를 봅니다. Override client-side settings(클라이언트 측 설정 재정의)를 선택한 경우 이 작업 그룹에서 해당 설정을 강제 적용할지 여부를 지정할 수도 있습니다. | 
|  [쿼리용 작업 그룹 지정](specify-wkgroup-to-athena-in-which-to-run-queries.md)  |  쿼리를 실행하려면 먼저 Athena에서 사용할 작업 그룹을 지정해야 합니다. 작업 그룹에 대해 사용 권한이 있어야 합니다.  | 
|  [작업 그룹 전환](switching-workgroups.md)  |  액세스 권한을 가진 작업 그룹 간에 전환합니다.  | 
|  [작업 그룹 편집](editing-workgroups.md)  | 작업 그룹을 편집하고 설정을 편집합니다. 작업 그룹의 이름은 변경할 수 없지만 동일한 설정으로 다른 이름을 사용하여 새 작업 그룹을 만들 수 있습니다. | 
|  [작업 그룹 활성화 또는 비활성화](workgroups-enabled-disabled.md)  |  작업 그룹을 활성화거나 비활성화합니다. 작업 그룹이 비활성화된 경우 사용자가 쿼리를 실행하거나 새로운 이름 지정 쿼리를 만들 수 없습니다. 액세스 권한이 있는 경우 지표, 데이터 사용량 한도 제어, 작업 그룹의 설정, 쿼리 기록 및 저장된 쿼리는 계속 볼 수 있습니다.  | 
|  [작업 그룹 간에 저장된 쿼리 복사](copy-a-query-between-workgroups.md)  | 작업 그룹 간에 저장된 쿼리를 복사합니다. 예를 들어 미리 보기 작업 그룹에서 쿼리를 생성했는데 미리 보기가 아닌 작업 그룹에서도 사용하도록 하려 할 경우에 이 기능이 필요할 수 있습니다. | 
|  [작업 그룹 삭제](deleting-workgroups.md)  |  작업 그룹을 삭제합니다. 작업 그룹을 삭제할 경우 쿼리 기록, 저장된 쿼리, 작업 그룹의 설정, 쿼리당 데이터 한도 제어 등도 삭제됩니다. 작업 그룹 전역의 데이터 한도 제어는 CloudWatch에서 유지되며 개별적으로 삭제할 수 있습니다. 기본 작업 그룹은 삭제할 수 없습니다.  | 
| [IAM 정책을 사용하여 작업 그룹 액세스 제어](workgroups-iam-policy.md) | IAM 정책을 사용하여 작업 그룹 액세스를 제어합니다. 작업 그룹 정책 예제는 [작업 그룹 정책 예제](example-policies-workgroup.md) 섹션을 참조하세요. | 
| [IAM Identity Center 인증을 사용하는 Athena 작업 그룹 생성](workgroups-identity-center.md) | Athena에서 IAM Identity Center ID를 사용하려면 IAM Identity Center 지원 작업 그룹을 생성해야 합니다. 작업 그룹을 생성한 후 IAM Identity Center 콘솔 또는 API를 사용하여 작업 그룹에 IAM Identity Center 사용자 또는 그룹을 할당할 수 있습니다. | 
| [작업 그룹에 대한 최소 암호화 구성](workgroups-minimum-encryption.md) | Amazon S3에서 작업 그룹의 모든 쿼리 결과에 대해 최소 수준의 암호화를 적용합니다. 이 기능을 사용하여 쿼리 결과가 암호화되지 않은 상태로 Amazon S3 버킷에 저장되지 않도록 합니다. | 

# 작업 그룹의 세부 정보 보기
<a name="viewing-details-workgroups"></a>

각 작업 그룹에 대해 해당 세부 정보를 볼 수 있습니다. 세부 정보에는 작업 그룹의 이름, 설명, 사용 설정 또는 사용 중지 여부 및 작업 그룹에서 실행되는 쿼리에 사용되는 설정(쿼리 결과 위치 및 암호화 구성 등)이 표시됩니다. 작업 그룹에 데이터 사용 한도가 있을 경우 이 설정도 표시됩니다.

**작업 그룹의 세부 정보를 보려면**

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

1. **작업 그룹(Workgroups)** 페이지에서 보려는 작업 그룹의 링크를 선택합니다. 작업 그룹에 대한 **개요 세부 정보(Overview Details)** 페이지가 표시됩니다.

# 쿼리용 작업 그룹 지정
<a name="specify-wkgroup-to-athena-in-which-to-run-queries"></a>

사용할 작업 그룹을 지정하려면 작업 그룹에 대한 권한이 있어야 합니다.

**사용할 작업 그룹 지정**

1. 사용하려는 작업 그룹에서 쿼리를 실행할 수 있는 권한이 있는지 확인합니다. 자세한 내용은 [IAM 정책을 사용하여 작업 그룹 액세스 제어](workgroups-iam-policy.md) 섹션을 참조하세요.

1.  작업 그룹을 지정하려면 다음 옵션 중 하나를 사용합니다.
   + Athena 콘솔을 사용하는 경우 [작업 그룹을 전환](switching-workgroups.md)하여 작업 그룹을 설정합니다.
   + Athena API 작업을 사용할 경우 API 작업에 작업 그룹 이름을 지정합니다. 예를 들어 다음과 같이 [StartQueryExecution](https://docs.aws.amazon.com/athena/latest/APIReference/API_StartQueryExecution.html)에 작업 그룹 이름을 설정할 수 있습니다.

     ```
     StartQueryExecutionRequest startQueryExecutionRequest = new StartQueryExecutionRequest()
                   .withQueryString(ExampleConstants.ATHENA_SAMPLE_QUERY)
                   .withQueryExecutionContext(queryExecutionContext)
                   .withWorkGroup(WorkgroupName)
     ```
   + JDBC 또는 ODBC 드라이버를 사용할 경우 `Workgroup` 구성 파라미터를 사용하여 연결 문자열에 작업 그룹 이름을 설정합니다. 드라이버는 작업 그룹 이름을 Athena에 전달합니다. 다음 예제에서와 같이 연결 문자열에 작업 그룹 파라미터를 지정합니다.

     ```
     jdbc:awsathena://AwsRegion=<AWSREGION>;UID=<ACCESSKEY>;
     PWD=<SECRETKEY>;S3OutputLocation=s3://amzn-s3-demo-bucket/<athena-output>-<AWSREGION>/;
     Workgroup=<WORKGROUPNAME>;
     ```

# 작업 그룹 전환
<a name="switching-workgroups"></a>

작업 그룹에 대해 권한이 있을 경우 한 작업 그룹에서 다른 작업 그룹으로 전환할 수 있습니다.

각 작업 그룹에서 쿼리 탭을 10개까지 열 수 있습니다. 작업 그룹 간에 전환할 경우 쿼리 탭은 최대 3개의 작업 그룹에 대해 열린 채로 유지됩니다.

**작업 그룹 전환**

1. Athena 콘솔에서 오른쪽 상단의 **작업 그룹(Workgroup)** 옵션을 사용하여 작업 그룹을 선택합니다.

1. **작업 그룹 *workgroup-name* 설정(Workgroup workgroup-name settings)** 대화 상자가 나타나면 **승인(Acknowledge)**을 선택합니다.

**작업 그룹(Workgroup)** 옵션은 전환한 작업 그룹의 이름을 표시합니다. 이제 이 작업 그룹에서 쿼리를 실행할 수 있습니다.

# 작업 그룹 편집
<a name="editing-workgroups"></a>

작업 그룹을 편집하려면 `UpdateWorkgroup` API 작업에 대한 권한이 필요합니다. [작업 그룹 및 태그에 대한 액세스 구성](workgroups-access.md) 및 [IAM 정책을 사용하여 작업 그룹 액세스 제어](workgroups-iam-policy.md) 섹션을 참조하세요. 태그를 추가하거나 편집할 경우 `TagResource`에 대한 권한도 있어야 합니다. [작업 그룹에 대한 태그 정책 예제](tags-access-control.md#tag-policy-examples-workgroups)을(를) 참조하세요.

**콘솔에서 작업 그룹을 편집하려면**

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

1. **작업 그룹(Workgroups)** 페이지에서 편집할 작업 그룹의 버튼을 선택합니다.

1. **작업(Actions)**, **편집(Edit)**을 선택합니다.

1. 필요 시 이 필드를 변경합니다. 필드 목록을 보려면 [작업 그룹 생성](creating-workgroups.md)을 참조하세요. 작업 그룹 이름을 제외한 모든 필드를 변경할 수 있습니다. 이름을 변경해야 할 경우, 동일한 설정으로 작업 그룹을 만든 후 새 이름을 지정하세요.

1. **변경 사항 저장**을 선택합니다. **작업 그룹(Workgroups)** 페이지의 목록에 업데이트된 작업 그룹이 나타납니다.

# 작업 그룹 활성화 또는 비활성화
<a name="workgroups-enabled-disabled"></a>

권한이 있는 경우 콘솔에서 또는 API 작업이나 JDBC 및 ODBC 드라이버를 사용하여 작업 그룹을 활성화하거나 비활성화할 수 있습니다.

**작업 그룹을 활성화거나 비활성화하려면**

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

1. **작업 그룹(Workgroups)** 페이지에서 작업 그룹의 링크를 선택합니다.

1. 오른쪽 상단에서 **작업 그룹 활성화(Enable workgroup)** 또는 **작업 그룹 비활성화(Disable workgroup)**를 선택합니다.

1. 확인 프롬프트에서 **활성화(Enable)** 또는 **비활성화(Disable)**를 선택합니다. 작업 그룹을 비활성화한 경우 해당 작업 그룹의 사용자는 그 작업 그룹에서 쿼리를 실행하거나 새로운 이름 지정 쿼리를 만들 수 없습니다. 작업 그룹을 활성화한 경우, 사용자는 해당 작업 그룹을 사용하여 쿼리를 실행할 수 있습니다.

# 작업 그룹 간에 저장된 쿼리 복사
<a name="copy-a-query-between-workgroups"></a>

현재 Athena 콘솔에는 저장된 쿼리를 한 작업 그룹에서 다른 작업 그룹으로 직접 복사할 수 있는 옵션이 없지만 다음 절차를 사용하여 수동으로 동일한 작업을 수행할 수 있습니다.

**작업 그룹 간에 저장된 쿼리를 복사하려면**

1. Athena 콘솔에서, 쿼리를 복사해 올 작업 그룹에서 **저장된 쿼리(Saved queries)** 탭을 클릭합니다.

1. 복사하려는 저장된 쿼리의 링크를 선택합니다. Athena는 쿼리 편집기에서 쿼리를 엽니다.

1. 쿼리 편집기에서 쿼리 텍스트를 선택한 후 **Ctrl\$1C**를 눌러 복사합니다.

1. 대상 작업 그룹으로 [전환](switching-workgroups.md)하거나, [작업 그룹을 생성](creating-workgroups.md)한 다음 대상 작업 그룹으로 전환합니다.

1. 쿼리 편집기에서 새 탭을 연 다음 **Ctrl\$1V**를 눌러 텍스트를 새 탭에 붙여 넣습니다.

1. 쿼리 편집기에서 **다른 이름으로 저장(Save as)**을 클릭하여 대상 작업 그룹에 쿼리를 저장합니다.

1. **이름 선택(Choose a name)** 대화 상자에서 쿼리의 이름과 설명(선택 사항)을 입력합니다.

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

# 작업 그룹 삭제
<a name="deleting-workgroups"></a>

작업 그룹 삭제 권한이 있으면 작업 그룹을 삭제할 수 있습니다. 기본 작업 그룹은 삭제할 수 없습니다.

권한이 있는 경우 언제든 빈 작업 그룹을 삭제할 수 있습니다. 저장된 쿼리가 들어 있는 작업 그룹도 삭제할 수 있습니다. 이 경우 작업 그룹 삭제를 진행하기 전에 Athena가 저장된 쿼리의 삭제를 경고합니다.

작업 그룹 내에서 작업 그룹을 삭제할 경우 콘솔에서 기본 작업 그룹으로 포커스가 전환됩니다. 해당 작업 그룹에 대해 액세스 권한이 있을 경우 쿼리를 실행하고 해당 설정을 볼 수 있습니다.

작업 그룹을 삭제할 경우 작업 그룹의 설정 및 쿼리당 데이터 한도 제어가 삭제됩니다. 작업 그룹 전역의 데이터 한도 제어는 CloudWatch에서 유지되며 필요할 경우 삭제할 수 있습니다.

**중요**  
작업 그룹을 삭제하기 전에 작업 그룹의 사용자가 쿼리 실행을 계속할 수 있는 다른 작업 그룹에 속해 있는지 확인해야 합니다. 사용자의 IAM 정책에서 사용자에게 *오직* 이 작업 그룹에서만 쿼리를 실행하도록 허용한 경우 이 작업 그룹을 삭제하면 해당 사용자는 더 이상 쿼리를 실행할 수 있는 권한이 없어집니다. 자세한 내용은 [Example policy for running queries in the primary workgroup](example-policies-workgroup.md#example4-run-in-primary-access) 단원을 참조하세요.

**콘솔에서 작업 그룹을 삭제하려면**

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

1. **작업 그룹(Workgroups)** 페이지에서 삭제할 작업 그룹의 버튼을 선택합니다.

1. **작업**, **삭제**를 선택합니다.

1. **작업 그룹 삭제(Delete workgroup)** 확인 프롬프트에서 작업 그룹의 이름을 입력한 다음 **삭제(Delete)**를 선택합니다.

API 작업을 사용하여 작업 그룹을 삭제하려면 `DeleteWorkGroup` 작업을 사용합니다.

# CloudWatch 및 EventBridge를 사용하여 쿼리 모니터링 및 비용 제어
<a name="workgroups-control-limits"></a>

작업 그룹에서는 쿼리당 또는 작업 그룹당 데이터 사용량 제어 한도를 설정하고, 이러한 한도가 초과될 때 경보를 설정할 수 있으며, CloudWatch에 쿼리 지표를 게시할 수 있습니다.

각 작업 그룹에서 다음을 수행할 수 있습니다.
+ 쿼리당 그리고 작업 그룹당 **데이터 사용량 제어**를 구성하고, 쿼리가 임계값을 위반할 경우 수행할 작업을 설정합니다.
+ 쿼리 지표를 보고 분석하며 CloudWatch에 게시합니다. 콘솔에서 작업그룹을 만들 경우 CloudWatch에 지표를 게시하는 설정이 자동으로 선택됩니다. API 작업을 사용할 경우 [지표 게시를 활성화](athena-cloudwatch-metrics-enable.md)해야 합니다. 지표가 게시되면 **작업 그룹** 패널의 **지표** 탭 아래에 표시됩니다. 지표는 기본 작업 그룹에 대해 기본적으로 비활성화됩니다.

## 비디오
<a name="athena-cloudwatch-metrics-video"></a>

다음 동영상은 CloudWatch에서 사용자 지정 대시보드를 생성하고 지표에 대한 경보 및 트리거를 설정하는 방법을 보여 줍니다. Athena 콘솔에서 사전 입력된 대시보드를 직접 사용해 이러한 쿼리 지표를 이용할 수 있습니다.

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


**Topics**
+ [비디오](#athena-cloudwatch-metrics-video)
+ [쿼리 지표 활성화](athena-cloudwatch-metrics-enable.md)
+ [CloudWatch를 사용하여 쿼리 지표 모니터링](query-metrics-viewing.md)
+ [CloudWatch를 사용하여 사용량 지표 모니터링](monitoring-athena-usage-metrics.md)
+ [EventBridge를 사용하여 쿼리 이벤트 모니터링](athena-events.md)
+ [데이터 사용량 제어 구성](workgroups-setting-control-limits-cloudwatch.md)

# Athena에서 CloudWatch 쿼리 지표 활성화
<a name="athena-cloudwatch-metrics-enable"></a>

콘솔에서 작업그룹을 만들 경우 CloudWatch에 쿼리 지표를 게시하는 설정이 기본적으로 선택됩니다.

**Athena 콘솔에서 작업 그룹에 대해 쿼리 지표를 활성화 또는 비활성화하려면**

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

1. 콘솔 탐색 창이 표시되지 않으면 왼쪽의 확장 메뉴를 선택합니다.  
![\[확장 메뉴를 선택합니다.\]](http://docs.aws.amazon.com/ko_kr/athena/latest/ug/images/nav-pane-expansion.png)

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

1. 수정할 작업 그룹의 링크를 선택합니다.

1. 작업 그룹에 대한 세부 정보 페이지에서 **편집(Edit)**을 선택합니다.

1. **설정(Settings)** 섹션에서 **AWS CloudWatch에 쿼리 지표 게시(Publish query metrics to CloudWatch)**를 선택하거나 선택 취소합니다.

API 작업, 명령줄 인터페이스 또는 JDBC 드라이버가 있는 클라이언트 애플리케이션을 사용하여 작업 그룹을 생성하고 쿼리 지표 게시를 활성화하는 경우 [WorkGroupConfiguration](https://docs.aws.amazon.com/athena/latest/APIReference/API_WorkGroupConfiguration.html)에서 `PublishCloudWatchMetricsEnabled`를 `true`로 설정합니다. 다음 예제는 지표 구성만 보여 주고 다른 구성은 생략합니다.

```
"WorkGroupConfiguration": { 
      "PublishCloudWatchMetricsEnabled": "true"
     ....
     }
```

# CloudWatch를 사용하여 Athena 쿼리 지표 모니터링
<a name="query-metrics-viewing"></a>

[CloudWatch에 쿼리 지표 게시](athena-cloudwatch-metrics-enable.md) 옵션을 선택하면 Athena는 쿼리 관련 지표를 Amazon CloudWatch에 게시합니다. 사용자 지정 대시보드를 만들거나, CloudWatch의 지표에 대해 경보 및 트리거를 설정하거나, Athena 콘솔에서 사전 입력된 대시보드를 직접 사용할 수 있습니다.

작업 그룹의 쿼리에 대해 쿼리 지표를 활성화하면 Athena 콘솔에서 각 작업 그룹에 대한 **작업 그룹** 패널의 **지표** 탭에 지표가 표시됩니다.

Athena는 다음의 지표를 CloudWatch 콘솔에 게시합니다.
+ `DPUAllocated` - 쿼리를 실행하기 위해 용량 예약에 프로비저닝된 총 데이터 처리 단위(DPU) 수입니다.
+ `DPUConsumed` - 예약에서 특정 시간에 `RUNNING` 상태의 쿼리가 소비하는 DPU 수입니다. 작업 그룹이 용량 예약과 연결되어 있고 예약과 연결된 모든 작업 그룹을 포함하는 경우에만 생성되는 지표입니다.
+ `DPUCount` - 쿼리가 소비하는 최대 DPU 수로, 쿼리가 완료될 때 정확히 한 번 게시됩니다.
+ `EngineExecutionTime` - 쿼리를 실행하는 데 걸린 시간(밀리초)입니다.
+ `ProcessedBytes` - DML 쿼리당 Athena가 스캔한 바이트 수입니다.
+ `QueryPlanningTime` - Athena가 쿼리 처리 흐름을 계획하는 데 걸린 시간(밀리초)입니다.
+ `QueryQueueTime` - 쿼리가 리소스를 기다리면서 쿼리 대기열에 있던 시간(밀리초)입니다.
+ `ServicePreProcessingTime` - Athena가 쿼리 엔진에 쿼리를 제출하기 전에 쿼리를 사전 처리하는 데 걸린 시간(밀리초)입니다.
+ `ServiceProcessingTime` - 쿼리 엔진이 쿼리 실행을 완료한 후 Athena가 쿼리 결과를 처리하는 데 걸린 시간(밀리초)입니다.
+ `TotalExecutionTime` - Athena가 DDL 또는 DML 쿼리를 실행하는 데 걸린 시간(밀리초)입니다.

자세한 설명은 이 문서 뒷부분의 [Athena의 CloudWatch 지표 및 차원 목록](#athena-cloudwatch-metrics-table) 섹션을 참조하세요.

이러한 지표에는 다음과 같은 차원이 있습니다.
+ `CapacityReservation` - 해당하는 경우 쿼리를 실행하는 데 사용된 용량 예약의 이름입니다.
+ `QueryState` - `SUCCEEDED`, `FAILED` 또는 `CANCELED`
+ `QueryType` - `DML`, `DDL` 또는 `UTILITY`
+ `WorkGroup` - 작업 그룹의 이름입니다.

Athena는 다음의 지표를 `AmazonAthenaForApacheSpark` 네임스페이스 아래 CloudWatch 콘솔에 게시합니다.
+ `DPUCount` - 세션 중에 계산을 실행하는 데 사용된 DPU 수입니다.

이 지표에는 다음과 같은 차원이 있습니다.
+ `SessionId` - 계산이 제출되는 세션의 ID입니다.
+ `WorkGroup` - 작업 그룹의 이름입니다.

자세한 내용은 이 주제의 후반부에서 [Athena의 CloudWatch 지표 및 차원 목록](#athena-cloudwatch-metrics-table) 단원을 참조하세요. Athena 사용량 지표에 대한 자세한 내용은 [CloudWatch를 사용하여 Athena 사용량 지표 모니터링](monitoring-athena-usage-metrics.md) 섹션을 참조하세요.

Athena 콘솔 또는 CloudWatch 콘솔에서 쿼리 지표를 볼 수 있습니다.

## Athena 콘솔에서 쿼리 지표 보기
<a name="query-metrics-viewing-athena-console"></a>

**Athena 콘솔에서 작업 그룹에 대한 쿼리 지표를 보려면**

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

1. 콘솔 탐색 창이 표시되지 않으면 왼쪽의 확장 메뉴를 선택합니다.  
![\[확장 메뉴를 선택합니다.\]](http://docs.aws.amazon.com/ko_kr/athena/latest/ug/images/nav-pane-expansion.png)

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

1. 목록에서 원하는 작업 그룹을 선택한 다음 **지표(Metrics)** 탭을 선택합니다.

   지표 대시보드가 표시됩니다.
**참고**  
작업 그룹에 대한 지표를 최근에 활성화했거나 최근 쿼리 활동이 없었다면 대시보드의 그래프가 비어 있을 수 있습니다. 다음 단계에서 지정하는 간격마다 CloudWatch에서 쿼리 활동을 검색합니다.

1. **지표(Metrics)** 섹션에서 Athena가 CloudWatch에서 쿼리 활동을 가져오는 데 사용할 지표 간격을 선택하거나, 사용자 지정 간격을 지정합니다.  
![\[Athena 콘솔에서 작업 그룹에 대한 지표 검색 간격 지정.\]](http://docs.aws.amazon.com/ko_kr/athena/latest/ug/images/wg-custom-interval.png)

1. 표시된 지표를 새로 고치려면 새로 고침 아이콘을 선택합니다.  
![\[새로 고침 아이콘을 선택합니다.\]](http://docs.aws.amazon.com/ko_kr/athena/latest/ug/images/wg-refresh-metrics.png)

1. 새로 고침 아이콘 옆에 있는 화살표를 클릭하여 지표 표시를 업데이트할 빈도를 선택합니다.  
![\[Athena 콘솔에서 작업 그룹 지표를 표시하기 위한 새로 고침 간격 선택.\]](http://docs.aws.amazon.com/ko_kr/athena/latest/ug/images/wg-choose-refresh-interval.png)

## CloudWatch 콘솔에서 쿼리 지표 보기
<a name="query-metrics-viewing-cw-console"></a>

**Amazon CloudWatch 콘솔에서 지표를 보려면**

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

1. 탐색 창에서 **지표**, **모든 지표**를 선택합니다.

1. **AWS/Athena** 네임스페이스를 선택합니다.

## AWS CLI를 사용하여 쿼리 지표 보기
<a name="query-metrics-viewing-cli"></a>

**AWS CLI를 사용하여 지표를 보려면**
+ 다음 중 하나를 수행하세요.
  + Athena에 대한 지표를 나열하려면 명령 프롬프트를 열고 다음 명령을 사용합니다.

    ```
    aws cloudwatch list-metrics --namespace "AWS/Athena"
    ```
  + 사용 가능한 모든 지표의 목록을 보려면 다음 명령을 사용합니다.

    ```
    aws cloudwatch list-metrics"
    ```

## Athena의 CloudWatch 지표 및 차원 목록
<a name="athena-cloudwatch-metrics-table"></a>

Athena에서 CloudWatch 지표를 활성화했다면 다음 지표가 작업 그룹별로 CloudWatch로 전송됩니다. 다음 지표에서 `AWS/Athena` 네임스페이스를 사용합니다.


| 지표 이름 | 설명 | 
| --- | --- | 
| DPUAllocated |  쿼리를 실행하기 위해 용량 예약에 프로비저닝된 총 데이터 처리 단위(DPU) 수입니다.  | 
| DPUConsumed | 예약에서 특정 시간에 RUNNING 상태의 쿼리가 소비하는 DPU 수입니다. 이 지표는 작업 그룹이 용량 예약과 연결되어 있고 예약과 연결된 모든 작업 그룹을 포함하는 경우에만 생성됩니다. 작업 그룹을 한 예약에서 다른 예약으로 이동하면 해당 작업 그룹이 첫 번째 예약에 속했던 시점의 데이터가 지표에 포함됩니다. 용량 예약에 대한 자세한 내용은 [쿼리 처리 용량 관리](capacity-management.md) 섹션을 참조하세요. | 
| DPUCount | 쿼리가 소비하는 최대 DPU 수로, 쿼리가 완료될 때 정확히 한 번 게시됩니다. 이 지표는 용량 예약에 연결된 작업 그룹에 대해서만 생성됩니다. | 
| EngineExecutionTime |  쿼리를 실행하는 데 걸린 시간(밀리초)입니다.  | 
| ProcessedBytes |  DML 쿼리당 Athena가 스캔한 바이트 수입니다. 취소된 쿼리의 경우(한도에 다다른 경우, 쿼리가 사용자에 의해 또는 자동으로 취소됨), 취소 시간 이전에 스캔한 데이터의 양을 포함합니다. DDL 쿼리에 대해서는 이 지표가 보고되지 않습니다.  | 
| QueryPlanningTime | Athena가 쿼리 처리 흐름을 계획하는 데 걸린 시간(밀리초)입니다. 여기에는 데이터 소스로부터 테이블 파티션을 검색하는 데 소요된 시간이 포함됩니다. 쿼리 엔진은 쿼리 계획을 수행하기 때문에 쿼리 계획 시간은 EngineExecutionTime의 하위 집합입니다. | 
| QueryQueueTime | 쿼리가 리소스를 기다리면서 쿼리 대기열에 있던 시간(밀리초) 입니다. 일시적인 오류가 발생하면 쿼리가 자동으로 대기열에 다시 추가될 수 있습니다. | 
| ServicePreProcessingTime | Athena가 쿼리 엔진에 쿼리를 제출하기 전에 쿼리를 사전 처리하는 데 걸린 시간(밀리초)입니다. | 
| ServiceProcessingTime | 쿼리 엔진이 쿼리 실행을 완료한 후 Athena가 쿼리 결과를 처리하는 데 걸린 시간(밀리초)입니다. | 
| TotalExecutionTime | Athena가 DDL 또는 DML 쿼리를 실행하는 데 걸린 시간(밀리초)입니다. TotalExecutionTime에는 QueryQueueTime, QueryPlanningTime, EngineExecutionTime 및 ServiceProcessingTime이 포함됩니다.. | 

Athena의 이 지표에는 다음과 같은 차원이 있습니다.


| 차원 | 설명 | 
| --- | --- | 
| CapacityReservation |  해당하는 경우 쿼리를 실행하는 데 사용된 용량 예약의 이름입니다. 용량 예약이 사용되지 않으면 이 차원은 데이터를 반환하지 않습니다.  | 
| QueryState |  쿼리 상태입니다. 유효한 통계: SUCCEEDED, FAILED 또는 CANCELED.  | 
| QueryType |  쿼리 유형입니다. 유효한 통계: `DDL`, `DML` 또는 `UTILITY`. 실행된 쿼리 문의 유형입니다. `DDL`은 데이터 정의 언어(DDL) 쿼리 문을 나타냅니다. `DML`은 데이터 조작 언어(DML) 쿼리 문을 나타냅니다(예: `CREATE TABLE AS SELECT`). `UTILITY`는 DDL 및 DML 이외의 쿼리 문(예:`SHOW CREATE TABLE` 또는 `DESCRIBE TABLE`)을 나타냅니다.  | 
| WorkGroup |  작업 그룹의 이름입니다.  | 

# CloudWatch를 사용하여 Athena 사용량 지표 모니터링
<a name="monitoring-athena-usage-metrics"></a>

CloudWatch 사용량 지표를 사용하여 CloudWatch 그래프 및 대시보드에서 현재 서비스 사용량을 표시하여 계정에서 리소스가 어떻게 사용되고 있는지 확인할 수 있습니다.

Athena의 경우 사용량 가용성 지표는 Athena의 AWS 서비스 할당량에 해당합니다. 사용량이 서비스 할당량에 가까워지면 경고하는 경보를 구성할 수 있습니다. Athena 서비스 할당량에 대한 자세한 내용은 [Service Quotas](service-limits.md) 섹션을 참조하세요. AWS 사용량 지표에 대한 자세한 내용은 *Amazon CloudWatch 사용 설명서*의 [AWS 사용량 지표](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Service-Quota-Integration.html)를 참조하세요.

Athena는 `AWS/Usage` 네임스페이스에 다음 지표를 게시합니다.


|  지표 이름  |  설명  | 
| --- | --- | 
|  `ResourceCount`  |  쿼리 유형(DML 또는 DDL)으로 구분된 계정당 AWS 리전에 따라 대기 중인 모든 쿼리와 실행 쿼리의 합계입니다. Maximum은 이 지표에 가장 유용한 통계입니다. 이 지표는 1분마다 주기적으로 게시됩니다. 쿼리를 실행하지 않는 경우 이 지표는 아무 것도 보고하지 않습니다(0도 보고하지 않음). 이 지표는 지표가 계산될 때 활성 쿼리가 실행 중인 경우에만 게시됩니다.  | 

다음 차원은 Athena에 의해 게시되는 사용량 지표를 구체화하는 데 사용됩니다.


|  차원  |  설명  | 
| --- | --- | 
|  `Service`  |  리소스가 포함된 AWS 서비스의 이름 Athena의 경우 이 차원의 값은 `Athena`입니다.  | 
|  `Resource`  |  실행 중인 리소스의 유형입니다. Athena 쿼리 사용량에 대한 리소스 값은 `ActiveQueryCount`입니다.  | 
|  `Type`  |  보고되는 엔터티의 유형입니다. 현재 Athena 사용량 지표에 대한 유일한 유효 값은 `Resource`입니다.  | 
|  `Class`  |  추적 중인 리소스의 클래스입니다. Athena의 경우, `Class`는 `DML` 또는 `DDL`이 될 수 있습니다.  | 

## CloudWatch 콘솔에서 Athena 리소스 사용량 지표 보기
<a name="monitoring-athena-usage-metrics-cw-console"></a>

CloudWatch 콘솔을 사용하여 Athena 사용량 지표의 그래프를 표시하고 사용량이 서비스 할당량에 가까워지면 경고하는 경보를 구성할 수 있습니다.

**Athena 리소스 사용량 지표를 보려면**

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

1. 탐색 창에서 **지표**, **모든 지표**를 선택합니다.

1. **사용량**(Usage)을 선택한 다음 **AWS 리소스별**(By Resource)을 선택합니다.

   서비스 할당량 사용량 지표 목록이 나타납니다.

1. **Athena** 및 **ActiveQueryCount** 옆에 있는 확인란을 선택합니다.

1. **그래프로 표시된 지표** 탭을 선택합니다.

   위의 그래프는 AWS 리소스의 현재 사용량을 표시합니다.

그래프에 서비스 할당량을 추가하고 서비스 할당량에 가까워지면 알려주는 경보를 설정하는 데 대한 자세한 내용은 *Amazon CloudWatch 사용 설명서*에서 [서비스 할당량 시각화 및 경보 설정](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Quotas-Visualize-Alarms.html)을 참조하세요. 작업 그룹당 사용량 한도 설정에 대한 자세한 내용은 [쿼리당 및 작업 그룹당 데이터 사용량 제어 구성](workgroups-setting-control-limits-cloudwatch.md) 섹션을 참조하세요.

# EventBridge를 사용하여 Athena 쿼리 이벤트 모니터링
<a name="athena-events"></a>

Amazon EventBridge와 함께 Amazon Athena를 사용하여 쿼리 상태에 대한 실시간 알림을 받을 수 있습니다. 사용자가 제출한 쿼리의 상태가 전환되면 Athena는 해당 쿼리 상태 전환에 대한 정보를 포함하는 이벤트를 EventBridge에 게시합니다. 원하는 이벤트에 대한 간단한 규칙을 작성하고 규칙과 일치하는 이벤트 발생 시 자동으로 작업을 수행하도록 할 수 있습니다. 예를 들어 쿼리가 종료 상태에 도달할 때 AWS Lambda 함수를 호출하는 규칙을 만들 수 있습니다. 이벤트는 최선의 작업을 기반으로 발생됩니다.

Athena에 대한 이벤트 규칙을 생성하기 전에 다음을 수행해야 합니다.
+ Eventbridge의 이벤트, 규칙, 대상을 숙지해야 합니다. 자세한 내용은 [Amazon EventBridge란 무엇입니까?](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html)를 참조하십시오. 규칙을 설정하는 방법에 대한 자세한 내용은 [Amazon EventBridge 시작하기](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-get-started.html)를 참조하세요.
+ 이벤트 규칙에 사용할 대상을 만듭니다.

**참고**  
Athena는 현재 한 가지 유형의 이벤트인 Athena 쿼리 상태 변경을 제공하지만 다른 이벤트 유형 및 세부 정보를 추가할 수도 있습니다. 프로그래밍 방식으로 이벤트 JSON 데이터를 역직렬화하는 경우, 추가 속성이 추가되었을 때 알 수 없는 속성을 처리할 수 있도록 애플리케이션이 준비되어야 합니다.

## Athena 이벤트 형식
<a name="athena-events-pattern"></a>

다음은 Amazon Athena 이벤트의 기본 패턴입니다.

```
{
    "source":[
        "aws.athena"
    ],
    "detail-type":[
        "Athena Query State Change"
    ],
    "detail":{
        "currentState":[
            "SUCCEEDED"
        ]
    }
}
```

## Athena 쿼리 상태 변경 이벤트
<a name="athena-events-athena-query-state-change"></a>

다음 예제에서는 `currentState` 값이 `SUCCEEDED`인 Athena 쿼리 상태 변경 이벤트를 보여 줍니다.

```
{
    "version":"0",
    "id":"abcdef00-1234-5678-9abc-def012345678",
    "detail-type":"Athena Query State Change",
    "source":"aws.athena",
    "account":"123456789012",
    "time":"2019-10-06T09:30:10Z",
    "region":"us-east-1",
    "resources":[

    ],
    "detail":{
        "versionId":"0",
        "currentState":"SUCCEEDED",
        "previousState":"RUNNING",
        "statementType":"DDL",
        "queryExecutionId":"01234567-0123-0123-0123-012345678901",
        "workgroupName":"primary",
        "sequenceNumber":"3"
    }
}
```

다음 예제에서는 `currentState` 값이 `FAILED`인 Athena 쿼리 상태 변경 이벤트를 보여 줍니다. `athenaError` 블록은 `currentState`가 `FAILED`인 경우에만 나타납니다. `errorCategory` 및 `errorType`에 대한 값 관련 내용은 [Athena 오류 카탈로그](error-reference.md) 단원을 참조하세요.

```
{
    "version":"0",
    "id":"abcdef00-1234-5678-9abc-def012345678",
    "detail-type":"Athena Query State Change",
    "source":"aws.athena",
    "account":"123456789012",
    "time":"2019-10-06T09:30:10Z",
    "region":"us-east-1",
    "resources":[ 
    ],
    "detail":{
        "athenaError": {
            "errorCategory": 2.0, //Value depends on nature of exception
            "errorType": 1306.0, //Type depends on nature of exception
            "errorMessage": "Amazon S3 bucket not found", //Message depends on nature of exception
            "retryable":false //Retryable value depends on nature of exception
        },
        "versionId":"0",
        "currentState": "FAILED",
        "previousState": "RUNNING",
        "statementType":"DML",
        "queryExecutionId":"01234567-0123-0123-0123-012345678901",
        "workgroupName":"primary",
        "sequenceNumber":"3"
    }
}
```

### 출력 속성
<a name="athena-events-query-state-change-output-properties"></a>

JSON 출력에는 다음 속성이 포함됩니다.


****  

| 속성 | 설명 | 
| --- | --- | 
| athenaError | currentState가 FAILED인 경우에만 나타납니다. 오류 범주, 오류 유형, 오류 메시지, 오류를 일으킨 작업을 재시도할 수 있는지 여부 등 발생한 오류에 대한 정보가 포함되어 있습니다. 이러한 각 필드의 값은 오류의 특성에 따라 달라집니다. errorCategory 및 errorType에 대한 값 관련 내용은 [Athena 오류 카탈로그](error-reference.md) 단원을 참조하세요. | 
| versionId | 세부 정보 객체 스키마의 버전 번호입니다. | 
| currentState | 이벤트 발생 시 쿼리가 다른 상태로 전환됩니다. | 
| previousState | 이벤트 발생 시 쿼리가 다른 상태에서 전환됩니다. | 
| statementType | 실행된 쿼리 문의 유형입니다. | 
| queryExecutionId | 실행된 쿼리에 대한 고유 식별자입니다. | 
| workgroupName | 쿼리가 실행된 작업 그룹의 이름입니다. | 
| sequenceNumber | 실행된 단일 쿼리와 관련된 수신 이벤트의 중복 제거 및 순서 지정을 수행할 수 있는 단순 증가 수치입니다. 동일한 상태 전환에 대해 중복 이벤트가 게시되면 sequenceNumber 값은 동일합니다. 드물지만 다시 대기열에 올리는 쿼리와 같이 쿼리에 상태 전환이 두 번 이상 발생하는 경우 sequenceNumber를 사용하여 동일한 currentState 및 previousState 값을 가진 이벤트의 순서를 지정할 수 있습니다. | 

## 예제
<a name="athena-events-examples"></a>

다음 예제에서는 구독한 Amazon SNS 주제에 이벤트를 게시합니다. Athena가 쿼리되면 이메일을 받게 됩니다. 이 예제에서는 Amazon SNS 주제가 존재하고 사용자가 이를 구독했다고 가정합니다.

**Amazon SNS 주제에 Athena 이벤트를 게시하려면**

1. Amazon SNS 주제의 대상을 만듭니다. 다음 예제와 같이 Amazon SNS 주제에 게시할 수 있는 `events.amazonaws.com` 권한을 EventBridge 이벤트 서비스 보안 주체에 부여합니다.

   ```
   {
       "Effect":"Allow",
       "Principal":{
           "Service":"events.amazonaws.com"
       },
       "Action":"sns:Publish",
       "Resource":"arn:aws:sns:us-east-1:111111111111:your-sns-topic"
   }
   ```

1. 다음 예제와 같이 AWS CLI `events put-rule` 명령을 사용하여 Athena 이벤트에 대한 규칙을 만듭니다.

   ```
   aws events put-rule --name {ruleName} --event-pattern '{"source": ["aws.athena"]}'
   ```

1. 다음 예제와 같이 AWS CLI `events put-targets` 명령을 사용하여 Amazon SNS 주제 대상을 규칙에 연결합니다.

   ```
   aws events put-targets --rule {ruleName} --targets Id=1,Arn=arn:aws:sns:us-east-1:111111111111:your-sns-topic
   ```

1. Athena를 쿼리하고 호출되는 대상을 관찰합니다. Amazon SNS 주제에서 해당 이메일을 수신해야 합니다.

## Amazon Athena에서 AWS User Notifications 사용
<a name="monitoring-user-notifications"></a>

[AWS User Notifications](https://docs.aws.amazon.com/notifications/latest/userguide/what-is.html)을 사용하여 Amazon Athena 이벤트에 대한 알림을 받을 전송 채널을 설정할 수 있습니다. 이벤트가 지정한 규칙과 일치하면 알림을 받습니다. 이메일, [채팅 애플리케이션의 Amazon Q Developer](https://docs.aws.amazon.com/chatbot/latest/adminguide/what-is.html) 채팅 알림 또는 [AWS Console Mobile Application](https://docs.aws.amazon.com/consolemobileapp/latest/userguide/what-is-consolemobileapp.html) 푸시 알림을 비롯한 여러 채널을 통해 이벤트에 대한 알림을 받을 수 있습니다. [콘솔 알림 센터](https://console.aws.amazon.com/notifications/)에서도 알림을 볼 수 있습니다. 사용자 알림은 집계를 지원하므로 특정 이벤트 중에 받는 알림 수를 줄일 수 있습니다.

자세한 내용은 [https://docs.aws.amazon.com/notifications/latest/userguide/what-is.html](https://docs.aws.amazon.com/notifications/latest/userguide/what-is.html)를 참조하세요.

# 쿼리당 및 작업 그룹당 데이터 사용량 제어 구성
<a name="workgroups-setting-control-limits-cloudwatch"></a>

 Athena에서는 쿼리당 한도와 작업 그룹당 한도의 두 가지 비용 관리를 설정할 수 있습니다. 각 작업 그룹에 대해 쿼리당 한도 한 개와 작업 그룹당 한도 여러 개를 설정할 수 있습니다.
+ **쿼리당 제어 한도**는 쿼리당 스캔된 데이터의 총량을 지정합니다. 작업 그룹에서 실행하는 쿼리가 이 한도를 초과할 경우 쿼리가 취소됩니다. 한 작업 그룹에서 쿼리당 제어 한도를 한 개만 생성할 수 있으며 이 한도는 해당 작업 그룹에서 실행되는 각 쿼리에 적용됩니다. 이 한도를 변경해야 할 경우 수정할 수 있습니다. 자세한 방법은 [쿼리당 데이터 사용량 제어를 생성하려면](#configure-control-limit-per-query)을 참조하세요.
+ **작업 그룹 전역 데이터 사용량 제어 한도**는 이 작업 그룹에서 실행하는 모든 쿼리에 대해 지정된 시간 동안 스캔된 데이터의 총량을 지정합니다. 작업 그룹당 한도를 여러 개 만들 수 있습니다. 작업 그룹 전역 쿼리 한도를 사용하여 해당 작업 그룹에서 실행 중인 쿼리별로 스캔된 데이터의 시간별 또는 일간 집계에 대해 임계값을 여러 개 설정할 수 있습니다.

  스캔된 데이터의 집계량이 임계값을 초과할 경우 Amazon SNS 주제에 알림을 푸시할 수 있습니다. 이렇게 하려면 한도를 위반할 때 관리자에게 알리도록 Athena 콘솔에서 Amazon SNS 경보 및 작업을 구성합니다. 자세한 방법은 [작업 그룹당 데이터 사용량 제어를 생성하려면](#configure-control-limit-per-workgroup)을 참조하세요. CloudWatch 콘솔에서 Athena가 게시하는 모든 지표에 대해 경보 및 조치를 생성할 수도 있습니다. 예를 들어 실패한 쿼리의 수에 대한 경고를 설정할 수 있습니다. 이 경고는 쿼리 수가 특정 임계값에 이를 경우 관리자에게 이메일을 보내게 할 수 있습니다. 한도를 초과할 경우 조치는 지정된 사용자에게 Amazon SNS 경보 알림을 보냅니다.

  수행할 수 있는 기타 조치:
  + Lambda 함수를 간접적으로 호출합니다. 자세한 내용은 *Amazon Simple Notification Service 개발자 안내서*에서 [Amazon SNS 알림을 사용하여 Lambda 함수 호출](https://docs.aws.amazon.com/sns/latest/dg/sns-lambda-as-subscriber.html) 단원을 참조하세요.
  + 작업 그룹을 비활성화하여 쿼리가 더 이상 실행되지 않도록 합니다. 단계는 [작업 그룹 활성화 또는 비활성화](workgroups-enabled-disabled.md)를 참조하세요.

쿼리당 한도 및 작업 그룹당 한도는 서로 독립적입니다. 지정된 조치는 한도가 초과될 때마다 수행됩니다. 둘 이상의 사용자가 동일한 작업 그룹에서 동시에 쿼리를 실행할 경우, 각 쿼리는 지정된 한도를 초과하지 않지만, 스캔한 데이터의 총합은 작업 그룹당 데이터 사용 한도를 초과할 수 있습니다. 이 경우 Amazon SNS 경보가 사용자에게 전송됩니다.

## 쿼리당 데이터 사용량 제어 생성
<a name="create-a-per-query-data-usage-control"></a><a name="configure-control-limit-per-query"></a>

**쿼리당 데이터 사용량 제어를 생성하려면**

쿼리당 제어 한도는 쿼리당 스캔된 데이터의 총량을 지정합니다. 작업 그룹에서 실행하는 쿼리가 이 한도를 초과할 경우 쿼리가 취소됩니다. 취소된 쿼리는 [Amazon Athena 요금](https://aws.amazon.com/athena/pricing/)에 따라 요금이 청구됩니다.
**참고**  
취소되거나 실패한 쿼리의 경우 Athena가 Amazon S3에 일부 결과를 이미 썼을 수 있습니다. 이 경우 Athena는 결과가 저장된 Amazon S3 접두사에서 일부 결과를 삭제하지 않습니다. 일부 결과를 포함한 Amazon S3 접두사는 제거해야 합니다. Athena는 Amazon S3 멀티파트 업로드를 사용하여 Amazon S3에 데이터를 씁니다. 쿼리가 실패할 경우 멀티파트 업로드를 종료하도록 버킷 수명 주기 정책을 설정할 것을 권장합니다. 자세한 내용은 *Amazon Simple Storage Service 사용 설명서*의 [버킷 수명 주기 정책을 사용한 미완료 멀티파트 업로드 중단](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config)을 참조하세요.
특정 조건에서 Athena는 자동으로 쿼리 실행을 다시 시도할 수 있습니다. 대부분의 경우 이러한 쿼리는 성공적으로 완료되며 쿼리 ID는 `Completed`로 표시됩니다. 이러한 쿼리는 초기 시도 중 부분적인 결과를 기록했을 수 있으며 불완전한 멀티파트 업로드를 생성할 수 있습니다.

한 작업 그룹에서 쿼리당 제어 한도를 한 개만 생성할 수 있으며 이 한도는 해당 작업 그룹에서 실행되는 각 쿼리에 적용됩니다. 이 한도를 변경해야 할 경우 수정할 수 있습니다.

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

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

1. 목록에서 작업 그룹을 선택합니다.

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

1. **데이터 스캔 제한** 값을 편집하세요.
   + 10MB(최소)\$17EB(최대) 범위의 값을 지정하세요.
   + 드롭다운 목록에서 단위 값(예: **킬로바이트 KB** 또는 **엑사바이트 EB**)을 선택하세요.
**참고**  
기본 작업은 쿼리가 제한을 초과할 경우 쿼리를 취소하는 것입니다. 이 설정은 변경할 수 없습니다.

1. **저장**을 선택하여 변경 사항을 적용하세요.

## 작업 그룹당 데이터 사용량 알림 생성 또는 편집
<a name="create-a-per-workgroup-data-usage-alert"></a><a name="configure-control-limit-per-workgroup"></a>

**작업 그룹당 데이터 사용량 알림 생성**

작업 그룹에서 실행되는 쿼리가 특정 기간 내에 지정된 양의 데이터를 스캔할 때 여러 경고 임계값을 설정할 수 있습니다. 알림은 Amazon CloudWatch 경보를 사용하여 구현되며 작업 그룹의 모든 쿼리에 적용됩니다. 임계값에 도달하면 Amazon SNS에서 지정한 사용자에게 이메일을 보내도록 할 수 있습니다. 임계값에 도달하면 쿼리가 자동으로 취소되지 않습니다.

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

1. 콘솔 탐색 창이 표시되지 않으면 왼쪽의 확장 메뉴를 선택합니다.

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

1. 목록에서 작업 그룹을 선택합니다.

1. **편집(Edit)**을 선택하여 작업 그룹의 설정을 편집합니다.

1. 아래로 스크롤하여 **작업 그룹 데이터 사용량 알림 - 선택 사항**을 확장합니다.

1. **알림 추가(Add a alert)**를 선택합니다.

1. **데이터 사용량 임계값 구성(Data usage threshold configuration)**에 대해 다음과 같이 값을 지정합니다.
   + **데이터 임계값(Data threshold)**에 숫자를 지정한 다음 드롭다운 목록에서 단위 값을 선택합니다.
   + **기간(Time period)** 드롭다운 목록에서 시간을 선택합니다.
   + **SNS 주제 선택(SNS topic selection)** 드롭다운 목록에서 Amazon SNS 주제를 선택합니다. 또는 **SNS 주제 생성(Create SNS topic)**을 선택하고 [Amazon SNS 콘솔](https://console.aws.amazon.com/sns/v2/home)로 바로 이동해 Amazon SNS 주제를 생성한 후 Athena 계정의 사용자 중 하나에 대해 이 주제의 구독을 설정합니다. 자세한 내용은 *Amazon Simple Notification Service 개발자 안내서*의 [Amazon SNS 시작하기](https://docs.aws.amazon.com/sns/latest/dg/sns-getting-started.html)를 참조하세요.

1. 새 알림을 생성하는 경우 **알림 추가(Add alert)**를 선택하고 기존 알림을 편집한 경우 **저장(Save)**을 선택합니다.

# Athena 작업 그룹 API 사용
<a name="workgroups-api-list"></a>

다음은 Athena 작업 그룹에 사용되는 몇 가지 REST API 작업입니다. `ListWorkGroups`를 제외한 다음 모든 작업에서 작업 그룹을 지정해야 합니다. `StartQueryExecution`과 같은 다른 작업에서는 작업 그룹 파라미터가 선택 사항이며 여기서 작업을 설명하지 않습니다. 전체 작업 목록은 [Amazon Athena API 참조](https://docs.aws.amazon.com/athena/latest/APIReference/)를 참조하세요.
+  [CreateWorkGroup](https://docs.aws.amazon.com/athena/latest/APIReference/API_CreateWorkGroup.html) 
+  [DeleteWorkGroup](https://docs.aws.amazon.com/athena/latest/APIReference/API_DeleteWorkGroup.html) 
+  [GetWorkGroup](https://docs.aws.amazon.com/athena/latest/APIReference/API_GetWorkGroup.html) 
+  [ListWorkGroups](https://docs.aws.amazon.com/athena/latest/APIReference/API_ListWorkGroups.html) 
+  [UpdateWorkGroup](https://docs.aws.amazon.com/athena/latest/APIReference/API_UpdateWorkGroup.html) 



# 작업 그룹 오류 문제 해결
<a name="workgroups-troubleshooting"></a>

다음 팁을 사용하여 작업 그룹의 문제를 해결하세요.
+ 계정의 개별 사용자에 대한 권한을 확인합니다. 사용자가 쿼리 결과의 위치 및 쿼리를 실행하려는 작업 그룹에 대해 액세스 권한이 있어야 합니다. 사용자가 작업 그룹을 전환할 경우 두 작업 그룹 모두에 대해 권한이 있어야 합니다. 자세한 내용은 [IAM 정책을 사용하여 작업 그룹 액세스 제어](workgroups-iam-policy.md) 섹션을 참조하세요.
+ Athena 콘솔의 컨텍스트에 주의를 기울여서 어느 작업 그룹에서 쿼리를 실행하려 하고 있는지 확인합니다. 드라이버를 사용할 경우 필요한 드라이버에 작업 그룹을 설정해야 합니다. 자세한 내용은 [쿼리용 작업 그룹 지정](specify-wkgroup-to-athena-in-which-to-run-queries.md) 섹션을 참조하세요.
+ API 또는 드라이버를 사용하여 쿼리를 실행할 경우 개별 쿼리에 대해서는 [OutputLocation](https://docs.aws.amazon.com/athena/latest/APIReference/API_ResultConfiguration.html#athena-Type-ResultConfiguration-OutputLocation)(클라이언트 측)을 사용하여 쿼리 결과 위치를 지정해야 합니다. 작업 그룹의 경우 [WorkGroupConfiguration](https://docs.aws.amazon.com/athena/latest/APIReference/API_WorkGroupConfiguration.html)을 사용합니다. 두 방법 중 하나를 사용하여 위치를 지정하지 않은 경우 쿼리 런타임 중에 Athena에서 오류가 발생합니다.
+ 클라이언트 측 설정을 작업 그룹 설정으로 재정의한 경우 쿼리 결과 위치에 대한 오류가 발생할 수 있습니다. 예를 들어 작업 그룹의 사용자가, 쿼리 결과를 저장하기 위한 Amazon S3의 작업 그룹 위치에 대해 권한이 없을 수 있습니다. 이 경우 필요한 권한을 추가하세요.
+ 작업 그룹은 API 작업의 동작에 변경을 적용합니다. 다음과 같은 기존 API 작업을 호출하려면 계정의 사용자들이 작업을 수행하는 작업 그룹에 대한 리소스 기반 권한을 IAM에서 소유해야 합니다. 기존의 작업 그룹 및 작업 그룹 작업에 대한 권한이 없을 경우 **CreateNamedQuery**, **DeleteNamedQuery**, **GetNamedQuery**, **ListNamedQueries**, **StartQueryExecution**, **StopQueryExecution**, **ListQueryExecutions**, **GetQueryExecution**, **GetQueryResults**, **GetQueryResultsStream**(이 API 작업은 드라이버와 함께 사용하는 경우에만 사용 가능하며 공개적으로 사용하는 경우에는 노출되지 않음) API 작업은 `AccessDeniedException`을 발생시킵니다. 자세한 내용은 *서비스 권한 부여 참조*에서 [Amazon Athena에 사용되는 작업, 리소스 및 조건 키](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html)를 참조하세요.

  **BatchGetQueryExecution** 및 **BatchGetNamedQuery** API 작업에 대한 호출은 사용자가 액세스 권한이 있는 작업 그룹에서 실행한 쿼리에 대해서만 정보를 반환합니다. 사용자가 작업 그룹에 대해 액세스 권한이 없을 경우 이러한 API 작업은 처리되지 않은 ID 목록에 승인되지 않은 쿼리 ID를 포함시켜 반환합니다. 자세한 내용은 [Athena 작업 그룹 API 사용](workgroups-api-list.md) 단원을 참조하세요.
+ 쿼리가 실행되는 작업 그룹이 [쿼리 결과 위치 강제 적용(enforced query results location)](workgroups-settings-override.md)으로 구성된 경우 CTAS 쿼리에 대해 `external_location`을 지정하면 안 됩니다. 이러한 경우 Athena에서 오류가 발생하고 `external_location`을 지정한 쿼리가 실패합니다. 예를 들어 쿼리 결과 위치에 대해 클라이언트 측 설정의 재정의할 경우 이 쿼리가 실패하고 작업 그룹에서 해당 위치 `CREATE TABLE <DB>.<TABLE1> WITH (format='Parquet', external_location='s3://amzn-s3-demo-bucket/test/') AS SELECT * FROM <DB>.<TABLE2> LIMIT 10;`를 사용합니다.

다음과 같은 오류가 나타날 수 있습니다. 다음 표에는 작업 그룹과 관련된 몇 가지 오류 목록과 권장 해결 방법이 나와 있습니다.


**작업 그룹 오류**  

| 오류 | 발생 조건... | 
| --- | --- | 
|  취소됨 쿼리 상태. 스캔한 바이트 제한을 초과했습니다. | 쿼리가 쿼리당 데이터 한도에 도달하여 취소되었습니다. 데이터를 읽는 양을 줄이도록 쿼리를 다시 작성하거나 계정 관리자에게 문의하세요. | 
|  arn:aws:iam::123456789012:user/abc 사용자는 arn:aws:athena:us-east-1:123456789012:workgroup/workgroupname 리소스에 대해 athena:StartQueryExecution 작업을 수행하도록 승인되지 않았습니다. | 사용자가 작업 그룹에서 쿼리를 실행했으나 작업 그룹에 대해 액세스 권한이 없습니다. 작업 그룹에 대해 액세스 권한을 갖도록 정책을 업데이트하세요. | 
|  INVALID\$1INPUT. <name> 작업 그룹이 비활성화되었습니다. | 사용자가 작업 그룹에서 쿼리를 실행했으나 작업 그룹이 비활성화되었습니다. 관리자가 작업 그룹을 비활성화했을 수 있습니다. 또한 해당 작업 그룹에 대해 액세스 권한이 없을 수 있습니다. 두 경우 모두 액세스 권한을 가진 관리자에게 연락하여 작업 그룹을 수정해 달라고 요청하세요. | 
|  INVALID\$1INPUT. <name> 작업 그룹을 찾을 수 없습니다. | 사용자가 작업 그룹에서 쿼리를 실행했으나 작업 그룹이 존재하지 않습니다. 작업 그룹이 삭제되었을 수 있습니다. 다른 작업 그룹으로 전환하여 쿼리를 실행하세요. | 
|  InvalidRequestException: StartQueryExecution 작업을 호출하는 동안 출력 위치를 제공하지 않았습니다. 출력 위치는 Workgroup 결과 구성 설정 또는 API 입력으로 필요합니다. |  사용자가 쿼리 결과 위치를 지정하지 않고 API를 사용하여 쿼리를 실행했습니다. 개별 쿼리에 대해 [OutputLocation](https://docs.aws.amazon.com/athena/latest/APIReference/API_ResultConfiguration.html#athena-Type-ResultConfiguration-OutputLocation)(클라이언트 측)을 사용하여 또는 작업 그룹에서 [WorkGroupConfiguration](https://docs.aws.amazon.com/athena/latest/APIReference/API_WorkGroupConfiguration.html)을 사용하여 쿼리 결과 위치를 설정해야 합니다.  | 
|   CTAS(Create Table As Select) 쿼리는 모든 쿼리에 대해 중앙 집중식 출력 위치를 적용하는 'external\$1location' 속성과 함께 Athena 작업 그룹에 제출되었기 때문에 실패했습니다. 'external\$1location' 속성을 제거하고 쿼리를 다시 제출하세요.  | 쿼리를 실행한 작업 그룹이 [쿼리 결과 위치 강제 적용](workgroups-settings-override.md)으로 구성된 경우 CTAS 쿼리에 대해 external\$1location을 지정하세요. 이 경우 external\$1location을 제거하고 쿼리를 다시 실행하세요. | 
| prepared\$1statement\$1name 준비된 문을 생성할 수 없습니다. 이 작업 그룹에서 준비된 문 수가 1000개 제한을 초과했습니다. | 이 작업 그룹에 1,000개 제한을 초과하는 준비된 문이 포함되어 있습니다. 이 문제를 해결하려면 [DEALLOCATE PREPARE](sql-deallocate-prepare.md)를 사용해 작업 그룹에서 준비된 문을 하나 이상 제거합니다. 또는 새 작업 그룹을 생성합니다. | 