Snowflakeのコストを概算してみよう #SnowflakeDB

2021.12.09

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

※本エントリは、Snowflakeをより使いこなそう! Advent Calendar 2021の9日目の記事となります。

さがらです。

Snowflakeについて、コストの考え方と概算できるサイトについて本エントリでまとめたいと思います。

Snowflakeのコストについて

すでに弊社でまとめた記事がありますので、こちらを一度御覧ください。

改めてこの記事でも書き起こすと、Snowflakeの費用は以下3点から主に構成されています。データ転送や、Snowpipeなどサーバーレス機能を使ったコストもありますが、「概算」であればこの3つが大きなポイントになると考えています。

  • クレジット単価(エディション・クラウドサービス・リージョンにより異なる)
  • ストレージの使用量
  • 仮想ウェアハウス(コンピューティングリソース)の起動時間

Arctica社の概算ツールを使ってみる

前述の3点を元に概算しようにも、Excel等のスプレッドシートを駆使しないと出来ないくらい手間がかかってしまうと思います。

そこで、今回はWEB上で簡単にSnowflakeの概算が出来る、下記のサイトをご紹介します。

こちらのページは、Arctica社のページです。

Arctica社は社名と同じサービスを提供しています。サービスの内容としては、Snowflakeのアクティビティを監視して、非効率的な使用パターンを特定し、スケジュールされたプロセスを微調整して、毎月のコストを削減することが出来るようです。

念のため、こちらはSnowflakeの非公式ツールであるため、概算レベルで使用することがおすすめです。正確な見積が必要な場合はぜひお問い合わせください。

Usage Cost Estimation

ということで、このページを使って概算する方法を説明します!

ここでは、ウェアハウスでの使用クレジットの試算が出来ます。この機能が、このページの目玉です

デフォルトでは下図のように表示されていると思います。この上で「Add Another Compute」を押すと、4種類の試算方法が出てきます。

この4種類の試算方法について、説明します。

ETL

定期的なETL処理でのウェアハウスのクレジット試算が出来ます。

  • Warehouse size
    • XS~XLの間で使用するウェアハウスを設定
    • XLを選択すると、「This is super powerful and expensive warehouse」と出てきます。データボリュームや処理内容にはよりますが、基本的にはL以下で充分だと私も思います。
  • Active Days
    • このETL処理が稼働する曜日を選択
  • ELT / ETL Frequency
    • このETL処理がどれだけの頻度で定期的に動くのかを選択。5分ごと~1日1回までの頻度で選択可能
    • 元データソースの更新頻度、ビジネス上必要な更新頻度、等に沿って設定するのがオススメです
  • Duration
    • 一度動いたETL処理はどれだけ時間を要するのかを確認
    • トライアルで試してみて、どれだけ時間がかかりそうか

Analytics

BIツールなどを用いた分析に使用するウェアハウスのクレジット試算が出来ます。

  • Warehouse size
    • XS~XLの間で使用するウェアハウスを設定
    • 分析用途はウェアハウスへのリクエストが多くなりやすいため、Multi-clusterとして運用したいケースも多いと思います。そんなときは、後述のAdvancedを使用して試算しましょう!
  • Active Days
    • 分析用途として稼働する曜日を選択
    • 平日勤務の形態であれば、月~金だけで充分だと思います
  • Daily Active Usage(In hours)
    • 1日あたり、対象の分析用ウェアハウスがどれだけ稼働するか選択します。
    • 仮に1日の稼働時間が8hだとしても、ウェアハウスの自動停止機能もあるため8hフルに使われることは稀だと思います。もちろん状況によりますが、まずは1日あたり3~4hで考えてよいと思います。

Ingest

S3からのロード、Fivetranなどのサービスを用いたデータ抽出とロードに関するウェアハウスのクレジット試算が出来ます。なのですが、設定内容は上述のETLとまるっきり同じです!

そのため、設定内容は上述のETLを御覧ください。

Advanced

SnowflakeはEnterprise以上のエディションでご契約頂くと、ウェアハウスのクラスター数を自動で増減してくれるMulti-cluster Warehouseが使用できます。

このAdvancedでは、Multi-cluster Warehouseを用いた場合の試算が可能です。BIツールなどリクエストの増減が激しい分析用途の試算にも使用できるかと思います。

  • Warehouse size
    • XS~XLの間で使用するウェアハウスを設定
  • Active Days
    • 分析用途として稼働する曜日を選択
    • 平日勤務の形態であれば、月~金だけで充分だと思います
  • 2時間毎に区切られたバー上の設定値
    • 各時間帯ごとに、どれだけのクラスター数が必要となるかを設定して、試算が出来ます。これは自前の試算ではすぐには出来ないと思います。
    • 上図はデフォルト値での画像をそのまま掲載していますが、「勤務開始直後にダッシュボードを多くの社員が見るためクラスター数が増える」「勤務開始時・終了間際は少なめに設定」というよくあるパターンの一つだと思いますので、ぜひ参考にしてみてください。

共通項目:Totalについて

どのウェアハウスのクレジット試算でも、一番右側に「Total」という欄があります。各試算でクレジットをどれだけ消費するかがわかる欄となっています。

  • 1番上に選択したウェアハウスに応じた、1時間あたりの消費クレジット量
  • Used Hours:設定した項目に応じた、1ヶ月あたりのウェアハウス起動時間
  • Total:設定した項目に応じた、1ヶ月あたりの消費クレジット量

Estimates by Edition

ここでは契約するエディションに応じて、Usage Cost Estimationで試算したウェアハウスの月額クレジット消費量を元に、USDベースで毎月の課金額を出してくれます。

1つ注意点があり、ここでは「AWS・US-EAST」でのクレジット単価でしか表示がされません。そのため、下記のページから皆様が使用するクラウドとリージョンを選択して、単価を出した上で計算し直す必要があります

例として、2021年12月8日時点のクレジット単価をベースに、試算してみます。

2021年12月8日時点では、AWS・Tokyoリージョンのクレジット単価は以下です。

  • Standard:1クレジットあたり$2.85
  • Enterprise:1クレジットあたり$4.30
  • Business Critical:1クレジットあたり$5.7

そして、Arcticaの試算ページでも、AWS・US-EASTリージョンでのクレジット単価が書いてあります。

  • Standard:1クレジットあたり$2.00
  • Enterprise:1クレジットあたり$3.00
  • Business Critical:1クレジットあたり$4.00

そのため、自身がEnterpriseエディション、AWS・Tokyoリージョンで使用している場合には、以下の順番に計算すればOKです。

  1. クレジット単価が何倍違うか確認
    • $4.30(AWS・Tokyoの単価)/$3.00(AWS・US-EASTの単価) = 1.433... ≒ 1.43
  2. Arcticaの試算ページ上に表記されている合計金額を元に、1番で出した倍率をかける
    • $54 × 1.43 = $77.22

ということで、Usage Cost Estimationで試算した内容だと、AWS・Tokyoリージョンでは月額$77.22かかることがわかりました!

Storage Cost Estimation

ストレージコストについても試算できるのですが、こちらもArcticaのページ上ではAWS・US-EASTでの単価しか記載されていません。

そのため、下記のページでストレージ単価を確認し、想定されるデータボリュームを掛け算したほうが早いです。

まとめ

Arctica社のSnowflake概算用のページをご紹介しました。

特にSnowflakeでのコストの大多数を占めるウェアハウスの試算については、マルチクラスター前提での見積も可能のため、とても便利なページだと思います!

Snowflakeのコストイメージがすぐに浮かばない…という方はぜひ活用してみてください。

次回

Snowflakeをより使いこなそう! Advent Calendar 2021、次回の10日目では、「Snowflakeのコスト確認方法をまとめてみる」というタイトルで執筆します。お楽しみに!