
【新機能】Budgets for AI featuresが一般提供となったので試してみた
かわばたです。
2026年4月10日にBudgets for AI featuresが一般提供(GA)となりました。
AI Functions、Cortex Code、Cortex Agents、Snowflake Intelligenceといった共有リソースのクレジット消費を、チームやコストセンター単位でBudgets機能を使って追跡・管理できるようになりました。実際に試していきます。
先月のアップデートで、Snowflake Intelligence・Cortex Agentsを予算で管理できるようになりましたが、今回AI featuresとして包括的に扱えるようになり、より管理しやすくなりました。
【参考】
【公式ドキュメント】
Using budgets for AI features (shared resources)
対象読者
- AI機能のコスト管理に興味がある方
- Budgets機能でチーム別のAI利用コストを把握したい方
検証環境
- SnowflakeトライアルアカウントEnterprise版
概要
AI Functions、Cortex Code、Cortex Agents、Snowflake Intelligenceなどは、複数のチームや部門で共有して利用される共有リソース(shared resources)です。従来のBudgets機能ではウェアハウスやテーブルなどのオブジェクト単位でのコスト監視が中心でしたが、今回のGAによりこれらのAI機能を**共有リソース(shared resources)**としてbudgetに追加し、特定のユーザー(タグで指定)が消費したクレジットのみを予算に計上できるようになりました。
ワークフローは以下の3ステップです。
- ユーザーにタグを付与する — コストセンターやチームを識別するタグをユーザーに設定
- Budgetにユーザータグを追加する —
SET_USER_TAGSメソッドでBudgetに対象タグを紐付け - 共有リソースをBudgetに追加する —
ADD_SHARED_RESOURCEメソッドでAI機能を追加
これにより、同じAI Functionを複数チームが使っていても、エンジニアリングチームと財務チームそれぞれ別のBudgetでコストを追跡できます。
対応するAI機能ドメインは以下のとおりです。
| ドメイン | 説明 | インスタンス指定 |
|---|---|---|
| AI FUNCTION | AI関数(AI_CLASSIFY, AI_COMPLETEなど) | 可能(個別関数を指定可) |
| CORTEX CODE | Cortex Codeワークロード | 可能(CLI, Snowsight) |
| CORTEX AGENT | Cortex Agentワークフロー | ドメインレベルのみ |
| SNOWFLAKE INTELLIGENCE | Snowflake Intelligence | ドメインレベルのみ |
事前準備
今回は検証のため、ACCOUNTADMINを利用して付与していきます。本番運用では最小権限の観点から、SNOWFLAKE.BUDGET_CREATORロールなどBudgets用の専用ロールを作成して運用することをおすすめします。
タグとBudget用のデータベース・スキーマ作成
USE ROLE ACCOUNTADMIN;
CREATE DATABASE IF NOT EXISTS COST_MANAGEMENT;
CREATE SCHEMA IF NOT EXISTS COST_MANAGEMENT.TAGS;
CREATE SCHEMA IF NOT EXISTS COST_MANAGEMENT.BUDGETS;
タグの作成
コストセンターを識別するためのタグを作成します。
CREATE TAG IF NOT EXISTS COST_MANAGEMENT.TAGS.COST_CENTER
ALLOWED_VALUES 'ENGINEERING', 'FINANCE', 'MARKETING';
実際に試してみた
ユーザーにタグを付与する
対象ユーザーにコストセンタータグを設定します。
ALTER USER KAWABATA SET TAG COST_MANAGEMENT.TAGS.COST_CENTER = 'ENGINEERING';
タグが正しく設定されたか確認します。
SELECT SYSTEM$GET_TAG('COST_MANAGEMENT.TAGS.COST_CENTER', 'KAWABATA', 'USER');
ENGINEERINGが返却されれば成功です。

カスタムBudgetの作成と月間上限の設定
BUDGETオブジェクトを作成し、月間のクレジット上限を設定します。
CREATE SNOWFLAKE.CORE.BUDGET COST_MANAGEMENT.BUDGETS.ENGINEERING_AI_BUDGET();
CALL COST_MANAGEMENT.BUDGETS.ENGINEERING_AI_BUDGET!SET_SPENDING_LIMIT(100);
上限が設定されたか確認します。
CALL COST_MANAGEMENT.BUDGETS.ENGINEERING_AI_BUDGET!GET_SPENDING_LIMIT();

Budgetにユーザータグを追加する
SET_USER_TAGSメソッドを使い、Budgetに対象ユーザーのタグを紐付けます。UNIONを指定すると、いずれかのタグに一致するユーザーの消費が計上されます。
CALL COST_MANAGEMENT.BUDGETS.ENGINEERING_AI_BUDGET!SET_USER_TAGS(
[
[(SELECT SYSTEM$REFERENCE('TAG', 'COST_MANAGEMENT.TAGS.COST_CENTER', 'SESSION', 'APPLYBUDGET')),
'ENGINEERING']
],
'UNION');
共有リソース(AI機能)をBudgetに追加する
追加可能な共有リソースの候補を確認します。
SELECT SYSTEM$SHOW_BUDGET_SHARED_RESOURCE_CANDIDATES('AI_FUNCTION');

すべてのAI Functionsをまとめて追加します。
CALL COST_MANAGEMENT.BUDGETS.ENGINEERING_AI_BUDGET!ADD_SHARED_RESOURCE('AI FUNCTION');
Cortex Codeも追加します。
CALL COST_MANAGEMENT.BUDGETS.ENGINEERING_AI_BUDGET!ADD_SHARED_RESOURCE('CORTEX CODE');
Cortex AgentとSnowflake Intelligenceも追加する場合は以下のとおりです。
CALL COST_MANAGEMENT.BUDGETS.ENGINEERING_AI_BUDGET!ADD_SHARED_RESOURCE('CORTEX AGENT');
CALL COST_MANAGEMENT.BUDGETS.ENGINEERING_AI_BUDGET!ADD_SHARED_RESOURCE('SNOWFLAKE INTELLIGENCE');
Budget設定の確認
Budgetのスコープ(タグ・共有リソース含む)を確認します。
CALL COST_MANAGEMENT.BUDGETS.ENGINEERING_AI_BUDGET!GET_BUDGET_SCOPE();
{
"resource_tags": {
"operator": "UNION",
"tags": []
},
"resources": [],
"shared_resources": [
{
"domain": "AI_FUNCTION",
"id": -1,
"name": "[ALL-CORTEX AI FUNCTIONS]"
},
{
"domain": "CORTEX_AGENT",
"id": -1,
"name": "[ALL-AGENTS]"
},
{
"domain": "SNOWFLAKE_INTELLIGENCE",
"id": -1,
"name": "[ALL-SNOWFLAKE INTELLIGENCES]"
},
{
"domain": "CORTEX_CODE",
"id": -1,
"name": "[ALL-CORTEX CODES]"
}
],
"user_tags": {
"operator": "UNION",
"tags": [
{
"tagDatabase": "COST_MANAGEMENT",
"tagId": 1,
"tagName": "COST_CENTER",
"tagSchema": "TAGS",
"tagValues": [
"ENGINEERING"
]
}
]
}
}
共有リソースの一覧を確認します。
CALL COST_MANAGEMENT.BUDGETS.ENGINEERING_AI_BUDGET!GET_SHARED_RESOURCES();

DOMAIN列とNAME列に、追加したAI機能が表示されることを確認します。NAME列がNULLの場合は、そのドメインの全リソースが対象であることを意味します。
消費履歴の確認
AI機能を実際に使用した後、消費履歴を確認します。
CALL COST_MANAGEMENT.BUDGETS.ENGINEERING_AI_BUDGET!GET_SPENDING_HISTORY();

直近7日間の消費に絞り込むこともできます。
CALL COST_MANAGEMENT.BUDGETS.ENGINEERING_AI_BUDGET!GET_SPENDING_HISTORY(
TIME_LOWER_BOUND => DATEADD('days', -7, CURRENT_TIMESTAMP()),
TIME_UPPER_BOUND => CURRENT_TIMESTAMP()
);
サービスタイプ別の消費を詳しく確認するにはGET_SERVICE_TYPE_USAGE_V2を使用します。
CALL COST_MANAGEMENT.BUDGETS.ENGINEERING_AI_BUDGET!GET_SERVICE_TYPE_USAGE_V2('2026-04', '2026-04');

Snowsight UIでの設定
SQLだけでなく、Snowsight UIからもGUIで設定できます。
ただし、あらかじめタグを作成し、ユーザーに付与しておく必要があります。また、Snowsight からcustom budgetを作成するにはaccount budgetが有効化されている必要があります。有効化されていない場合でも、SQLからは作成可能です。
- Admin > Cost management > Budgets タブを開く

- + Budget をクリック

- 基本情報(名前、保存場所、月間クレジット上限、通知閾値)を入力

4. Budget scope ページで以下を設定:
- Tags on users セクションでコストセンタータグを選択
- Select resources to monitor セクションで追跡したいAIリソースを有効化(AI Functions / Cortex Code / Cortex Agents / Snowflake Intelligence)

-
AI Functionsは「All(auto)」を選ぶと今後追加される関数も自動的に含まれる
下記のように、AI Functionsの種類を選択することも可能

-
カスタムアクションを設定することも可能。設定内容を確認して Create をクリックし作成。

最後に
AI機能の利用が広がるにつれ、「誰がどれだけAIクレジットを使っているか」を把握するニーズは確実に高まっています。今回GAとなったBudgets for AI features(共有リソース)を活用すれば、タグベースでチームやコストセンター単位のAI利用コストを可視化でき、予算超過の早期検知も可能になります。
特にAI FunctionsやCortex Codeを全社的に展開している環境では、部門ごとのコスト配分を明確にする上で非常に有用な機能だと感じました。
この記事が何かの参考になれば幸いです!







