見出し画像

Snowflakeさわってみた。ウェアハウスのコストを確認してみた。

分析屋の下滝です。

Snowflakeをさわってみよう、の10回目です。

今回は、避けては通れない、snowflakeのコストに関して調べて試してみました。特にウェアハウスのコストに関して調べてみました。

snowflakeでは、コンピューティング用のリソースであるウェアハウスの課金は、クレジットという概念をもとに行われます。

1クレジットが金額でいくらに相当するのかは、
・どのクラウドプラットフォーム(AWS、Azure、GCP)を使うのか
・どの地域(東京など)なのか、
・どのエディション(スタンダードやエンタープライズなど)なのか
で変わるようです(参考ページ)。

たとえば、現時点では、「AWS」、「東京」、「スタンダード」だと、1クレジット$2.85でした。「エンタープライズ」だと、$4.30でした。

公式ドキュメントによると、ウェアハウス(コンピューティング)のクレジットは、次のような要素をもとに計算された上で消費されます。
・ウェアハウスサイズ
・クラスターの数( マルチクラスターウェアハウス を使用している場合)
・各クラスターのコンピューティングリソースが実行される時間の長さ

ウェアハウスのサイズ別に、1クレジットがどのくらいで消費されるのかは、このページが詳しいです。秒単位でどれだけクレジットが消費されるのかが記載されています。以下ではXSとSのサイズだけ抜き出しています。

ウェアハウスサイズ クレジット / 時間  クレジット / 秒
XS         1           0.0003
S           2           0.0006

ここで「クレジット/秒」は単に1クレジットを1時間の秒数で割っただけだと思われます。
1/3600=0.00027777777
             0.0003

クレジット消費の詳しい説明は、以下のページが参考になります。

コンピューティングリソースがウェアハウスにプロビジョニングされる場合、
・コンピューティングリソースのプロビジョニングの最小請求料金は1分(つまり、60秒)です。
・最初の60秒間が終了する前にウェアハウスを停止しても利点は ありません。その期間のクレジットはすでに請求されているからです。
・最初の60秒後、稼働中のウェアハウスに対する後続のすべての請求は1秒単位です(すべてのコンピューティングリソースがシャットダウンされるまで)。以下に3つの例を示します。
 ・ウェアハウスが30〜60秒間実行された場合は、60秒間で請求されます。
 ・ウェアハウスが61秒間実行された場合は、61秒間のみ請求されます。
 ・ウェアハウスが61秒間実行され、シャットダウンしてから再起動し、60秒間未満実行されると、121秒間(60 + 1 + 60)で請求されます。

https://docs.snowflake.com/ja/user-guide/warehouses-considerations

ポイントは、最小請求料金は1分(60秒)だということです。上記の例で示されているとおりです。
・ウェアハウスが30〜60秒間実行された場合は、60秒間で請求される。
・ウェアハウスが61秒間実行された場合は、61秒間のみ請求される。
・ウェアハウスが61秒間実行され、シャットダウンしてから再起動し、60秒間未満実行されると、121秒間(60 + 1 + 60)で請求される。

同じようなことが以下のページに書かれています。

ウェアハウスは、実行している間のクレジット使用状況のみが請求されます。ウェアハウスを一時停止すると、クレジットは使用されません。
上記で表示されるクレジットの数は、1時間の使用量です。ただし、クレジットは最低60秒(つまり、1分)で、秒ごとに請求されます。
・ウェアハウスが 開始される か 再開される たびに、上記の時間料金に基づいて1分間の使用量に対する請求がなされます。
・ウェアハウスが サイズ変更される たびに、ウェアハウスには1分間相当の使用量が請求されます。ただし、請求されるクレジットの数は、プロビジョニングされた 追加の コンピューティングリソースに対してのみです。たとえば、S(2クレジット/時間)からM(4クレジット/時間)にサイズを変更すると、追加2クレジットの1分間に相当する請求が発生します。
・1分後、ウェアハウスが継続的に実行されている限り、以降のすべての請求は1秒ごとになります。
・最初の1分以内にウェアハウスを一時停止して再開すると、 複数の 料金が発生します。これは、ウェアハウスが再開されるたびに1分間の最低時間が開始されるためです。
・ウェアハウスのサイズを5XLまたは6XLから4XL(またはそれ以下)に変更すると、古いリソースが休止している間、新しいコンピューティングリソースと古いリソースの両方の料金がウェアハウスに請求される期間が短くなります。

https://docs.snowflake.com/ja/user-guide/cost-understanding-compute#label-virtual-warehouse-credit-usage

一部抜き出します。
・ウェアハウスは、実行している間のクレジット使用状況のみが請求される。
・ウェアハウスを一時停止すると、クレジットは使用されない。
・クレジットは最低60秒(1分)で請求される。
・1分後、ウェアハウスが継続的に実行されている限り、以降のすべての請求は1秒ごとになる。

実際に確認してみた

現時点の使用済みクレジットが0.29だとして試していきます。

ウェアハウスはXSサイズを使用して試します。

まずは、ウェアハウスを起動してすぐに停止したケースです(60秒以内のケース)。

XSは、0.0003/秒ですので、60秒だと0.018となります。
0.29 + 0.018だとすると、消費後のクレジット予測は、0.308となります。

結果は、0.31となりました。

続いて60秒をこえてみます。ウェアハウスの起動秒数を確認できる機能がおそらく無いため、数秒ずれるかもしれません。

クレジット消費0.35からスタートです。約120秒起動しました。Sは0.0003/秒ですので合計は
0.0003 * 120 = 0.036
となります。

開始時点のクレジット消費と足し合わせると予想は
0.35 + 0.036 = 0.386
となります。

実際の結果は0.40でした。少し誤差がありますが、だいたい予想通りの数値となりました。

株式会社分析屋について

ホームページはこちら。

noteでの会社紹介記事はこちら。

【データ分析で日本を豊かに】
分析屋はシステム分野・ライフサイエンス分野・マーケティング分野の知見を生かし、多種多様な分野の企業様のデータ分析のご支援をさせていただいております。 「あなたの問題解決をする」をモットーに、お客様の抱える課題にあわせた解析・分析手法を用いて、問題解決へのお手伝いをいたします!
【マーケティング】
マーケティング戦略上の目的に向けて、各種のデータ統合及び加工ならびにPDCAサイクル運用全般を支援や高度なデータ分析技術により複雑な課題解決に向けての分析サービスを提供いたします。
【システム】
アプリケーション開発やデータベース構築、WEBサイト構築、運用保守業務などお客様の問題やご要望に沿ってご支援いたします。
【ライフサイエンス】
機械学習や各種アルゴリズムなどの解析アルゴリズム開発サービスを提供いたします。過去には医療系のバイタルデータを扱った解析が主でしたが、今後はそれらで培った経験・技術を工業など他の分野の企業様の問題解決にも役立てていく方針です。
【SES】
SESサービスも行っております。