0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

APIを使ったデータ取得・加工処理をしたときSnowflake/AWSどちらのコストが安い?

Last updated at Posted at 2025-06-02

本記事では、コンピューティングからテーブル格納までをSnowflake上で全て行った場合と、前者をAWSへ寄せて、テーブル格納のみをSnowflakeで行う2つのパターンでどちらがコストを抑えることができるかを紹介します。

本記事は元々、データパレード様のブログに私が執筆した技術ノウハウとして掲載したものです(下記)。Qiitaを通じてより多くの方に届けられれば、そして技術者の方と知見を共有し、フィードバックをいただく目的で許可をいただき掲載しました。

処理フローの違い

Snowflakeで処理

  1. SnowflakeのNotebookもしくはWorksheet上にPythonコードを記述した関数を作成
  2. INSERT INTO SELECT文もしくはMERGE文でテーブルへデータ挿入

こちらの処理の流れについては下記の記事にて紹介しています。

AWS

  1. Lambda上にPythonコードを記述。取得したデータをS3へCSVとして格納
  2. COPY INTO文を使ってテーブルへデータをインポート

こちらの手法については下記の記事にて紹介しています。

コスト計算

本記事ではコンピューティング(Pythonの実行時間)のコストに焦点を当ててみます。

下記はInstagramの場合を例に、取得するデータごとのPythonの実行時間を記録したものです。あまり件数自体も多くなく、数分で終わっている点はご了承ください。

取得データ データ取得・加工処理時間 クレジット消費
アカウントのプロファイル情報 5.1秒 1 x 1/60 = 1/60
投稿情報 90.1秒 2 x 1/60 = 2/60
投稿へのコメント 113.1秒 2 x 1/60 = 2/60
エンゲージメント(REEL) 16.5秒 1 x 1/60 = 1/60
エンゲージメント(FEED) 124.7秒 3 x 1/60 = 3/60

ウェアハウスはX-Small、Standardタイプとしています。こちらを日次バッチで毎日実行した場合、コンピューティングについてひと月(30日)でどの程度かかるか試算してみます。

Snowflakeで処理

Snowflakeは最低でも1分単位のクレジット課金です。仮に10秒で終わる処理も1分として、X-Smallであれば1/60クレジット消費されます。

表の右の列を合計すると、およそ9/60クレジット消費しています。本記事の投稿時点では1クレジットあたり$2.85なので、こちらの処理を一度実行するたび、$2.85 × 9/60 = $0.4275かかります。したがって、ひと月あたり下記の程度かかります。

\$0.4275 × 30日 = $12.825 /月

こちらにINSERT INTO SELECTによる挿入処理の時間分加算されますが、今回は無視して話を進めちゃいます。

AWS

LambdaでのPython処理およびS3への格納という構成になります。1日一回実行なので、リクエスト数は30、実行時間は表から合計350秒程度、メモリは512MB(0.5GB)となっています。

これが意味するところは、Lambdaは無料枠で全然収まるということです。他はS3への保管料金になります。

こちらはAWSのコンソール画面での紹介で少々粗い計算ですが、月で$1前後になるかと思います。

スクリーンショット-2025-05-21-21.02.18.png

SnowflakeではS3からのインポートにCOPY INTO文をそれぞれ実行します。現状の件数では、60秒以上かかることはないため、データ取得の数5つ分 x 1/60 × $2.85 = $0.2375が一回の実行にかかります。よって、ひと月(30日)実行すると下記のようになります。

\$0.2375 × 30日 = \$7.125 /月

ここにAWSの料金($1)を足して下記になります。

\$7.125 + \$1 = $8.125 /月

結論

前章をまとめるとこのようになります。

  • Snowflake:$12.875 + [INSERT INTO SELECT処理でかかる従量料金]
  • AWS:$8.125

すなわち、コンピューティングをAWS側に寄せることですくなくとも$4/月以上のコスト削減が見込めます。INSERT INTO よりもCOPY INTOで代替することを推奨する点は、Snowflakeの公式ドキュメントでも紹介されているので、実際の効果についても確認できました。

AWSとSnowflakeでうまくコストを下げられるように、計算やデータ格納の役割分担を検討できると良いですね!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?