비용 모니터링과 통제 (리소스 모니터, 예산, ACCOUNT_USAGE)
Snowflake 청구서를 이루는 컴퓨트, 저장, 서버리스, 클라우드 서비스, AI, 데이터 전송 항목과 클라우드 서비스 10% 조정 규칙, 리소스 모니터와 예산(Budgets), 사용자별 한도, ACCOUNT_USAGE 와 ORGANIZATION_USAGE 로 비용을 쪼개 보는 쿼리, 흔한 비용 누수와 줄이는 법을 정리합니다.
청구서는 무엇으로 이루어지나
| 항목 | 단위 | 어디서 보나 |
|---|---|---|
| 웨어하우스 컴퓨트 | 크레딧 (초 단위, 재개마다 최소 60초) | WAREHOUSE_METERING_HISTORY |
| 서버리스 기능 | 크레딧 (기능별 배수) | 기능별 *_HISTORY 뷰, METERING_HISTORY |
| 클라우드 서비스 | 크레딧 (하루 컴퓨트의 10% 를 넘는 부분만) | METERING_DAILY_HISTORY |
| 저장 | TB 당 월 단가 (압축 후 평균) | STORAGE_USAGE, TABLE_STORAGE_METRICS |
| AI 기능 | AI Credits (토큰, 메시지, GB) | CORTEX_*_USAGE_HISTORY |
| 데이터 전송 | 바이트 (리전, 클라우드 밖으로) | DATA_TRANSFER_HISTORY |
클라우드 서비스 10% 규칙
클라우드 서비스 계층(컴파일, 메타데이터, 인증)이 쓴 크레딧은 그날 웨어하우스 컴퓨트 크레딧의 10% 까지 무료로 조정되고, 넘는 부분만 청구됩니다. 하루 단위로 계산합니다.
SELECT usage_date,
credits_used_compute, credits_used_cloud_services,
credits_adjustment_cloud_services, credits_billed
FROM snowflake.account_usage.metering_daily_history
WHERE usage_date >= DATEADD(day, -30, CURRENT_DATE())
ORDER BY usage_date DESC;10% 를 자주 넘는다면 아주 짧은 쿼리가 대량으로 오거나(예: 한 행씩 INSERT), 복잡한 뷰 컴파일, SHOW 명령 남발, 메타데이터 질의가 많은 경우입니다.
서버리스 기능 배수
Service Consumption Table (2026-10-15 시행판) 에서 자주 보는 값입니다. 배수는 같은 일을 웨어하우스로 했을 때 대비 크레딧 비율입니다.
| 기능 | 과금 |
|---|---|
| 서버리스 Task | 0.9 배 (Flex 는 0.5 배, PrPr) |
| Search Optimization | 2 배 |
| Automatic Clustering | 2 배 (Optima Clustering 은 압축 전 GB 당 0.007 크레딧, 새 클러스터링 테이블은 2026-09-01 부터 적용) |
| Query Acceleration Service | 1 배 |
| Snowpipe | GB 당 0.0037 크레딧 |
| Snowpipe Streaming | 압축 전 GB 당 0.0037 크레딧 |
| Cortex Analyst | 메시지 1,000 건당 6 크레딧 |
정확한 값과 새 항목은 표 원본을 확인합니다. 기능별 상세는 Snowpipe, 마이크로 파티션, Cortex AI Functions 문서에 있습니다.
리소스 모니터
리소스 모니터는 웨어하우스 크레딧을 기준으로 알림을 보내거나 웨어하우스를 멈춥니다. 서버리스 기능과 AI 는 막지 못합니다.
USE ROLE ACCOUNTADMIN;
CREATE RESOURCE MONITOR rm_bi WITH
CREDIT_QUOTA = 500
FREQUENCY = MONTHLY
START_TIMESTAMP = IMMEDIATELY
TRIGGERS ON 75 PERCENT DO NOTIFY
ON 100 PERCENT DO SUSPEND
ON 110 PERCENT DO SUSPEND_IMMEDIATE;
ALTER WAREHOUSE bi_wh SET RESOURCE_MONITOR = rm_bi;SUSPEND는 실행 중 쿼리가 끝나길 기다리고,SUSPEND_IMMEDIATE는 바로 취소합니다.- 계정 전체 모니터 하나와 웨어하우스별 모니터를 함께 쓰는 것이 일반적입니다.
- 알림을 받으려면 사용자의 알림 설정(이메일 확인)이 되어 있어야 합니다.
예산 (Budgets)
예산은 서버리스 기능과 AI 까지 포함한 월 크레딧 사용을 추적하고, 한도에 가까워지면 알림이나 사용자 정의 동작(저장 프로시저)을 실행합니다.
- 계정 예산: 계정 전체 사용량.
- 사용자 정의 예산: 태그나 객체 묶음 단위 (예:
cost_center = 'marketing'태그가 붙은 웨어하우스, 테이블, 파이프). - 2026년에는 AI 예산(2026-04 GA), 에이전트와 CoWork 리소스 예산(2026-03), Cortex Search 예산(2026-07) 이 더해졌습니다.
- 사용자별 AI 한도(2026-08 GA)는 사람마다 AI 크레딧 상한을 걸어 넘으면 몇 분 안에 막습니다.
비용 쪼개 보기
-- 쿼리별 대략 비용 (QUERY_ATTRIBUTION_HISTORY, 유휴 시간 제외)
SELECT user_name, warehouse_name, query_tag,
SUM(credits_attributed_compute) AS credits
FROM snowflake.account_usage.query_attribution_history
WHERE start_time >= DATEADD(day, -7, CURRENT_TIMESTAMP())
GROUP BY 1, 2, 3 ORDER BY credits DESC LIMIT 20;
-- 서비스 종류별 크레딧
SELECT service_type, SUM(credits_used) AS credits
FROM snowflake.account_usage.metering_history
WHERE start_time >= DATEADD(day, -30, CURRENT_TIMESTAMP())
GROUP BY 1 ORDER BY 2 DESC;
-- 저장 용량이 큰 테이블 (Time Travel, Fail-safe 포함)
SELECT table_catalog, table_schema, table_name,
active_bytes/POWER(1024,4) AS active_tb,
time_travel_bytes/POWER(1024,4) AS tt_tb,
failsafe_bytes/POWER(1024,4) AS fs_tb
FROM snowflake.account_usage.table_storage_metrics
ORDER BY active_bytes + time_travel_bytes + failsafe_bytes DESC LIMIT 20;ACCOUNT_USAGE뷰는 45분에서 3시간 정도 늦게 반영됩니다. 실시간 확인은INFORMATION_SCHEMA테이블 함수를 씁니다.- 여러 계정을 가진 조직은
SNOWFLAKE.ORGANIZATION_USAGE의USAGE_IN_CURRENCY_DAILY로 통화 금액 기준 사용량을 봅니다. QUERY_TAG세션 매개변수를 팀, 파이프라인 이름으로 붙여 두면 비용 배분이 쉬워집니다.- Snowsight 의 Cost Management 화면에서 같은 정보를 그래프로 봅니다.
흔한 비용 누수
| 누수 | 확인 | 처방 |
|---|---|---|
| 멈추지 않는 웨어하우스 | 하루 24시간 내내 크레딧 | 주기 쿼리 정리, AUTO_SUSPEND 줄이기 |
| 너무 큰 웨어하우스 | 짧은 쿼리만 도는데 L 이상 | 한 단계씩 줄이며 시간 비교 |
| 짧은 TARGET_LAG 의 Dynamic Table | 1분마다 새로 고침 | 업무에 맞게 늘리기 |
| 쓰지 않는 Search Optimization, 클러스터링 | 서버리스 크레딧 | 효과 없는 곳은 끄기 |
| 큰 테이블의 긴 Time Travel | time_travel_bytes | 보존 기간 줄이기, 임시 테이블은 TRANSIENT |
| 리전 간 복제, 자동 제공 | 전송량, 복제 크레딧 | 필요한 리전만 |
| AI 함수 전 행 실행 | AI Credits 급증 | 사용자 한도, AI_COUNT_TOKENS 로 사전 어림 |
팁 매주 "크레딧 상위 웨어하우스 5개, 상위 쿼리 20개, 서버리스 항목 변화" 세 가지만 보는 습관이 대부분의 누수를 잡습니다. 이 쿼리를 Snowsight 대시보드나 알림(Alert)으로 만들어 두세요.
트러블슈팅
증상: 리소스 모니터 한도를 넘었는데 비용이 계속 올라갑니다.
원인: 늘어난 비용이 서버리스 기능, 클라우드 서비스, AI, 저장처럼 리소스 모니터가 막지 못하는 항목입니다.
해결:
METERING_HISTORY의service_type별로 나눠 보고, 해당 항목은 예산과 사용자별 한도로 통제합니다.증상: 월말 청구 금액이 Snowsight 에서 본 크레딧 합계와 맞지 않습니다.
원인: 클라우드 서비스 조정, 저장 요금, 데이터 전송, 계약 할인율이 섞여 있습니다.
해결:
ORGANIZATION_USAGE.USAGE_IN_CURRENCY_DAILY로 통화 기준 금액을 항목별로 확인합니다.