
マルチクラウド環境が広がり、スケーラブルで柔軟、かつ高性能なクラウド型データウェアハウスへのニーズが高まる中、Snowflakeは市場で圧倒的な存在感を確立しています。市場シェアはAmazon RedshiftやGoogle BigQueryといったクラウドネイティブのソリューションをも上回り、サードパーティの最有力競合と比べてもほぼ2倍に達します。
とはいえ、他のクラウドサービスと同じく、投資の価値を最大化するには適切なコスト管理が欠かせません。モニタリングが不十分だと、Snowflakeのコストは想定外に膨らみ、予算超過や財務の不透明さを招きます。この点で、Snowflakeのコスト・使用量データは、他のクラウドサービスプロバイダーと何ら変わりません。
事業の成長に伴ってクラウドコストも増えていきますが、特に処理や分析の負荷が大きい企業では、データウェアハウスがクラウド支出全体の10〜50%程度を占めることも珍しくありません。IT予算や運用予算へのインパクトがこれほど大きい以上、主要なコストドライバーを横断して使用量とコストを管理する仕組みの重要性は明らかです。
Snowflake Lensで実現するコスト全体の可視化
こうした「シングルペインオブグラス(統合ビュー)」へのニーズに応えて生まれたのが、DoiT Cloud Intelligence™のSnowflake Lensです。Snowflakeの使用状況とコストに高度な分析・ガバナンス機能を提供する、設定不要ですぐに使えるダッシュボードです。
Snowflake Lens ダッシュボード
Snowflakeのコストを他のクラウドプロバイダーのコストと並べて統合することで、クラウド支出の全体像を把握できます。コンピュート、ストレージ、ネットワーク、データウェアハウスといった各サービスへのリソース配分が一目でわかり、クラウドインフラ全体の財務インパクトをより深く理解できます。データウェアハウスがクラウド支出全体のなかでどう位置づけられるかが見えれば、リソース配分や予算策定、削減余地の特定といった意思決定の精度も高まります。
SnowflakeアカウントをDoiT Cloud Intelligenceに接続(数分で完了します)してデータを取り込めば、追加設定なしでダッシュボードが自動的に表示されます。ダッシュボードは以下の6つのレポートウィジェットで構成されています。
- サービス別の月次コスト
- リージョン別の月次コスト
- ウェアハウス別の月次コスト
- 使用タイプ別の月次コスト
- ストレージコスト上位10データベース
- ユーザー別クエリ上位10件
Lensが稼働すれば、各ウィジェットをCloud Analyticsレポートとして開き、期間の調整、フィルターやグルーピングの追加、予測・予算策定に役立つトレンド分析の生成などが行えます。
取り込んだデータは、ご契約のサブスクリプションで利用できる他のDoiT Cloud Intelligence機能(ダッシュボード、Attributions、Anomaly Detection、アラートなど)からも参照できます。Snowflakeのコストを文脈とともに把握・モニタリングできるだけでなく、想定範囲を超えるコストスパイクが発生した際にはコンソールやSlack/メール連携で確実に通知を受け取れます。
Snowflakeコストの最適化
ITやクラウドの支出全般に言えることですが、Snowflakeへの投資から最大の価値を引き出すには、コストが予算と整合しているか、整合していない場合はその支出が事業目標に貢献しているかを見極めることが重要です。つまり、闇雲にコストを削るのではなく、支出に無駄がないかを確認することが本質です。
とはいえ、DoiT Cloud Solveチームの専門家がよく指摘するように、Snowflakeの使用状況を初めて精査すると、最適化の余地が数多く見つかるのが一般的です。自社単独で取り組む場合でも、当社の社内サービスチームの支援を受ける場合でも、コストを見直す際に押さえておきたい代表的な戦略をいくつかご紹介します。
コンピュートのコスト削減
- 仮想ウェアハウスのライトサイジング
Snowflakeのコンピュートコストを抑える最も効果的な方法のひとつが、仮想ウェアハウスをワークロードに見合ったサイズに調整することです。大型のウェアハウスはコストもかさみがちですが、定常的なワークロードであれば小さめのサイズでも同等のパフォーマンスを発揮できるケースが少なくありません。まずは小さく始めて、必要に応じて拡張するのがおすすめです。小さめのサイズからスタートしてパフォーマンスを観察し、クエリの高速実行が必要になった場合にだけスケールアップしましょう。実際、多くのお客様ではワークロードの大半がx-smallウェアハウスで十分にこなせており、そこを起点に必要に応じて垂直スケーリングするのが理想的です。
- 仮想ウェアハウスの統合
類似したワークロードに対して複数の仮想ウェアハウスを動かすと、コストが余計に膨らみます。データ処理ニーズが似通ったチームや部門のウェアハウスを統合すれば、アイドル時間を減らしリソースを有効に使えます。主な戦略は次のとおりです。
- リソースのプール化:小規模で稼働率の低いウェアハウスを1つの大きめのウェアハウスに集約し、複数タスクを並行処理させてリソース効率を高めます。
- オートスケーリング:オートスケーリングを有効にした共有仮想ウェアハウスを使えば、Snowflakeがピーク時にリソースを自動調整し、過剰プロビジョニングを防ぎながらアイドル時のコストも抑えられます。
- クエリのガードレール設定
長時間実行されるクエリや非効率なクエリは、コンピュートリソースを大量に消費し、コストを押し上げます。
- クエリタイムアウトの設定:タイムアウトを設定しておけば、暴走したクエリがウェアハウスのリソースを独占するのを防げます。妥当な実行時間を超えたクエリを終了させる仕組みを設けることで、コンピュートリソースを節約しつつ、ユーザーに非効率なクエリの最適化を促せます。
- Auto-suspend & Auto-resume:ウェアハウスのAuto-suspendとAuto-resumeの活用も検討しましょう。ベストプラクティスは5分前後(利用頻度の高いウェアハウスではより短く)に設定することです。使っていないときにウェアハウスを動かし続けないことで、コスト削減につながります。
- クラスタリングキーの最適化:Snowflakeでクラスタリングキーを活用すると、データアクセスの効率が上がり、スキャン対象のデータ量が減るため、クエリに必要なコンピュート量を大幅に削減できます。効果を最大化するには、クエリのフィルター(「WHERE」句)、「JOIN」条件、ソート操作で頻繁に使われる列を選定しましょう。これにより、Snowflakeは該当のクエリがより効率的に実行されるようデータをクラスタリングします。
- クエリのリファクタリングと最適化
クエリがパフォーマンスとコスト効率の両面で適切に設計されているか、定期的に見直して最適化することも大切です。適切なインデックスの利用、不要なデータスキャンの回避、結合の削減により、クエリ性能を高めながらコストを抑えられます。
ストレージのコスト削減
- 未使用テーブル・データの削除
Snowflakeのウェアハウスでは、時間の経過とともに未使用のテーブル、古いデータ、不要なバックアップが蓄積し、ストレージコストの増加要因になります。これらを定期的に洗い出して削除することで、コストを抑えられます。よくある原因はETLジョブで使われたまま削除されずに残っているステージングテーブルで、知らぬ間にストレージコストを押し上げています。今後の発生を防ぐには、ジョブ完了後に自動的に削除する仕組みを整えておくのも有効です。
- データ圧縮の最適化
Snowflakeはストレージ容量を抑えるためにデータを自動圧縮しますが、保存方法を工夫することで圧縮効率をさらに高められます。具体的には、ParquetやORCといった圧縮効率の高い形式を選ぶことが重要です。これらはCSVなどに比べて圧縮効率が高く、パフォーマンスを維持しながらデータフットプリントを抑えられます。
- データ保持設定の最適化
SnowflakeのTime TravelとFail-safeを使えば一定期間の過去データにアクセスできますが、その分ストレージコストも発生します。Time Travelの保持期間を短縮したり、Fail-safeの保持を制限したりと、設定を調整することでコストを削減できます。Fail-safeはTime Travelの期限切れ後さらに7日間のリカバリ期間を提供しますが、この追加ストレージは決して安くありません。Fail-safeを必要なときだけ使うようにすれば、将来的な大きなコストスパイクを避けられます。
- Temporary・Transientテーブルの活用
SnowflakeでTemporaryテーブルとTransientテーブルを使うのは、ストレージコストを抑える有効な手段です。短命なデータや長期保存が不要な中間結果には特に向いています。
- Temporaryテーブルは、ETLプロセスや複雑なクエリ、データ変換における中間データやセッション固有のデータの保存に最適です。作成したセッション内でのみ利用でき、セッション終了時に自動で削除されるため、不要な長期ストレージコストを回避できます。
- Transientテーブルは、複数セッションをまたいで一定期間だけデータを保持したいケースに有効です。永続テーブルと異なりFail-safe(Snowflakeの7日間リカバリ期間)がないためコストを抑えられます。Time Travelは利用できますが、保持期間を短く設定すればストレージコストをさらに最小化できます。
進化を続ける、クラウドコスト削減のワンストップ拠点
DoiT Cloud IntelligenceのSnowflake Lensは、主要なコストドライバー全般にわたってクラウド環境を効果的に管理・統制するために必要なツールと専門知識を、お客様にお届けし続けるという当社の取り組みの一環です。今後も新たなサービスプロバイダーや連携機能を追加し、関連するIT支出をすべてDoiT Cloud Intelligenceの統合ビューに集約できるようにすることで、成長するFinOps実践における摩擦をさらに減らしていきます。
Snowflake Lensと仕組みの詳細については、下の画像をクリックしてセルフガイド型の総合ツアーをお試しいただくか、DoiTのエキスパートまでお問い合わせください。
