반응형
데이터 레이크(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의 주식 이력 데이터를 가지고 있다고 가정해 봅시다.
- Athena 사용 시: * 파티셔닝과 Parquet를 잘 적용해서, 특정 종목 분석 시 쿼리당 평균 1GB를 스캔한다면?
- 한 번 조회할 때마다 약 $0.005 (약 7원) 정도 나옵니다. 1,000번 조회해도 커피 한 잔 값(7,000원)입니다. 매우 경제적이죠!
- Presto(EC2) 사용 시:
- 분석을 위해 중급 사양의 서버 3대를 24시간 켜둔다면?
- 한 달에 약 $300
500 (약 4065만 원)이 고정적으로 나갑니다. 쿼리를 한 번도 안 날려도요!
💡 결론: 혼자 혹은 소수 인원이 분석하신다면 무조건 Athena가 압도적으로 저렴합니다.
4. 멱등성과 분석 비용의 관계
"아까 배운 멱등성이 여기서도 중요해?" 라고 물으신다면, 네! 매우 중요합니다.
- 중복 데이터가 있으면: Athena는 중복된 데이터까지 다 스캔하느라 돈을 더 받아 갑니다.
- 멱등성을 지킨 깨끗한 데이터는: 중복이 없으니 스캔 양이 최적화되고, 분석 결과도 정확하며 비용도 최소화됩니다.
💡 비용 최적화 3계명
- 압축(Snappy/Zstd)과 Parquet는 선택이 아닌 필수: CSV 대비 80% 이상의 비용을 즉시 절감합니다.
- 쿼리 결과 재사용: Athena는 최근 쿼리 결과를 S3에 저장해둡니다. 똑같은 쿼리를 또 날리지 말고 결과 파일을 확인하세요.
- 한도 설정: AWS 예보(Budgets) 설정을 통해, 하루 쿼리 비용이 일정 금액을 넘으면 알람이 오게 하세요. (실수로 잘못된 쿼리를 날려 지갑이 털리는 걸 방지합니다.)
📊 요약: 데이터 분석 도구 선택
- "가끔 분석하고, 관리하기 귀찮아!" 👉 Athena (강력 추천)
- "초단위로 수만 명의 사용자가 SQL을 날려야 해!" 👉 Presto/Trino (고정 서버)
- "데이터가 너무 많아서 SQL로는 느려!" 👉 Spark (분산 처리 엔진)
반응형
'1. 개발 > 1.4. 데이터 분석' 카테고리의 다른 글
| 실시간 Skew를 자동으로 감지해서 'Salting' 로직을 켰다 껐다 하는 지능형 파이프라인 (0) | 2026.02.08 |
|---|---|
| 실시간 데이터에서 Skew 발생 시 대응 (0) | 2026.02.08 |
| DW 비용이 걱정될때 멱등성을 지키면서 데이터를 보관하는 방법 (0) | 2026.02.07 |
| '데이터 무결성'을 지키는 최후의 보루, 멱등성(Idempotency) (0) | 2026.02.07 |
| 데이터가 너무 많아질 때 비용을 아끼는 '스토리지 최적화(S3 Tiering, Compression)' 기법 (0) | 2026.02.07 |