【新機能】Budgets for AI featuresが一般提供となったので試してみた

【新機能】Budgets for AI featuresが一般提供となったので試してみた

2026.04.13

かわばたです。

2026年4月10日にBudgets for AI featuresが一般提供(GA)となりました。
AI Functions、Cortex Code、Cortex Agents、Snowflake Intelligenceといった共有リソースのクレジット消費を、チームやコストセンター単位でBudgets機能を使って追跡・管理できるようになりました。実際に試していきます。

先月のアップデートで、Snowflake Intelligence・Cortex Agentsを予算で管理できるようになりましたが、今回AI featuresとして包括的に扱えるようになり、より管理しやすくなりました。

【参考】

https://dev.classmethod.jp/articles/snowflake-si-resource-budgets-management/

https://zenn.dev/snowflakejp/articles/237c562f5aab5d

【公式ドキュメント】
Using budgets for AI features (shared resources)
https://docs.snowflake.com/en/user-guide/budgets/budget-shared-resources

対象読者

  • AI機能のコスト管理に興味がある方
  • Budgets機能でチーム別のAI利用コストを把握したい方

検証環境

  • SnowflakeトライアルアカウントEnterprise版

概要

AI Functions、Cortex Code、Cortex Agents、Snowflake Intelligenceなどは、複数のチームや部門で共有して利用される共有リソース(shared resources)です。従来のBudgets機能ではウェアハウスやテーブルなどのオブジェクト単位でのコスト監視が中心でしたが、今回のGAによりこれらのAI機能を**共有リソース(shared resources)**としてbudgetに追加し、特定のユーザー(タグで指定)が消費したクレジットのみを予算に計上できるようになりました。

ワークフローは以下の3ステップです。

  1. ユーザーにタグを付与する — コストセンターやチームを識別するタグをユーザーに設定
  2. Budgetにユーザータグを追加するSET_USER_TAGSメソッドでBudgetに対象タグを紐付け
  3. 共有リソースを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が返却されれば成功です。
2026-04-13_11h05_34

カスタム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();

2026-04-13_11h06_40

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');

2026-04-13_11h08_58

すべての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();

2026-04-13_11h10_44

DOMAIN列とNAME列に、追加したAI機能が表示されることを確認します。NAME列がNULLの場合は、そのドメインの全リソースが対象であることを意味します。

消費履歴の確認

AI機能を実際に使用した後、消費履歴を確認します。

CALL COST_MANAGEMENT.BUDGETS.ENGINEERING_AI_BUDGET!GET_SPENDING_HISTORY();

2026-04-13_16h49_24

直近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');

2026-04-13_16h50_44

Snowsight UIでの設定

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

  1. Admin > Cost management > Budgets タブを開く
    2026-04-13_11h14_56
  2. + Budget をクリック
    2026-04-13_11h17_09
  3. 基本情報(名前、保存場所、月間クレジット上限、通知閾値)を入力

2026-04-13_11h19_39
4. Budget scope ページで以下を設定:

  • Tags on users セクションでコストセンタータグを選択
  • Select resources to monitor セクションで追跡したいAIリソースを有効化(AI Functions / Cortex Code / Cortex Agents / Snowflake Intelligence)

2026-04-13_16h02_11

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

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

最後に

AI機能の利用が広がるにつれ、「誰がどれだけAIクレジットを使っているか」を把握するニーズは確実に高まっています。今回GAとなったBudgets for AI features(共有リソース)を活用すれば、タグベースでチームやコストセンター単位のAI利用コストを可視化でき、予算超過の早期検知も可能になります。

特にAI FunctionsやCortex Codeを全社的に展開している環境では、部門ごとのコスト配分を明確にする上で非常に有用な機能だと感じました。

この記事が何かの参考になれば幸いです!

この記事をシェアする

関連記事