용량 요구 사항 결정
용량 예약을 생성하기 전에 올바른 DPU 수를 할당할 수 있도록 필요한 용량을 추정할 수 있습니다. 또한 예약을 사용한 후에 예약에서 용량의 부족 또는 초과 상태를 확인하는 것이 좋습니다. 이 주제에서는 이러한 추정을 위해 사용할 수 있는 기법과 함께 사용량 및 비용을 평가하는 몇 가지 AWS 도구도 설명합니다.
필요한 용량 추정
용량 요구 사항을 추정할 때 특정 쿼리에 필요한 용량과 일반적으로 필요한 용량이라는 두 가지 측면을 고려하는 것이 좋습니다.
쿼리당 용량 요구 사항 추정
쿼리에 필요할 수 있는 DPU 수를 결정하려는 경우 다음 지침을 사용할 수 있습니다.
-
DDL 쿼리는 4개의 DPU를 소비합니다.
-
DML 쿼리는 4~124개의 DPU를 소비합니다.
Athena는 쿼리가 제출될 때 DML 쿼리에 필요한 DPU 수를 결정합니다. 이 수는 데이터 크기, 스토리지 형식, 쿼리 구성 및 기타 요인에 따라 달라집니다. 일반적으로 Athena는 가장 적으면서 가장 효율적인 DPU 수를 선택하려고 합니다. Athena에서 쿼리를 성공적으로 완료하는 데 더 많은 컴퓨팅 성능이 필요하다고 판단하면 쿼리에 할당된 DPU 수가 늘어납니다.
워크로드별 용량 요구 사항 추정
여러 쿼리를 동시에 실행하는 데 필요한 용량을 결정하려면 다음 테이블의 일반 지침을 고려합니다.
동시 쿼리 수 | 필요한 DPU 수 |
---|---|
10 | 40개 이상 |
20 | 96개 이상 |
30개 이상 | 240개 이상 |
필요한 실제 DPU 수는 목표와 분석 패턴에 따라 달라집니다. 예를 들어 쿼리를 대기열에 넣지 않고 즉시 시작하려는 경우 최대 동시 쿼리 수요를 결정한 후 적절히 DPU 수를 프로비저닝합니다.
최대 수요보다 적게 DPU를 프로비저닝할 수 있지만, 최대 수요가 발생하면 대기열이 나타날 수 있습니다. 대기열이 나타나면 Athena는 쿼리를 대기열에 넣고 사용 가능한 용량이 확보되면 쿼리를 실행합니다.
고정된 예산 안에서 쿼리를 실행하는 것이 목표인 경우 AWS 요금 계산기
마지막으로, 데이터 크기, 스토리지 형식, 쿼리 작성 방식이 쿼리에 필요한 DPU 수에 영향을 준다는 점을 기억하세요. 쿼리 성능을 높이려면 데이터를 압축 또는 파티셔닝하거나 열 형식으로 변환할 수 있습니다. 자세한 내용은 Athena 성능 최적화 단원을 참조하십시오.
더 많은 용량이 필요하다는 신호
할당한 용량이 부족함을 알리는 두 가지 징후로, 용량 부족 오류 메시지가 나타나거나 대기열에 쿼리가 들어갑니다.
용량 부족 오류 메시지와 함께 쿼리에 실패하는 경우 용량 예약의 DPU 수가 쿼리에 비해 너무 적습니다. 예를 들어 24개의 DPU로 예약한 상태에서 24개가 넘는 DPU가 필요한 쿼리를 실행하면 쿼리에 실패합니다. Athena의 EventBridge 이벤트를 사용하여 이 쿼리 오류를 모니터링할 수 있습니다. DPU를 더 추가하고 쿼리를 다시 실행하세요.
대기열에 있는 쿼리가 많으면 다른 쿼리에서 용량을 완전히 사용하고 있다는 의미입니다. 대기열을 줄이려면 다음 중 하나를 수행합니다.
-
예약에 DPU를 추가하여 쿼리 동시 처리 기능을 개선합니다.
-
예약에서 작업 그룹을 제거하여 다른 쿼리에 사용할 용량을 확보합니다.
대기열에 있는 쿼리가 너무 많은지 확인하려면 용량 예약에서 작업 그룹에 대한 Athena 쿼리 대기열 시간 CloudWatch 지표를 사용합니다. 값이 원하는 임계값을 초과하는 경우 용량 예약에 DPU를 추가할 수 있습니다.
유휴 용량 확인
유휴 용량을 확인하려면 예약의 DPU 수를 줄이거나 워크로드를 늘린 후에 결과를 관찰할 수 있습니다.
유휴 용량을 확인하려면
-
다음 중 하나를 수행합니다.
-
예약의 DPU 수 감소(사용 가능한 리소스 감소)
-
예약에 작업 그룹 추가(워크로드 증가)
-
-
CloudWatch를 사용하여 쿼리 대기열 시간을 측정합니다.
-
대기열 시간이 원하는 수준을 초과하면 다음 중 하나를 수행합니다.
-
작업 그룹 제거
-
용량 예약에 DPU 추가
-
-
변경할 때마다 성능과 쿼리 대기열 시간을 확인합니다.
-
워크로드 및/또는 DPU 수를 계속 조정하여 원하는 균형을 맞춥니다.
원하는 기간이 아닐 때 용량을 유지하지 않으려면 예약을 취소하고 나중에 다른 예약을 생성할 수 있습니다. 그러나 최근에 다른 예약에서 용량을 취소했어도 새 요량에 대한 요청은 보장되지 않으며, 새 예약을 생성하는 데 시간이 걸립니다.
AWS에서 다음 서비스 및 기능을 사용하여 Athena 사용량 및 비용을 측정할 수 있습니다.
CloudWatch 지표
쿼리 관련 지표를 작업 그룹 수준에서 Amazon CloudWatch에 게시하도록 Athena를 구성할 수 있습니다. 작업 그룹에 대한 지표를 활성화하면 작업 그룹 쿼리에 대한 지표가 Athena 콘솔의 작업 그룹 세부 정보 페이지에 표시됩니다.
CloudWatch에 게시된 Athena 지표와 해당 수치에 대한 자세한 내용은 CloudWatch를 사용하여 Athena 쿼리 지표 모니터링 섹션을 참조하세요.
CloudWatch 사용량 지표
CloudWatch 사용량 지표를 사용하여 CloudWatch 그래프 및 대시보드에서 현재 서비스 사용량을 표시하여 계정에서 리소스가 어떻게 사용되고 있는지 확인할 수 있습니다. Athena의 경우 사용량 가용성 지표는 Athena에 대한 AWS 서비스 할당량에 해당합니다. 사용량이 서비스 할당량에 가까워지면 경고하는 경보를 구성할 수 있습니다.
자세한 내용은 CloudWatch를 사용하여 Athena 사용량 지표 모니터링 단원을 참조하십시오.
Amazon EventBridge 이벤트
Amazon EventBridge와 함께 Amazon Athena를 사용하여 쿼리 상태에 대한 실시간 알림을 받을 수 있습니다. 사용자가 제출한 쿼리의 상태가 변경되면 Athena는 해당 쿼리 상태 전환에 대한 정보를 포함하는 이벤트를 EventBridge에 게시합니다. 원하는 이벤트에 대한 간단한 규칙을 작성하고 규칙과 일치하는 이벤트 발생 시 자동으로 작업을 수행하도록 할 수 있습니다.
자세한 정보는 다음 리소스를 참조하세요.
Tags
Athena에서 용량 예약은 태그를 지원합니다. 태그는 키와 값으로 구성됩니다. Athena에서 비용을 추적하기 위해 AWS에서 생성된 비용 할당 태그를 사용할 수 있습니다. AWS에서는 비용 할당 태그를 사용하여 Cost and Usage Report에서 리소스 비용을 구성합니다. 이 방법을 통해 AWS 비용을 더 쉽게 분류하고 추적할 수 있습니다. Athena에 대한 비용 할당 태그를 활성화하려면 AWS Billing and Cost Management 콘솔
자세한 정보는 다음 리소스를 참조하세요.