Account Usage를 통해 Cortex AI 함수 비용 관리하기¶
Snowflake Cortex AI 함수(AI_COMPLETE, AI_SUMMARIZE, AI_TRANSLATE, AI_SENTIMENT 등)는 토큰 또는 페이지 사용량에 따라 크레딧을 사용합니다. 모니터링 및 제어가 없으면 다음과 같은 이유로 인해 이러한 함수 사용 비용이 빠르게 증가할 수 있습니다.
과도한 토큰을 생성하는 최적화되지 않은 프롬프트
장기 실행 쿼리 또는 런어웨이 쿼리
사용자당 지출 한도 부족
사용 패턴에 대한 가시성 부족
이 항목에서는 Snowflake Cortex AI 함수와 관련된 비용을 모니터링, 관리 및 제어하기 위한 전략을 제안합니다. CORTEX_AI_FUNCTIONS_USAGE_HISTORY 뷰를 사용하여 사용 패턴을 추적하고 자동화된 비용 제어를 구현할 수 있습니다. 이러한 기법은 사용량을 모니터링하고, 지출 한도를 초과할 때 경고하고, 월별 한도에 따라 함수에 대한 액세스를 제어하고, 런어웨이 쿼리를 중지하는 데 도움이 될 수 있습니다.
사용 기록 뷰¶
SNOWFLAKE.ACCOUNT_USAGE.CORTEX_AI_FUNCTIONS_USAGE_HISTORY 뷰에서는 SQL을 통해 호출되는 모든 Cortex AI 함수에 대한 자세한 원격 분석을 제공합니다. 뷰의 최대 대기 시간은 60분이지만, 함수 실행이 시작된 후 10분 이내에 데이터를 사용할 수 있습니다. 이 뷰에 대한 자세한 내용은 CORTEX_AI_FUNCTIONS_USAGE_HISTORY 뷰 섹션을 참조하세요.
기본 사용량 모니터링¶
다음 쿼리는 AI 함수 사용량 패턴을 이해하는 데 도움이 됩니다. 주기적으로 직접 실행하거나 대시보드에 통합하여 지속적인 가시성을 확보합니다.
함수 및 모델별 일일 크레딧 사용량¶
일일 지출 추세를 추적하여 사용량 급증을 식별하고 어떤 함수와 모델이 크레딧을 가장 많이 사용하는지 파악합니다.
사용자당 월별 크레딧 사용량¶
상위 컨슈머를 식별하고 시간 경과에 따른 사용자당 지출을 추적합니다. 이 쿼리는 USERS 뷰와 조인하여 더 쉽게 식별하고 후속 조치를 취할 수 있도록 이메일 및 기본 역할을 포함한 사용자 세부 정보를 제공합니다.
비용 관리¶
과도한 지출을 감지하고 시정 조치를 취하는 자동화된 메커니즘을 정의합니다. 이러한 쿼리는 서로 독립적으로 사용하거나 포괄적인 비용 거버넌스를 위해 결합하여 사용할 수 있습니다.
계정 수준 월별 지출 경고¶
전체 계정에 걸쳐 월별 AI 함수 크레딧 사용량 총계를 모니터링하는 자동화된 경고를 설정합니다. 지출이 정의된 임계값을 초과하면 지정된 관리자에게 경고 이메일 알림을 보냅니다. 경고를 설정하려면 다음 전제 조건이 필요합니다.
:ref:`알림 통합을 생성 <label-create_email_notification_integration>`하고 :ref:`경고 <label-alerts_privileges_granting>`할 수 있는 ACCOUNTADMIN 역할 또는 적절한 권한
경고 조건 검사를 실행하기 위한 웨어하우스
경고 수신자의 검증된 이메일 주소
먼저, 알림 통합이 아직 없는 경우 알림 통합을 생성합니다. 이 예제에서는 이름이 ``ai_cost_alerts``인 기존 통합을 바꿉니다.
다음으로, 매월 경고가 전송된 시점을 추적하는 테이블을 생성합니다. 이는 한 달 내에 중복 경고를 방지하는 데 사용됩니다.
이제 이 달에 경고가 이미 전송되었는지 확인하는 저장 프로시저를 생성하고, 경고 상태를 기록하고, 이메일 알림을 보냅니다.
마지막으로, 매시간 지출 임계값과 비교하여 사용량을 확인하는 경고를 생성하고 필요한 경우 프로시저를 호출하여 알림을 보냅니다. 아래 예제에서 두 위치에 나타나는 1,000크레딧 한도를 원하는 임계값으로 조정해야 합니다.
팁
테스트 목적으로 처음에는 제한을 0으로 설정하여 경고를 즉시 트리거합니다. 예상대로 작동하는지 확인한 후 원하는 임계값으로 경고를 다시 생성합니다.
0 임계값으로 테스트한 후 다음 SQL을 실행하여 이번 달에 경고가 다시 트리거되도록 허용합니다.
다음과 같이 경고 기록과 경고 상태 테이블을 쿼리하여 경고가 작동하는지 확인할 수 있습니다.
사용자당 월별 지출 한도¶
이 예제에서는 사용자당 월별 지출 한도를 구현합니다. 사용자에게 Cortex AI 함수에 대한 액세스 권한을 제공하는 전용 사용자 지정 AI_FUNCTIONS_USER_ROLE 권한이 부여됩니다. 테이블은 개별 사용자의 월별 토큰 예산을 저장합니다. 사용자가 해당 월의 예산을 초과하면 시간별 태스크는 AI_FUNCTIONS_USER_ROLE을 제거하여 AI 함수에 대한 액세스 권한을 취소합니다. 월별 태스크는 다음 달 초에 역할을 복원합니다.
중요
기본적으로 모든 사용자는 SNOWFLAKE.CORTEX_USER 데이터베이스 역할에 PUBLIC 역할이 부여되므로 AI 함수(및 기타 Snowflake Cortex 기능)에 액세스할 수 있습니다. 사용자당 제한을 적용하려면 PUBLIC에서 SNOWFLAKE.CORTEX_USER를 취소하고 AI_FUNCTIONS_USER_ROLE을 통해서만 역할을 부여해야 합니다. 다음 SQL을 사용하여 PUBLIC에서 역할을 취소합니다.
Cortex 기능에 액세스해야 하는 모든 사용자에게 AI_FUNCTIONS_USER_ROLE 권한만 부여해야 합니다. SNOWFLAKE.CORTEX_USER를 포함하는 다른 역할을 사용하면 사용자가 이 예제에서 구현된 지출 한도 제어를 우회할 수 있습니다. 경우에 따라 더 구체적인 역할을 사용할 수 있습니다. 예를 들어, Cortex Analyst에만 액세스해야 하는 사용자에게 SNOWFLAKE.CORTEX_USER 대신 SNOWFLAKE.CORTEX_ANALYST_USER 역할을 부여할 수 있습니다.
사용자당 지출 한도를 설정하려면 먼저 AI 함수에 대한 액세스 권한을 제어하는 역할을 생성하여 이 액세스 권한을 다른 권한과 별도로 관리할 수 있도록 합니다.
이제 액세스 제어 테이블을 설정하여 AI 함수 액세스 권한이 있는 사용자, 개별 지출 한도, 취소 기록을 추적합니다. 이는 자동화된 모니터링 및 액세스 복원 프로세스를 위한 정보 소스 역할을 합니다.
다음으로, AI 함수 액세스 권한을 부여할 저장 프로시저를 생성하고 지출 한도와 함께 액세스 제어 테이블에 등록합니다. 이 코드는 Account Usage 뷰에서 사용자의 ID를 조회하여 쿼리 모니터링에서 효율적인 조인을 활성화합니다.
이 저장 프로시저를 사용하여 사용자와 해당 크레딧 할당량을 액세스 제어 테이블에 추가합니다.
다음으로 월별 액세스 새로 고침 작업을 생성합니다. 이 작업은 매월 1일에 실행되어 권한이 부여된 모든 사용자에 대한 AI 함수 액세스 권한을 복원합니다. 이전 달에 한도를 초과하여 사용자의 액세스 권한이 취소된 경우 이 태스크는 새 달에 대한 새로운 예산을 부여합니다.
마지막으로, 사용자 지출을 모니터링하는 시간별 태스크를 생성하고 월별 한도를 초과하는 모든 사용자에 대한 액세스 권한을 취소합니다.
런어웨이 쿼리 감지 및 취소¶
장기 실행 AI 함수 쿼리는 상당한 비용을 누적할 수 있습니다. 이 예제에서는 크레딧 임계값을 초과하는 쿼리를 감지하고 더 많은 리소스를 사용하기 전에 쿼리를 취소하는 자동화된 시스템을 구현합니다. 전체 쿼리 세부 정보가 포함된 이메일 경고가 전송됩니다.
참고
쿼리가 취소된 경우에도 취소 시점까지 사용된 모든 리소스에 대한 요금이 클라이언트에 청구됩니다. 런어웨이 쿼리를 취소하면 추가 비용 누적이 방지되지만 이미 소비된 크레딧은 환불되지 않습니다.
이 프로시저는 지난 48시간 동안 크레딧 임계값을 초과했지만 여전히 실행 중인 AI 함수 쿼리를 찾아 취소하고 관리자에게 보고합니다.
팁
If you already know that some of your queries will run a long time, define a special role for these queries, and then exclude that role from the cancellation logic. For example, to create the role:
프로시저의 WHERE 절에 다음 조건을 추가하여 이 역할의 사용자가 실행한 쿼리가 취소되지 않도록 제외합니다.
이제 사용자는 취소되지 않고 장기 실행 쿼리를 실행하는 역할을 맡을 수 있습니다.
모범 사례¶
AI 함수 사용법에 대한 비용 관리 전략을 개발할 때 다음 모범 사례를 염두에 두세요.
모니터링부터 시작: 자동화된 제어를 구현하기 전에 :ref:`label-ai_functions_basic_usage_queries`의 쿼리를 사용하여 기준 사용 패턴을 설정합니다.
보수적인 초기 제한 설정: 낮은 임계값에서 시작하여 실제 사용 패턴에 따라 상향 조정합니다.
쿼리 태그 사용: 팀이 QUERY_TAG 세션 매개 변수를 사용하여 프로젝트 또는 팀별 비용 할당을 활성화하도록 권장합니다.
정기적으로 검토: 액세스 제어 테이블을 주기적으로 검토하고 정당한 필요에 따라 사용자당 제한을 조정합니다.
테스트 경고: 중요한 경고에 대해 이메일 알림을 사용하기 전에 이메일 알림이 올바르게 작동하는지 확인합니다.
대기 시간 고려: ACCOUNT_USAGE 뷰의 대기 시간은 최대 60분이며, 이를 모니터링 전략에 고려합니다.