Amazon Athena에서는 실행한 쿼리에 대한 비용만 지불합니다. 각 쿼리에서 스캔한 데이터 양에 따라 요금이 부과됩니다. 데이터를 압축 또는 파티셔닝하거나 컬럼 형식으로 변환하면 Athena가 쿼리를 실행하기 위해 스캔해야 하는 데이터 양이 감소하므로 비용을 대폭 절감하고 성능을 높일 수 있습니다.

Amazon Athena는 현재 상용 버전으로 사용할 수 있음

Amazon Athena 시작하기
  • 스캔된 데이터 TB당 5 USD.  

데이터를 압축 및 파티셔닝하고 컬럼 형식으로 변환함으로써 쿼리당 비용을 30%에서 90% 절감하고 성능을 더 향상할 수 있습니다.

Amazon Athena에서 스캔한 바이트 수에 대해 비용이 부과되며 쿼리당 최고 10MB로 가장 가까운 메가바이트로 올림 처리됩니다. CREATE/ALTER/DROP TABLE과 같은 Data Definition Language(DDL) 문, 파티셔닝 관리를 위한 문 또는 실패한 쿼리에 대해서는 비용이 부과되지 않습니다. 취소된 쿼리는 스캔된 데이터 양에 따라 비용이 부과됩니다.

데이터를 압축하면 Athena가 스캔할 데이터가 줄어듭니다. 데이터를 컬럼 형식으로 변환하면 Athena가 데이터 처리에 필요한 컬럼만 선택적으로 읽을 수 있습니다. Athena는 Apache ORC와 Apache Parquet를 지원합니다. 데이터를 파티셔닝하면 Athena가 스캔하는 데이터 양을 제한할 수 있습니다. 이를 통해 비용이 절감되고 성능이 개선됩니다. Athena 콘솔에서 쿼리당 스캔된 데이터 양을 확인할 수 있습니다. 자세한 내용은 Athena 요금 예제를 참조하십시오.

Amazon Athena는 Amazon S3에서 직접 데이터를 쿼리합니다. Athena로 데이터를 쿼리하는 데 드는 스토리지 추가 비용은 없습니다. 스토리지, 요청 및 데이터 전송에 대한 표준 S3 요금이 부과됩니다. 기본적으로 쿼리 결과는 선택한 S3 버킷에 저장되고 표준 Amazon S3 요금이 청구됩니다.

Athena와 함께 AWS Glue 데이터 카탈로그를 사용하면, 표준 AWS Glue 데이터 카탈로그 요금이 부과됩니다. 자세한 내용은 여기를 클릭하십시오.

크기가 같은 3개의 컬럼으로 구성된 테이블이 있고, 총 3TB의 압축되지 않은 텍스트 파일이 Amazon S3에 저장되어 있다고 가정해 보겠습니다. 이 테이블의 한 컬럼에서 데이터를 가져오도록 쿼리를 실행하면 Amazon Athena가 전체 파일을 스캔해야 합니다. 텍스트 형식은 분할될 수 없기 때문입니다.

  • 이 쿼리 비용은 15 USD가 됩니다 (3TB 스캔 요금은 3 * 5 USD/TB = 15 USD).

GZIP을 사용해 파일을 압축하면 3:1의 압축 게인을 얻을 수 있습니다. 이 경우 1TB 크기의 압축 파일이 생깁니다. 이 파일에 동일한 쿼리를 수행하면 비용이 5 USD가 됩니다. Athena는 전체 파일을 다시 스캔해야 하지만, 크기가 1/3로 줄어들었으므로 앞에서 지불했던 비용의 1/3만 지불하게 됩니다.

파일을 압축하고(3:1 압축률을 달성) 이를 Apache Parquet와 같은 컬럼 형식으로 변환하는 경우 Amazon S3에 저장되는 데이터는 여전히 1TB가 됩니다. 하지만 이 경우 Parquet이 컬럼 방식이므로 Amazon Athena는 실행되는 쿼리와 연관이 있는 컬럼만 읽게 됩니다. 이 예제에서는 쿼리가 하나의 컬럼만 참조하므로 Athena는 파일에서 해당 컬럼만 읽고 나머지 2/3는 읽지 않아도 됩니다. Athena가 이 파일의 1/3만 읽으므로 S3에서 0.33TB의 데이터만 스캔합니다.

  • 이 쿼리 비용은 1.67 USD가 됩니다. 압축으로 비용이 1/3로 절감되고 하나의 컬럼만 읽음으로써 1/3로 절감되었습니다
    (파일 크기 = 3TB/3 = 1TB. 하나의 컬럼을 읽을 때 스캔된 데이터 = 1TB/3 = 0.33TB. 0.33TB에 대한 요금 = 0.33 * 5 USD/TB = 1.67 USD).