본문 바로가기

블로그

LG CNS 기술블로그 DX Lounge에서 최신 IT 소식을 만나보세요!

AWS Ambassador

사용자 별 Athena 쿼리 제약을 통한 비용 제어 방안

2023.09.14

1.개요

일반적으로 Amazon S3에 저장된 데이터의 탐색을 위해서 Amazon Athena를 사용합니다.
Amazon Athena를 통해 데이터 탐색을 할 때 잘못된 Scan 범위(Query)로 인하여 큰 비용이 발생할 수 있습니다.
이번 포스팅에서는 Amazon Athena 사용 시 Query 실수로 인한 대용량 Scan을 방지하기 위해 Workgroup의 기능인 Data Uasge control을 통한 Query 제한과 Amazon Athena를 사용하는 Workgroup의 Data scan 추이에 대한 모니터링을 위한 Data uasge alerts 구성을 통한 사용량 알림 기능 구현에 대해 살펴보겠습니다.

2. 내용

2.1 아키텍처 다이어그램

이번 포스팅의 데모에서는 다음과 같은 아키텍처를 구성합니다.

2.2 서비스 소개

이번 포스팅에서 다루는 AWS 서비스를 간략히 소개합니다.

2.2.1 Amazon Athena

데이터 분석 작업을 위해 많이 사용되고 있는 관리형 서버리스 쿼리 서비스로 S3에 저장된 데이터를 쿼리하고 분석할 수 있습니다.
이번 포스팅에서는 별도의 Workgroup을 생성하여 데이터 탐색에 대한 제약 조건 및 알림 기능을 활성화 하여 데이터 탐색에 대한 거버넌스를 확보할 수 있도록 합니다.

2.2.2 AWS Glue

완전 관리형 ETL 서비스로 다양한 원본으로부터 데이터를 추출, 변환, 로드(저장)할 수 있습니다.
스키마 추론, 데이터 카탈로그 생성 등 데이터 변환 작업을 자동화 할 수 있으며 이번 포스팅에서는 S3에 저장된 데이터를 탐색하기 위한 Database(Schema)를 생성하여 사용합니다.

2.2.3 Amazon S3

오브젝트 스토리지 서비스로 데이터를 저장하고 검색할 수 있는 내구성 높은 스토리지 솔루션을 제공합니다.

2.2.4 Amazon SNS

완전 관리형 메시징 서비스로 푸시 알림, SMS, 이메일 등 다양한 방식으로 메시지를 보낼 수 있습니다.
이번 포스팅에서는 Lambda와 연결하여 Slack으로의 메시지 푸싱을 구현합니다.

2.2.5 AWS Lambda

서버리스 컴퓨팅 서비스로, 코드를 실행하고 관리하기 위해 서버를 프로비저닝하거나 관리할 필요 없이 간편하게 코드를 실행할 수 있습니다.
이번 포스팅에서 SNS topic을 Slack으로 전달하는 기능을 구현합니다.

2.3 데모 구성

이번 데모에서는 Amazon Athena 사용 시에 거버넌스 확보를 위한 Athena Workgroup 기능을 사용하여 Scan 하는 데이터 양에 대한 Query 제약과 Scan 용량에 대한 알림 설정을 구현해보겠습니다.

2.3.1 Glue Data Catalog 생성

이번 데모에서는 AWS 에서 가이드하는 Public Dataset의 일부를 약식으로 활용하도록 합니다.
https://registry.opendata.aws/
• 사용할 데이터 셋: https://registry.opendata.aws/southern-california-earthquakes/

2.3.1.1 Crawler 구성

AWS Glue > Crawlers > Create crawler

• Step1

• Step2
◦ Add Data source
 • Location of S3 data: In a different account
 • S3 path: s3://scedc-pds/earthquake_catalogs/index/csv/

• Step3
◦ 데모에서는 IAM Role을 임시로 생성하여 사용 합니다.

• Step4
◦ Add Database 로 신규 database 생성 후 선택 합니다.

• Step5
◦ Create crawler

2.3.1.2 Crawler 기동

AWS Glue > Crawlsers > 생성한 Crawler > Run crawler

2.3.1.3 Table 확인

AWS Glue > Tables > 생성 된 테이블 확인

2.3.2 Athena Workgroup 구성

Amazon Athena > Workgroups > Create workgroup
• Workgroup details
◦name

• Analytic engine

• Query result configuration
Query result 결과 저장을 위한 별도의 버킷 생성 후 지정합니다.
(데모는 약식 진행을 위해 별도의 암호화 및 접근 제어를 설정하지 않습니다.)

• Per query data usage control 설정을 통해 최대 Scan data limit을 제어할 수 있습니다.
데모에서는 테스트를 위해 10MB(Minimum)로 설정하였습니다.

• Workgroup data usage alerts 설정을 통해 workgruop 별 scan data 양을 모니터링 할 수 있습니다.
Create SNS topic을 통해 Standard SNS topic을 생성하여 연결합니다.
데모에서는 테스트를 위해 Data threshold를 100MB로 설정하였습니다.

2.3.3 Athena Query limit 테스트

Amazon Athena > Query editor, 우측 Workgroup 드롭박스에서 신규로 생성한 Workgroup으로 스위치 합니다.

• Workgroup 변경

• Query limit Test
대상 테이블에 대해 10만 건 조회 시 Workgroup에 설정된 임계값(10Mb)에 도달해 Scan이 Cancle 되는 것을 확인할 수 있습니다.

2.3.4 Athena data uasge alerts 테스트

• Slack 연계는 다음 페이지를 참고하여 설정합니다.
◦ Link: https://www.lgcns.com/blog/cns-tech/aws-ambassador/41065/

• 다음과 같이 Slack을 통해 모니터링 알람을 확인할 수 있습니다.

3. 마무리

이번 포스팅을 통해 Workgroup의 기능인 Per query data usage control과 Workgroup data usage alerts을 사용해 보았습니다.
이와 같은 기능을 활용해 Amazon Athena 사용 시에 비용 정책과 모니터링 정책을 마련하여 보다 나은 데이터 탐색 아키텍처를 설계하여 비용에 최적화된 아키텍처 구현을 할 수 있습니다.

챗봇과 대화를 할 수 있어요