본문 바로가기
1. 개발/1.4. 데이터 분석

SQL로만 빠르게 분석하고 싶을 때 Athena, Presto

by 엉짱 2026. 2. 7.
반응형

데이터 레이크(S3)에 Parquet나 CSV로 데이터를 예쁘게 쌓아두기만 하면, 비싼 DB 서버를 24시간 켜두지 않고도 SQL을 날릴 수 있는 서버리스(Serverless) 분석 도구들이 있습니다. 바로 AWS Athena와 그 뿌리가 되는 Presto죠.

이 녀석들이 사용자의 지갑을 어떻게 지켜주는지, 그리고 반대로 언제 지갑을 털어가는지(?) 전해드립니다!


1. AWS Athena: "사용한 만큼만 내는 철저한 서버리스"

Athena는 인프라 관리가 아예 필요 없습니다. 그냥 S3에 데이터가 있으면 SQL을 날리고, 날린 만큼만 돈을 내면 됩니다.

💰 Athena의 비용 구조

  • 쿼리당 비용: 스캔한 데이터 1TB당 $5.00입니다.
  • 최소 단위: 쿼리당 최소 10MB의 스캔 비용이 청구됩니다.
  • 장점: 서버를 켜두는 유지비(Idle cost)가 0원입니다. 하루에 쿼리를 딱 한 번만 날린다면, 단돈 몇 원으로 분석이 끝납니다.

⚠️ Athena 비용 폭탄 피하는 법

사용자가 만약 100TB의 데이터를 CSV 통파일로 쌓아두고 SELECT *를 날리신다면, 한 번의 쿼리에 $500(약 65만 원)이 나갈 수도 있습니다. 그래서 앞서 배운 Parquet 포맷파티셔닝이 여기서 돈을 벌어다 줍니다.

  • Parquet 활용: 필요한 열(Column)만 읽으므로 스캔 양이 1/10로 줄어 비용도 1/10이 됩니다.
  • 파티셔닝: WHERE date = '2026-02-03' 조건을 걸면 해당 폴더만 읽으므로 비용이 1/1000까지 내려갑니다.

2. Presto (Trino): "자유도가 높은 고성능 엔진"

Athena의 엔진이 바로 Presto(현재는 Trino로 더 많이 불림)입니다. Athena가 '구독 서비스'라면, Presto는 사용자가 직접 '슈퍼카'를 사서 관리하는 것과 같습니다.

💰 Presto의 비용 구조

  • 서버 유지비: Presto는 EC2 같은 서버 인스턴스에 직접 설치해서 띄워야 합니다. 쿼리를 날리든 안 날리든 24시간 서버 대여료가 나갑니다.
  • 스캔 비용: 쿼리를 아무리 많이 날려도 추가적인 '스캔 비용'은 없습니다. 오직 서버 성능(CPU/RAM)에 따른 시간당 비용만 냅니다.

⚖️ Athena vs Presto 가성비 비교

구분 AWS Athena Presto (직접 설치)
초기 비용 0원 서버 구축 비용 발생
운영 부담 없음 (AWS가 다 해줌) 높음 (서버 관리, 튜닝 필요)
비용 발생 지점 쿼리할 때 '읽은 데이터 양' 쿼리 여부 상관없이 '서버 켜진 시간'
가장 유리한 상황 쿼리가 가끔 발생할 때, 분석팀이 작을 때 24시간 내내 쿼리가 폭주할 때, 대규모 조직

3. 실전 시나리오: '테마주 분석' 비용 계산

10TB의 주식 이력 데이터를 가지고 있다고 가정해 봅시다.

  1. Athena 사용 시: * 파티셔닝과 Parquet를 잘 적용해서, 특정 종목 분석 시 쿼리당 평균 1GB를 스캔한다면?
  • 한 번 조회할 때마다 약 $0.005 (약 7원) 정도 나옵니다. 1,000번 조회해도 커피 한 잔 값(7,000원)입니다. 매우 경제적이죠!
  1. Presto(EC2) 사용 시:
  • 분석을 위해 중급 사양의 서버 3대를 24시간 켜둔다면?
  • 한 달에 약 $300500 (약 4065만 원)이 고정적으로 나갑니다. 쿼리를 한 번도 안 날려도요!

💡 결론: 혼자 혹은 소수 인원이 분석하신다면 무조건 Athena가 압도적으로 저렴합니다.


4. 멱등성과 분석 비용의 관계

"아까 배운 멱등성이 여기서도 중요해?" 라고 물으신다면, 네! 매우 중요합니다.

  • 중복 데이터가 있으면: Athena는 중복된 데이터까지 다 스캔하느라 돈을 더 받아 갑니다.
  • 멱등성을 지킨 깨끗한 데이터는: 중복이 없으니 스캔 양이 최적화되고, 분석 결과도 정확하며 비용도 최소화됩니다.

💡 비용 최적화 3계명

  1. 압축(Snappy/Zstd)과 Parquet는 선택이 아닌 필수: CSV 대비 80% 이상의 비용을 즉시 절감합니다.
  2. 쿼리 결과 재사용: Athena는 최근 쿼리 결과를 S3에 저장해둡니다. 똑같은 쿼리를 또 날리지 말고 결과 파일을 확인하세요.
  3. 한도 설정: AWS 예보(Budgets) 설정을 통해, 하루 쿼리 비용이 일정 금액을 넘으면 알람이 오게 하세요. (실수로 잘못된 쿼리를 날려 지갑이 털리는 걸 방지합니다.)

📊 요약: 데이터 분석 도구 선택

  • "가끔 분석하고, 관리하기 귀찮아!" 👉 Athena (강력 추천)
  • "초단위로 수만 명의 사용자가 SQL을 날려야 해!" 👉 Presto/Trino (고정 서버)
  • "데이터가 너무 많아서 SQL로는 느려!" 👉 Spark (분산 처리 엔진)

반응형