注:本記事は(2022年5月5日)に公開された(How Usage-Based Pricing Delivers a Budget-Friendly Cloud Data Warehouse)を翻訳して公開したものです。

注意事項:この記事は2018年に投稿されたものを現在ご利用いただける製品、特徴、機能に合わせて更新した内容となります。

Snowflakeデータクラウドは、ほぼ瞬時の伸縮性を備えているため、お客様は需要に応じて拡大または縮小を実行できます。需要が予測可能な場合でも大きく変動しやすいものでも、主要なデータワークロードで優れた結果を達成できるよう、必要以上の容量を搭載することなく、システムを簡単に拡大または縮小できます。さらに、ユーザーは、完全に分離された多数のコンピュートクラスタからクエリできる、ほぼ無制限のデータリポジトリを手にすることができるため、ワークロードの一部が急増した場合でも互いに悪影響を及ぼさずにワークロードを同時実行できます。このような柔軟性は強力ですが、強力であるが故のリスクもあります。つまり、需要の急増によって支出もどんどん増えていくことになるということです。

Snowflakeは、使用量と支出を分かりやすく可視化することによってクラウドの真の伸縮性をバランスよく発揮し、使用量をモニタリングして予想を上回る場合には通知を送信し、上限に達した場合には使用を停止する強力なコスト管理機能を提供しています。この記事では、これらの機能を使用して柔軟性とコントロールのバランスを取る方法について説明していきます。 

シンプルな価格設定モデル

Snowflakeの価格設定モデルは、主に2つの使用量ベースのメトリクス、つまりコンピュートの使用量とデータストレージの使用量に基づいています。

コンピュート料金は、クエリの実行、またはSnowpipeによるデータのロードといったサービスの実行に使用されるクレジット数をベースとしています。クレジットは、使用するエディション(スタンダード、エンタープライズ、ビジネスクリティカル)に応じて価格が設定されており、それぞれに異なる機能リストが付属しています。コンピュートクラスタの使用時間やサーバーレス処理には消費クレジットのレートが設定されており、すべてのコンピュート料金は、予測や推定ではなく、実際の使用量に基づいて秒単位で請求されます。 

ストレージ料金は、1か月あたりの保存バイト数と、クラウドベンダーによるリージョンまたはクラウド間でのデータ移動コストに基づいて決定されます。すべての保存データが自動圧縮され、圧縮されたファイルサイズの合計がアカウントのストレージ料金の計算に使用されるため、ストレージコストを抑えることができます。

すべての請求が使用量ベース

例えば米国では、Snowflakeのストレージコストは、保存データの圧縮後のTBあたり定額23米ドルからとなっています。これは、1か月の日数で平均した金額です。コンピュートコストは、Snowflakeスタンダードエディションでは1クレジット消費するごとに0.00056ドル、Snowflakeエンタープライズエディション(顧客管理による暗号化キーやその他のセキュリティ強化機能を含み、HIPAAとPCIコンプライアンスを実現したもの)では1クレジット消費するごとに0.0011ドルとなっています。

明確で分かりやすいコンピュートのサイズ設定

Snowflakeユーザーは、クエリ実行に利用できるコンピュートリソースの論理的グループ、「仮想ウェアハウス」をいくつでも有効化できます。仮想データウェアハウスは10種類の「Tシャツ」のサイズ、つまり、XS、Sl、M、L、XL~6XL(5XLと6XLはプレビュー版)で展開されています。それぞれのデータウェアハウスサイズには、1秒間の使用によって消費されるコンピュートクレジット数が設定されています。サイズアップして仮想ウェアハウスのコンピュート能力が2倍になると、クレジットの使用量も2倍になります。Snowflake上の性能は直線的であり、ウェアハウスのサイズを2倍にすると、通常は動作にかかる時間が半分になり、結果としてコストは同じということになります。 

アイドリング中のコンピュート時間に対する課金なし

Snowflakeは、お客様に真のリソースの伸縮性を提供します。使用量ベースの価格モデルでは、使用量に応じて秒単位で課金され自動停止と自動再開がほぼ瞬時に行われるため、不要なリソースに対する支払いを防ぐことができます。各ワークロードはそれぞれ独自のコンピュートリソースセットを利用できるため、他のジョブに影響を与えず、独立したスケーリングが可能となります。また、すべてのクラスターがすべてのデータを参照できることから、サイロ化によるデータの使いにくさも防止できます。 

すべてのクエリは、クエリが開始された仮想ウェアハウス上で自動的に実行されます。Snowflakeの大きな利点は、アクティブに実行されているクエリがない場合、ユーザー定義のルール(「非アクティブ状態が2分間続いたら中断」など)によって、特定の仮想ウェアハウスを手動または自動で中断できるという点です。中断後はアイドリング状態のコンピュート時間に対する課金も中断されます。 

中断、再開、増減などの操作は基本的に瞬時に行われるため、支出には実際の使用量が正確に反映されます。そのため、予定外の使用に備えて余裕をもたせたり、キャパシティプランニングを気にしたりする必要もありません。

他のデータプラットフォームソリューションではサービスを終了して課金を停止すると、終了時にデータは自動的にデータウェアハウスから削除されます。後からそのデータにクエリを実行する必要がでてきた場合、ウェアハウスを再ビルドしデータをロードし直す必要があり、時間とコストがかかります。それでは非効率的であるため、このような設計のデータプラットフォームでは、クエリを実行しているかどうかにかかわらず、24時間365日アクティブのままにしておく場合が多く、その間ずっと課金が続くことになります。

Snowflakeでは、中断中の仮想ウェアハウスで新しいクエリを処理すると、プラットフォームが自動的にそのクラスターを再起動するため、遅延がなく、手動による再プロビジョニングも不要です。そのため必要なタイミングで容量を利用することができ、不要な費用を支払う必要がありません。

柔軟性と予測可能性

Snowflakeでクエリを実行する場合、容量の予測は必要ありません。固定の使用量枠や目に見えない追加の料金もありません。お支払いいただくのは使用した分に対してのみであり、しかもデータクラウドは、ほぼリアルタイムで自動的に容量を増減し需要の発生に対応します。

オンプレミスのデータプラットフォームや、クラウド以前のアーキテクチャによるクラウドデータプラットフォームでは、容量と需要をリアルタイムで一致させることはほぼ不可能です。ジャストインタイムのプロビジョニングを実現するにはシステムの対応スピードが不十分である場合や、価格設定モデルが厳密すぎる場合には、高いコストや性能の制約、またはその両方の状況が発生することになります。 

予期しない需要に対応するためのバッファとして実際に必要な容量よりも多くの容量を搭載すれば、コストが高くなります。また、需要増加した際にシステムをスピーディーに拡張できなければ性能が低下します。Snowflakeでは手動、スケジュール、または自動でのスケーリングによるリソースの追加や削除でほぼ瞬時の伸縮性が得られるため、このような問題が解消され、リソースの過剰なプロビジョニングを行わずに、必要なときに十分な容量を確保することができます。

クラウドデータプラットフォームの中には、クエリの実行時間ではなく、スキャンしたデータ容量やクエリから返されたデータ容量に基づいて課金するものもあります。これは柔軟性のある方法ですが、ユーザーやアプリケーション側では、任意のクエリによってスキャンされるデータ容量やそこで返されるデータ容量を予測できないため、毎月の料金が大きく変動し、予測しにくいという問題点があります。

コストのガバナンスとコントロール

Snowflakeの伸縮性が高いがゆえに、予算を早々に使い果たしてしまうのではないかとお客様が不安に感じる場合についてはどうでしょうか。お客様の中には、アジリティを最優先し、データエンジニアやアナリストがデータに対して想像できる限りのことを行えれば満足だという方もいます。

支出を制御したい組織のために、Snowflakeではコストガバナンスとコントロールのための堅牢なツールセットを提供しています。ユーザーは履歴と予測される使用パターンを完全に可視化し、細かいレベルで消費に対するアラートまたはハードリミットを設定することができます。制限は、日次、週次、月次、年次で設定できます。これらの制限は、各社の裁量で情報の通知にしたり、割り当て量に達したらそれ以上の使用を防ぐハードキャップに設定したりできます。仮想ウェアハウスレベルで制限を定義できるため、重要度の違いに応じて部門やワークロードごとに、各ユースケースに適した制限を設定できます。

もう1つのコストガバナンス機能であるオブジェクトタギングを利用すると、さまざまなオブジェクトを簡単に分類し、タグごとに支出をグループ化できます。

シンプルさ、コスト効率、高性能を維持する

従来のオンプレミス型データウェアハウス技術や、設計上、クララウドインフラストラクチャーの伸縮性を活用しきれないようなクラウドベースのデータウェアハウスとは異なり、Snowflakeのデータクラウドでは、データと予算をより簡単に扱うことができます。Snowflakeは、従来のデータウェアハウスソリューションよりもはるかに少ない労力で管理できるため、コスト効率に優れた方法でデータから可能な限り多くのインサイトを得ることができます。Snowflakeを利用すると、従来のソリューションにあるような悩みの種を回避できるため、戦略的なデータアナリティクスとエンジニアリングプロジェクトに集中し、資金を節約しつつビジネスを推進できるようになります。