Introduction to cost anomalies

Introduction to cost anomalies (비용 이상 소개)

비용 이상(cost anomaly)은 일일 소비가 그날의 예상 소비 범위보다 위 또는 아래일 때 발생해요. Snowflake는 알고리즘을 사용해 이전 소비 수준을 기반으로 이러한 비용 이상을 자동으로 감지해요. 이는 비용의 급증·급락을 식별하는 과정을 단순화해 지출을 최적화하는 방법을 찾을 수 있게 해줘요. Snowflake는 또한 이러한 비용 이상을 조사해 근본 원인을 식별하는 도구도 제공해요.

출처: Introduction to cost anomalies

본문

참고

비용 이상을 감지하는 알고리즘은 이상을 식별하기 전에 최소 30일의 소비가 필요해요. 지난 7일 동안 내 소비가 10 크레딧 미만이면 Snowflake는 변경을 이상으로 식별하지 않아요.

비용 이상 모니터링 범위

Snowflake는 세 가지 범위에서 비용 이상을 감지해요. 계정 수준과 조직 수준 감지는 항상 켜져 있고 구성이 필요 없어요. 이상 모니터(anomaly monitors)를 사용하면 더 좁은 범위를 직접 정의할 수 있어요.

  • 계정 수준 비용 이상: 단일 계정의 소비가 그 계정의 예상 소비 범위 밖에 있을 때 발생해요.
  • 조직 수준 비용 이상: 전체 조직의 소비가 조직의 예상 소비 범위 밖에 있을 때 발생해요. 조직 수준 이상은 조직의 모든 계정의 총 소비를 기반으로 해요. 예를 들어 한 계정의 급증과 다른 계정의 급락이 서로 상쇄될 수 있으므로 조직 수준 이상으로 표시되지 않아요. 조직 수준 비용 이상을 식별·조사하려면 조직 계정이나 ORGADMIN 활성 계정에 로그인해야 해요.
  • 이상 모니터(Anomaly monitors): 이상 모니터는 직접 정의하는 명명된 사용자 지정 범위예요. 전체 계정을 보는 대신, 모니터는 내가 선택한 객체 태그와 서비스 유형과 일치하는 소비만 봐요. Snowflake는 각 모니터에 소비를 매일 귀속시키고 같은 감지 알고리즘을 실행하며, 그 모니터 특유의 알림 목록에 이메일을 보낼 수 있어요. 계정 수준 감지가 너무 거친 경우 모니터를 사용해요. 예를 들어 각 사업 단위, 비용 센터, 팀, 또는 프로젝트에 대한 모니터를 만들어 한 팀의 웨어하우스 내 급증이 계정의 총 소비가 정상으로 보일 때에도 표시되게 할 수 있어요.

이상 모니터는 미리 보기 기능이에요. 자세한 내용은 Anomaly monitors를 참고해요.

이상 모니터

이상 모니터는 다음을 포함하는 구성으로 범위가 정해져요.

객체 태그 — 태그·값 쌍. 일치하는 태그를 가진 리소스의 소비는 그 소비가 모니터의 크레딧 family에 속하는 한 모니터에 귀속돼요.

웨어하우스, 데이터베이스, 테이블 같은 리소스에 직접 적용된 태그인 리소스 수준 객체 태그만 지원돼요. 모니터는 다음을 지원하지 않아요.

  • 사용자 태그. 태그로 사용자에 범위를 정할 수 없어요. 모니터는 리소스의 태그만 평가해요.
  • 공유 리소스 귀속. 리소스가 두 개 이상의 팀에서 사용될 때 모니터는 그 리소스의 모든 소비를 모니터에 귀속시켜요. 특정 사용자가 소비한 일부만 귀속시킬 수 없어요.

Budgets는 이 둘 다를 지원해요. 공유 리소스의 소비를 사용자별로 귀속해야 한다면 대신 예산(budget)을 사용해요. 자세한 내용은 Using budgets for AI features (shared resources)를 참고해요.

모니터 범위에 태그를 포함하려면 그 태그에 대한 APPLYBUDGET 권한이 필요해요. 자세한 내용은 Access control for cost anomalies를 참고해요.

서비스 유형 — 계정 수준 서비스 유형. 포함하는 서비스 유형의 소비는 모니터 범위의 태그와 무관하게 전체 계정에 대해 완전히 모니터에 귀속돼요. 태그된 리소스에 귀속할 수 없는 소비를 모니터가 다루게 하려면 서비스 유형을 포함해요.

크레딧 family — CREDITS 또는 AI-CREDITS. Credit families 참고.

모니터의 범위는 최소 하나의 객체 태그 또는 하나의 서비스 유형을 포함해야 해요. 태그만, 서비스 유형만, 또는 둘의 조합을 사용할 수 있지만, 모니터는 빈 범위를 가질 수 없어요. 모니터는 최대 20개의 태그·값 쌍과 최대 20개의 서비스 유형을 포함할 수 있어요.

모니터의 범위는 그 안의 모든 것의 합집합이에요. 소비는 범위의 어떤 태그와 일치하거나 범위의 어떤 서비스 유형에 속하면 모니터에 귀속돼요. 태그는 결합되지 않으므로, 리소스가 포함되기 위해 모든 태그를 담을 필요는 없어요. 리소스가 범위의 한 부분 이상과 일치하면 모니터는 그 소비를 한 번만 세므로 이중 계산되지 않아요.

모니터는 단일 계정으로 범위가 정해지므로 조직의 모든 계정을 아우르는 모니터를 만들 수 없어요. 각 계정은 최대 20개의 모니터를 가질 수 있어요.

크레딧 family

크레딧과 AI 크레딧은 다른 측정 단위이며 함께 더할 수 없어요. 그래서 각 모니터는 정확히 하나의 크레딧 family를 추적하며, 이는 모니터를 만들 때 선택해요.

크레딧 family 설명
CREDITS 가상 웨어하우스 컴퓨팅, 서버리스 태스크, Snowpipe 같은 전통적 소비.
AI-CREDITS Cortex Search, Cortex Agents, AI 함수 같은 AI 관련 서비스의 소비.

선택한 크레딧 family가 모니터에 추가할 수 있는 서비스 유형을 결정해요. 그 크레딧 family로 청구되는 서비스 유형만 추가할 수 있어요. 서비스 유형의 크레딧 family를 찾으려면 Service types의 Unit 컬럼을 참고해요. Credits 단위는 CREDITS 크레딧 family에, AI Credits는 AI-CREDITS에 대응돼요.

크레딧 family는 모니터의 태그가 귀속하는 소비도 필터링해요. 태그된 리소스는 크레딧과 AI 크레딧 둘 다 소비할 수 있지만, 모니터는 자체 크레딧 family에 속하는 소비만 세요. 다른 크레딧 family의 소비는 태그가 일치해도 제외돼요.

같은 태그 집합에 대해 전통적 소비와 AI 소비를 모두 추적하려면 각 크레딧 family당 하나씩 두 개의 모니터를 만들어요.

모니터를 최신 상태로 유지

Snowflake는 각 모니터의 소비를 매일 재계산하므로 태그 정의의 변경은 24시간 내에 반영돼요. 리소스 재태깅은 다르다. Snowflake는 리소스가 태그를 얻거나 잃었다는 것을 감지할 수 없으므로, 리소스를 재태깅하고 모니터의 이력을 즉시 새로고침하려면 재계산을 강제할 수 있어요. 자세한 내용은 Snowsight로 비용 이상 작업 또는 프로그램 방식으로 비용 이상 작업을 참고해요.

모니터를 저장하기 전에 태그와 서비스 유형의 조합을 테스트하고 그것이 만들어낼 이상을 볼 수도 있어요. 테스트 구성은 저장되지 않고 세션이 끝나면 사라져요. 저장하려면 Create new monitor from config를 선택해요.

시작하기

사용자 인터페이스로 비용 이상을 식별·조사하려면:

  1. 필수 권한이 있는 사용자로 Snowsight에 로그인해요.
  2. 내비게이션 메뉴에서 Admin » Cost management를 선택하고 Anomalies를 선택해요.

비용 데이터의 측정 단위

비용 데이터는 크레딧이 측정 단위이거나 통화가 측정 단위로 표시될 수 있어요. 측정 단위는 다음 상황에서 통화예요.

  • ACCOUNTADMIN 또는 GLOBALORGADMIN 시스템 역할로 비용 이상으로 작업하면, 조직 계정이나 ORGADMIN 역할이 활성화된 계정에 로그인한 경우 비용 데이터가 통화로 표시돼요.
  • 시스템 관리자가 아니라면, ORGANIZATION_BILLING_VIEWER 애플리케이션 역할 또는 APP_ORGANIZATION_BILLING_VIEWER 애플리케이션 역할을 부여받으면 비용 데이터가 통화로 표시돼요. 이 애플리케이션 역할에 대한 자세한 내용은 Access control for cost anomalies를 참고해요.

참고

이상 모니터는 항상 크레딧 또는 AI 크레딧으로 소비를 보고해요. 모니터는 통화를 측정 단위로 지원하지 않아요.

비용 이상 뷰에 대한 쿼리 실행

ACCOUNT_USAGE와 ORGANIZATION_USAGE 스키마의 뷰에 대해 쿼리를 실행해 계정 수준 비용 이상에 대한 과거 데이터를 반환할 수 있어요. 뷰의 각 행은 특정 날짜의 소비와 그 소비가 비용 이상이었는지 여부를 포함해요.

  • 현재 계정의 비용 이상: ACCOUNT_USAGE 스키마의 ANOMALIES_DAILY 뷰에 대해 쿼리를 실행해 현재 계정에서 비용 이상이 발생했는지 인사이트를 얻어요. 이 뷰는 소비 측정 단위로 크레딧을 사용해요.
  • 조직의 모든 계정의 비용 이상: ORGANIZATION_USAGE 스키마의 ANOMALIES_IN_CURRENCY_DAILY 뷰에 대해 쿼리를 실행해 조직의 계정에서 비용 이상이 발생했는지 인사이트를 얻어요. 모든 계정이 ORGANIZATION_USAGE 스키마에 접근할 수 있는 것은 아닙니다. 이 뷰를 사용해 크레딧이 아니라 통화를 측정 단위로 볼 수 있어요.

이상 모니터 결과는 이 뷰들에서 사용할 수 없어요. 모니터의 결과를 검색하려면 ANOMALY_INSIGHTS!GET_MONITOR_ANOMALIES를 사용해요.

알림

Snowflake는 비용 이상이 발생하면 알려줄 수 있어 빠르게 대응할 수 있게 해줘요. 알림은 비용 이상이 감지되면 하루에 한 번 전송돼요. 일일 이상 알림 프로세스는 계정 수준과 조직 수준 비용 이상에 대해 두 가지 유형의 알림을 모두 보내요.

  • 이메일: 특정 이메일 주소로 알림을 보내요. Snowsight에서 수신자를 구성해요(Snowsight로 비용 이상 작업 참고) 또는 ANOMALY_INSIGHTS 클래스 메서드로 구성해요.
  • 알림 통합: 알림 통합을 등록해 Slack, SMS(문자), 또는 웹훅 대상으로 알림을 보내요. 통합을 등록하려면 ANOMALY_INSIGHTS!ADD_NOTIFICATION_INTEGRATION을, 등록된 통합을 나열하려면 ANOMALY_INSIGHTS!GET_NOTIFICATION_INTEGRATIONS를, 제거하려면 ANOMALY_INSIGHTS!REMOVE_NOTIFICATION_INTEGRATION을 사용해요.

각 이상 모니터는 계정 수준·조직 수준 목록과 별개인 자체 이메일 알림 목록을 가져요. 모니터는 이메일 알림만 지원하고 알림 통합은 지원하지 않아요. 목록을 설정하려면 Snowsight의 Configure notifications with Snowsight 또는 ANOMALY_INSIGHTS!SET_MONITOR_NOTIFICATION_EMAILS를 사용해요.

더 알아보기

비용 이상 작업 방법에 대한 정보는 다음을 참고해요.