TECHSCORE BLOG

クラウドCRMを提供するシナジーマーケティングのエンジニアブログです。

Snowflake プラン選定やランニングコスト見積もり方法

小林 正芳(コバヤシ マサヨシ)
データエンジニアです
キーワード: パイプライン処理, 機械学習システム, 調査分析, 男子2児の父


はじめに

Snowflake は Snowflake 社の提供するクラウドベースで動くSaaS型DWHです。 単に DWH としてだけでなくデータマーケットプレイスと連動し、自社データ以外との分析が可能です。 Snowflake は AWS, GCP, Azure にあるクラウド型 DWH と同様に従量課金です。 その従量課金にはクレジット(Snowflake のリソース使用量)という概念もあり、費用算出方法が少し分かりづらいです。 本記事では例を示しながら、見積もり用途などの費用算出について言及します。

読んでほしい人

  • これから Snowflake を検討/採用しようとしている人
  • Snowflake の費用見積もりの依頼を受けた人
  • Snowflake の費用について情報収集している人

書いていないこと

  • Snowflake 自体の詳細説明
  • Snowflake のメリット/デメリット
  • Snowflake と類似サービスとの比較

見積もり方法

以下のステップで見積もりを進めます。

  1. 必須項目の詳細を決定
  2. プランとクラウドのプラットフォームの選定
    1. 見積もり全体に影響します。
    2. AWS, GCP, Azure から選ぶことができます。
    3. なお、リージョンによっても金額が変わります。
  3. 費用の算出と調整

なお、今回は例として1日当たりの平均アクセスユーザー数が 1人 である小規模な環境の見積もりを出します。

1. 必須項目の詳細を決定

今回弊社が構築するシステム環境や分析基盤は「流通量がそう多くないECの日次の購買分析」を想定しています。 分析担当は少人数で短時間の作業を想定しています。 この小規模な想定ですと Snowflake を使用することは相応しくないかもしれませんが、以降は最低限必要な設定値として見積もりをします。

上記にあるように小規模なシステム環境や分析基盤を想定して Warehouse (CPU) が最小の XS、1日当たりの平均アクセスユーザー数を 1人 としました。 これらを下記の 3. 費用の算出と調整 でも使用します。

必須項目
参考値
詳細
Warehouse XS Snowflake 独自用語です。CPU のサイズと理解してください。日本だと XS, S を選ぶ方が多いと聞きます。
利用ストレージ(TB) 1TB 圧縮済みでのストレージサイズになります。
1日当たりのデータ読み込み時間(h) 3h 1日あたりのデータの読み込み実行時間になります。一例ですが圧縮済みの 250MB データは Warehouse が XS のとき数分で読み込みが終わりました。
1日当たりのデータアクセス時間(h) 5h 1日あたり1人が Snowflake を操作する時間になります。
1日当たりの平均アクセスユーザー数 1人 毎日 Snowflake を操作する人数になります。

Warehouse (CPUサイズ)を大きくすると処理時間が短くなります。 費用がかかっても処理を早くしたい場合は Warehouse をサイズアップをしてください。 Warehouse をサイズアップすることで処理時間が短くなり、結果として費用が下がるケースもあります。 なお、処理(クエリ)ごとに Warehouse の選択が可能です。 見積もり段階ではひとまず仮置きして、運用しながら調整しましょう。

2. プランとクラウドのプラットフォームの選定

2. 1. プラン

料金体系 | Snowflake 【スノーフレイク】 https://cdn-ak.f.st-hatena.com/images/fotolife/t/techscore/20221202/20221202101013.png

Snowflake では スタンダード, エンタープライズ, ビジネスクリティカル, バーチャルプライベートSNOWFLAKE と4つのプランがあります。 この中からビジネス要件に合わせてプランを選ぶことになります。 弊社は スタンダードとエンタープライズで迷いました。 特に以下の2点が迷うポイントでした。

  1. エンタープライズプランには「最大90日間の Time Travel」という機能があります。   ・ 保守観点からは魅力的な機能です。
  2. しかし、エンタープライズプランの料金はスタンダードプランの 1.5倍 になります。   ・ 1クレジットあたりの料金が 1.5倍 になります。

しかし1. 必須項目の詳細を決定にあるように、今回の想定ですとデータ欠損のリスクは低いと判断したので、Time Travel の対象日数が短く料金の安いスタンダードプランを選びました。

また、Time Travel の説明や利用方法はこちらです。 Time Travel の主な機能は以下になります。

  • DROP したオブジェクトの復元
  • 以前の状態のテーブルに対して SELECT を実行
  • クローンを用いた復元

2. 2. クラウドのプラットフォームやリージョン

以下を参考にクラウドのプラットフォームやリージョンを選びます。

Pricing Guide | Snowflake

選ぶときのポイントは以下です。

  1. 1クレジットあたりの料金
    1. クレジットとは Snowflake のリソース使用量の単位です。
    2. CPU 使用料ととらえて問題ありません。
    3. Warehouse が XS だと1時間あたり1クレジット、S だと1時間あたり2クレジットになります。
  2. 現在利用しているクラウドのプラットフォームとの親和性
    1. 利用しているデータストレージから Snowflake へデータを転送する際の手間やコストに影響します。
    2. 弊社は AWS 環境を多く利用していますので AWS を選択しました。

3. 費用の算出と調整

上記 1, 2 の項目をもとに、費用の算出や調整をします。

3.1. 基本設定

最低限必要な設定を採用しました。

#
項目
詳細
メモ
1 プラン スタンダード Time Travel の利用範囲は1日とします。
2 クラウドプロバイダー AWS
3 リージョン US East (Northern Virginia)
4 Warehouse XS

上記、設定によって動的に変更される項目はこちらです。

#
項目
詳細
メモ
5 クレジット(CPUの単位) 1 #4 Warehouse を S にするとクレジットは 2 になります。
6 1クレジット当たりの費用($) $2

3.2. ストレージ費用

こちらも最低限の利用範囲で見積もります。

#
項目
詳細
メモ
7 利用ストレージ(TB) 1TB 圧縮済みでのサイズです。
8 1ヶ月の1TB当たりのストレージ費用($) $23

3.3. データI/O費用

データI/Oは毎日、月30日行われる想定です。

#
項目
詳細
メモ
9 1日当たりのデータI/O時間(h) 3h 読み込みウィンドウと呼称されています。
10 1ヶ月(30日)のデータI/O費用($) $180 3h * 30日 * $2 (#6,9参照)

3.4. データアクセス費用

人によるデータアクセスは営業日のみ行われる想定です。 営業日は月20日とします。

#
項目
詳細
メモ
11 1日当たりのデータアクセス時間(h) 5h
12 1日当たりの平均アクセスユーザー(人) 1人 1人(ユーザー、アカウント)が毎日5時間Snowflakeにアクセスする想定です。
13 1ヶ月20日営業日あたりのデータアクセス費用($) $200 5h * 1人 * 20日 * $2 (#6,11,12参照)

3.5. 1ヶ月あたりの総費用

約6万円となりました。

#
項目
詳細
メモ
14 1ヶ月の総費用($) $403 $23 + $180 + $200 (#8,10,14参照)
15 ドル円 148円/$ 2022/10/25のドル円
16 1ヶ月の総費用(¥) 59,644円

最後に

個人的な感想になりますが、私は費用の見積もりに苦手意識があります。 エンジニアの皆さんも苦手意識があるのではないでしょうか。 しかし、割り切って、ひとまず見積もりを出してみよう!としませんか。 正確な値を出さないといけない、根拠は完璧にそろえないといけない、というよりもひとまず草稿となる案を作成して、そこから検討すると良いケースがあるからです。 本記事がそんなきっかけになれば幸いです。

シナジーマーケティング株式会社では一緒に働く仲間を募集しています。