キーワード: パイプライン処理, 機械学習システム, 調査分析, 男子2児の父
はじめに
Snowflake は Snowflake 社の提供するクラウドベースで動くSaaS型DWHです。 単に DWH としてだけでなくデータマーケットプレイスと連動し、自社データ以外との分析が可能です。 Snowflake は AWS, GCP, Azure にあるクラウド型 DWH と同様に従量課金です。 その従量課金にはクレジット(Snowflake のリソース使用量)という概念もあり、費用算出方法が少し分かりづらいです。 本記事では例を示しながら、見積もり用途などの費用算出について言及します。
SnowflakeだけでCDPすべてを実現することは難しいです。しかし、目標のレベルや事業フェーズによっては、高いコストをかけてCDPを実現する前に「Snowflake」を導入することでコストなどの調整が可能となります。
ご興味ある方はぜひご覧ください。Snowflakeにも少し触れています。
当社マーケティングBLOG|CDPとCRMの違いは?結局何ができるの?CRMベンダー目線でCDPを解説!
読んでほしい人
- これから Snowflake を検討/採用しようとしている人
- Snowflake の費用見積もりの依頼を受けた人
- Snowflake の費用について情報収集している人
書いていないこと
- Snowflake 自体の詳細説明
- Snowflake のメリット/デメリット
- Snowflake と類似サービスとの比較
見積もり方法
以下のステップで見積もりを進めます。
- 必須項目の詳細を決定
- プランとクラウドのプラットフォームの選定
- 見積もり全体に影響します。
- AWS, GCP, Azure から選ぶことができます。
- なお、リージョンによっても金額が変わります。
- 費用の算出と調整
なお、今回は例として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 では スタンダード, エンタープライズ, ビジネスクリティカル, バーチャルプライベートSNOWFLAKE と4つのプランがあります。 この中からビジネス要件に合わせてプランを選ぶことになります。 弊社は スタンダードとエンタープライズで迷いました。 特に以下の2点が迷うポイントでした。
- エンタープライズプランには「最大90日間の Time Travel」という機能があります。 ・ 保守観点からは魅力的な機能です。
- しかし、エンタープライズプランの料金はスタンダードプランの 1.5倍 になります。 ・ 1クレジットあたりの料金が 1.5倍 になります。
しかし1. 必須項目の詳細を決定にあるように、今回の想定ですとデータ欠損のリスクは低いと判断したので、Time Travel の対象日数が短く料金の安いスタンダードプランを選びました。
また、Time Travel の説明や利用方法はこちらです。 Time Travel の主な機能は以下になります。
- DROP したオブジェクトの復元
- 以前の状態のテーブルに対して SELECT を実行
- クローンを用いた復元
2. 2. クラウドのプラットフォームやリージョン
以下を参考にクラウドのプラットフォームやリージョンを選びます。
選ぶときのポイントは以下です。
- 1クレジットあたりの料金
- クレジットとは Snowflake のリソース使用量の単位です。
- CPU 使用料ととらえて問題ありません。
- Warehouse が XS だと1時間あたり1クレジット、S だと1時間あたり2クレジットになります。
- 現在利用しているクラウドのプラットフォームとの親和性
- 利用しているデータストレージから Snowflake へデータを転送する際の手間やコストに影響します。
- 弊社は 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円 |
最後に
個人的な感想になりますが、私は費用の見積もりに苦手意識があります。 エンジニアの皆さんも苦手意識があるのではないでしょうか。 しかし、割り切って、ひとまず見積もりを出してみよう!としませんか。 正確な値を出さないといけない、根拠は完璧にそろえないといけない、というよりもひとまず草稿となる案を作成して、そこから検討すると良いケースがあるからです。 本記事がそんなきっかけになれば幸いです。