1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【初心者向け】Snowflakeのコンピュート課金を正しく理解する ― 60秒最低課金の誤解

1
Posted at

はじめに

Snowflakeのコンピュート課金には「60秒最低課金」というルールがあります。このルールについて、「クエリを1本投げるたびに最低60秒分の課金が発生する」と誤解されているケースを見かけます。

この記事では、Snowflakeのコンピュート課金の仕組みを正しく整理し、東京リージョンの実際の金額を使ったシミュレーションを交えながら、auto-suspendの最適な設定について考察します。

対象読者: Snowflakeのコスト管理に関心のあるデータエンジニア・アナリスト

Snowflakeのコンピュート課金の基本

ウェアハウスの状態と課金の関係

Snowflakeのウェアハウスには「サスペンド(停止)」と「稼働中」の2つの状態があります。課金のルールはシンプルです。

  • サスペンド中: 課金なし(コンピュートリソースが解放されている)
  • 稼働中: 秒単位で課金が発生(クエリの有無に関わらず)

重要なのは、ウェアハウスが稼働している間は、クエリを処理していてもアイドル状態でも同じレートで課金されるという点です。Smallウェアハウスであれば、重いクエリを処理中でも何もしていなくても、常に2クレジット/時のレートが適用されます。

image.png

秒単位課金と60秒最低課金のルール

Snowflakeのコンピュート課金は秒単位ですが、ウェアハウスが起動(リジューム)されるたびに最低60秒分のクレジットが発生します。

具体的には以下のようになります。

シナリオ 課金される時間
ウェアハウスが30秒で停止 60秒分
ウェアハウスが61秒稼働して停止 61秒分
61秒稼働→停止→再起動→30秒で停止 121秒分(60+1+60)

よくある誤解:60秒最低課金はクエリ単位ではない

誤解:「10秒のクエリでも60秒分課金される」

これは半分正しく、半分間違いです。

サスペンド状態からクエリを実行した場合(auto-resumeで自動起動)、ウェアハウスの起動に対して60秒の最低課金が適用されるため、10秒のクエリでも結果的に60秒分の課金が発生します。

しかし、すでにウェアハウスが稼働中の場合、ウェアハウスはもともと秒単位で課金が継続されています。追加の10秒のクエリを投げても、そのクエリ単体に60秒分の課金がかかるわけではありません。ウェアハウスが動いている以上、クエリを投げても投げなくても課金額は変わりません。

ポイントの整理

60秒最低課金は「ウェアハウスの起動(リジューム)イベント」に対して適用されるものであり、「個々のクエリの実行時間」に対して適用されるものではありません。

もう一つの誤解:クエリ処理中とアイドル時の課金レートは同じ

「クエリを処理しているときは多くクレジットが消費され、アイドル時は少ないのでは?」と考える方もいますが、これも誤解です。

ウェアハウスが稼働中であれば、作業の有無に関係なく一定のレートでクレジットが消費されます。これはSnowflakeがコンピュートリソースを「確保(プロビジョニング)」する仕組みを採っているためです。

ウェアハウスサイズ別のクレジット消費量(Standard Warehouse)

サイズ クレジット/時 1秒あたり 1分あたり
X-Small 1 0.000278 0.0167
Small 2 0.000556 0.0333
Medium 4 0.00111 0.0667
Large 8 0.00222 0.133
X-Large 16 0.00444 0.267
2X-Large 32 0.00889 0.533

補足: Gen2ウェアハウスの場合、AWS/GCPではX-Smallが1.35クレジット/時、Azureでは1.25クレジット/時と、若干異なるレートが適用されます。

東京リージョンの実際のクレジット金額

Snowflakeのクレジット単価は、エディション・クラウドプロバイダー・リージョンによって異なります。以下は**Snowflake Service Consumption Table(2026年2月6日時点)**に基づく、東京リージョンのオンデマンド価格です。

東京リージョンのクレジット単価(オンデマンド)

エディション AWS(東京) Azure(東京)
Standard $2.85 $2.85
Enterprise $4.30 $4.30
Business Critical $5.70 $5.70
VPS $8.55 $8.55

参考として、USリージョン(Virginia/Oregon)のStandardは$2.00、Enterpriseは$3.00ですので、東京リージョンはUSと比較して約40%割高です。

東京リージョンでのウェアハウス時間単価(Enterprise Edition)

1クレジット = $4.30で計算すると以下のようになります。

サイズ クレジット/時 時間単価 1分あたり 60秒最低課金額
X-Small 1 $4.30 $0.072 $0.072
Small 2 $8.60 $0.143 $0.143
Medium 4 $17.20 $0.287 $0.287
Large 8 $34.40 $0.573 $0.573
X-Large 16 $68.80 $1.147 $1.147
2X-Large 32 $137.60 $2.293 $2.293

ストレージ単価(東京リージョン)

項目 オンデマンド Capacity(Tier 1)
Standard Storage $25.00/TB/月 $25.00/TB/月

auto-suspendの設定とコスト最適化

短いauto-suspend vs 長いauto-suspend

auto-suspendの設定は、2つの相反するコストのバランスで考える必要があります。

auto-suspendが短い場合(例:1分)

  • アイドル時の無駄な課金を削減できる
  • ただし、クエリが断続的に来ると頻繁にサスペンド→リジュームが発生し、60秒最低課金が何度もかかる

auto-suspendが長い場合(例:30分)

  • リジュームの回数が減り、60秒最低課金の発生頻度が下がる
  • ただし、クエリがない間もウェアハウスが稼働し続けるため、アイドル課金が発生する

具体的なシミュレーション

東京リージョン、Enterprise Edition、Smallウェアハウス($8.60/時)で、1時間あたり10分間隔でクエリが来るケースを考えます。

パターンA:auto-suspend = 1分

各クエリの後にサスペンドが発生し、次のクエリで再度リジュームします。

  • リジューム回数:6回/時
  • 各リジューム時の課金:60秒 × $8.60/3600 = $0.143
  • クエリ実行時間(仮に各10秒)の課金は60秒最低に含まれる
  • 合計:約 $0.86/時

パターンB:auto-suspend = 10分

ウェアハウスはほぼ稼働し続けます。

  • 稼働時間:ほぼ60分/時
  • 合計:約 $8.60/時

パターンC:auto-suspend = 5分

クエリ間隔が10分なので、各クエリの後5分でサスペンドし、5分後に再びリジュームします。

  • 稼働時間:各回約5分(300秒)× 6回 = 1,800秒 = 30分
  • リジューム回数:6回(60秒最低課金は300秒の稼働に含まれる)
  • 合計:約 $4.30/時
パターン auto-suspend 概算コスト/時
A 1分 $0.86
C 5分 $4.30
B 10分 $8.60

この例ではauto-suspend 1分が最もコスト効率が良い結果になりました。

ただし、クエリ間隔が1〜2分程度の場合は状況が逆転します。auto-suspend 1分だと毎回リジュームが発生し、60秒最低課金が積み重なるため、ウェアハウスを稼働させ続けたほうが安くなります。

判断の目安

最適なauto-suspendの値は以下の比較で決まります。

「60秒最低課金 × リジューム回数」 vs 「アイドル時間 × 秒単位課金」
  • クエリ間隔 > auto-suspend + 60秒 → 短いauto-suspendが有利
  • クエリ間隔 < 2分 → auto-suspendを長めにするか、常時稼働が有利
  • クエリが不規則 → ワークロードを分析して最適値を見つける

まとめ

Snowflakeのコンピュート課金で押さえるべきポイントは以下の通りです。

  1. 60秒最低課金はウェアハウスの起動(リジューム)に対して適用される。個々のクエリに対してではない。
  2. ウェアハウスが稼働中であれば、クエリ処理中もアイドル時も同じレートで課金される。サスペンド中は課金なし。
  3. 東京リージョンのクレジット単価はUSリージョンの約1.4倍。Enterprise Editionで$4.30/クレジット(2026年2月時点)。
  4. auto-suspendの最適値はワークロードのクエリ間隔に依存する。一律に「短い方がいい」「長い方がいい」とは言えない。

コスト最適化のためには、自社のワークロードパターンを分析し、ウェアハウスごとに適切なauto-suspend値を設定することが重要です。Snowflakeの WAREHOUSE_METERING_HISTORY ビューなどを活用して、実際の稼働パターンを可視化することから始めてみてください。


参考情報

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?