본문 바로가기
CSP (Cloud Service Provider)/AWS

AWS Athena 란?

by BTC_이재환 2022. 6. 23.

베하~ 안녕하세요! BTC_베짱이팀 입니다.

오늘은 "AWS Athena"에대해 알아보겠습니다!!

 

AWS Athena

Amazon Athena는 표준 SQL을 사용해 Amazon S3에 저장된 데이터를 간편하게 분석할 수 있는 대화식 쿼리 서비스입니다. Athena는 서버리스 서비스이므로 관리할 인프라가 없으며 실행한 쿼리에 대해서만 비용을 지불하면 됩니다.
수 많은 장점을 가진 AWS Athena

서버리스. 인프라 없음. 관리 필요 없음

Amazon Athena는 서버리스 서비스이므로 관리할 인프라가 없습니다. 사용자 수와 데이터 세트의 증가에 따른 인프라 구성, 소프트웨어 업데이트, 장애 또는 확장에 대해 걱정할 필요가 없습니다. Athena에서 이 모든 작업을 자동으로 처리하므로 사용자는 인프라가 아니라 데이터에 집중할 수 있습니다.

손쉬운 시작

시작하려면 Athena 콘솔에 로그인하고, 콘솔 마법사를 사용하거나 DDL 문을 입력하여 스키마를 정의하고, 기본 쿼리 편집기를 사용하여 즉시 쿼리를 시작하면 됩니다. AWS Glue를 사용해 데이터 원본을 자동으로 크롤링하여 데이터를 검색하고 데이터 카탈로그를 신규 및 수정된 테이블 정의와 파티션 정의로 채울 수 있습니다. 몇 초 이내에 콘솔에 결과가 표시되며 선택한 S3 위치에 자동으로 작성됩니다. 또한 결과를 데스크톱으로 다운로드할 수도 있습니다. Athena에서는 데이터 분석을 준비하기 위한 복잡한 ETL 작업이 필요 없습니다. 따라서 SQL을 다룰 수 있는 사람은 누구나 신속하게 대규모 데이터 세트를 분석할 수 있습니다.

표준 SQL을 사용한 간편한 쿼리

Amazon Athena는 대기 시간이 짧은 대화형 데이터 분석에 최적화된 오픈 소스 분산 SQL 쿼리 엔진인 Presto를 사용합니다. 즉, ANSI SQL을 사용하여 Amazon S3의 대규모 데이터 집합을 대상으로 쿼리를 실행할 수 있으며, 대규모 조인, 윈도 함수 및 어레이가 모두 지원됩니다. Athena는 CSV, JSON, ORC, Avro 또는 Parquet와 같은 다양한 종류의 데이터 형식을 지원합니다. Athena의 연합 데이터 원본 커넥터를 사용하여 추가 데이터 스토어를 쿼리하고 Amazon S3에 저장된 데이터에 데이터를 조인할 수 있습니다. Athena 콘솔, API, CLI, AWS SDK 및 지원되는 비즈니스 인텔리전스와 SQL 개발 애플리케이션에서 Athena의 JDBC 및 ODBC 드라이버를 통해 Athena에 액세스하고 쿼리를 실행할 수 있습니다.

쿼리당 비용 지불

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

빠른 성능

Amazon Athena에서는 빠른 성능을 얻기 위해 클러스터를 관리하거나 튜닝하는 데 신경을 쓸 필요가 없습니다. Athena는 Amazon S3에서 빠른 성능을 내도록 최적화되어 있습니다. Athena는 자동으로 쿼리를 병렬로 실행하므로 대규모 데이터 세트에서도 몇 초 만에 쿼리 결과를 얻을 수 있습니다.  

고가용성 및 안정성

Amazon Athena는 가용성이 뛰어난 데다 여러 시설에서 컴퓨팅 리소스를 사용하여 쿼리를 실행하며, 특정 시설에 도달할 수 없는 경우에는 쿼리를 자동으로 라우팅합니다. Athena는 Amazon S3를 기본 데이터 스토어로 사용하여 데이터 가용성과 내구성을 높입니다. Amazon S3는 중요한 데이터를 저장할 수 있고 99.999999999%의 객체 내구성을 보장하도록 설계된 내구성이 뛰어난 인프라를 제공합니다. 데이터가 여러 시설과 각 시설의 여러 디바이스에 중복 저장됩니다.

보안

Amazon Athena를 사용하면 AWS Identity and Access Management(IAM) 정책, 액세스 통제 목록(ACL) 및 Amazon S3 버킷 정책을 사용하여 데이터에 대한 액세스를 제어할 수 있습니다. IAM 정책을 사용해 IAM 사용자에게 S3 버킷에 대한 세분화된 제어 권한을 부여할 수 있습니다. S3에서 데이터에 대한 액세스를 제어하면 사용자들이 Athena를 사용하여 데이터를 쿼리하지 못하도록 제한할 수 있습니다. Athena를 사용하면 Amazon S3에 저장된 암호화된 데이터를 빠르게 쿼리하고 S3 버킷에 암호화된 결과를 다시 쓸 수 있습니다. 서버 측 암호화 및 클라이언트 측 암호화가 모두 지원됩니다.

통합

Amazon Athena는 즉시 AWS Glue와 통합됩니다. AWS Glue 데이터 카탈로그를 사용하면, 다양한 서비스에 걸쳐 통합된 메타데이터 리포지토리를 생성하고, 데이터 원본을 크롤링하여 스키마를 검색하고 카탈로그를 신규 및 수정된 테이블 정의와 파티션 정의로 채우고, 스키마 버전을 관리할 수 있습니다. 또한, Glue의 완전관리형 ETL 기능을 사용하면 데이터를 변환하거나 데이터를 컬럼 형식으로 변환하여 쿼리 성능을 최적화하고 비용을 절감할 수 있습니다. AWS Glue에 대해 자세히 알아보십시오.

연합 쿼리

Athena는 Amazon DynamoDB, Amazon Redshift, Amazon OpenSearch, MySQL, PostgreSQL, Redis 및 기타 주요 서드 파티 데이터 스토어를 포함한 엔터프라이즈 데이터 원본에 대한 커넥터를 제공합니다. Athena의 데이터 커넥터를 사용하면 ETL 스크립트를 통해 데이터를 이동할 필요 없이 Athena의 간편한 SQL 구문을 사용하여 여러 데이터 원본으로부터 인사이트를 생성할 수 있습니다. 데이터 커넥터는 AWS Lambda 함수로 실행되며 교차 계정 액세스를 사용하도록 설정할 수 있습니다. 이렇게 하면 SQL 쿼리를 수백 명의 최종 사용자 규모로 확장할 수 있습니다. 지원되는 소스 목록은 Athena 데이터 원본 커넥터 사용을 참조하고, 사용자 지정 데이터 원본 커넥터 구축 방법을 알아보려면 Athena의 커넥터 SDK를 참조하세요. 

기계 학습

Athena SQL 쿼리에서 SageMaker 기계 학습 모델을 호출하여 추론을 실행할 수 있습니다. SQL 쿼리에서 ML 모델을 사용하면 SQL 쿼리 작성처럼 간단한 판매 예측 및 이상 탐지, 고객 코호트와 같은 복잡한 작업을 수행할 수 있습니다. Athena를 사용하면 SQL 사용 경험이 있는 사용자가 Amazon SageMaker에 배포된 ML 모델을 쉽게 실행할 수 있습니다.

 

하지만 모든게 완벽할 수 없듯이 단점도 존재 합니다!
AWS 계정 당 최대 5개로 동시 실행 쿼리 수가 제한됩니다.. 5개가 초과될 경우 나머지 쿼리는 큐에 누적되어 연결을 유지한 채 대기하게 됩니다.. 또한 대용량의 데이터에 대화형 쿼리문을 사용하기때문에 SELECT, INSERT 기능만 제공하며 UPDATE, DELETE기능을 제공하지 않습니다. 이러한 이유로 요청량이 많은 실시간 서비스와 지속적으로 삭제, 변경되는 서비스에서는 적합하지 않습니다.
AWS 계정 당 최대 100개로 S3 버킷 생성이 제한되며 별도 요청시 최대 1,000개까지 허용될 수 있습니다.
AWS 계정 당 최대 10,000개로 데이터베이스 생성이 제한되며 각 데이터베이스는 최대 200,000개로 테이블 생성이 제한됩니다.

작동원리

간략하게 작동원리를 설명드리겠습니다.

DB의 데이터 경로를 S3로 설정을하고 S3에 적제된 데이터를 AWS Athena 쿼리문을 통해 추출합니다.

 

즉! S3에 저장되어있는 데이터들을 AWS console에서 간편하게 Athena를 통해 쿼리 명령어로 원하는 데이터를 추출 할 수 있습니다!

 

다음주에 만나요!!

'CSP (Cloud Service Provider) > AWS' 카테고리의 다른 글

Aws site-to-site VPN연결  (0) 2022.06.27
[AWS] EC2  (0) 2022.06.24
AWS CLI 리눅스에 설치 및 사용  (0) 2022.06.21
AWS - Direct Connect 란!?!?  (0) 2022.06.20
[AWS] Elasticache  (0) 2022.06.20

댓글