BigQueryとAthenaの料金を比較したら意外にもAthenaのクエリ料金がお得だった

まずは公式のクエリ料金を普通に見てみます。

クエリ料金

リージョンはそれぞれ東京リージョンで比較します。

Athenaスキャンされたデータ 1 TB あたり 5USD
BigQuery$8.55 per TB

BigQueryには毎月1TBまでの無料枠がありますがここではスルーします。

これだけ見てもBigQueryのほうがAthenaよりも約1.7倍クエリ料金が高いことがわかります。

しかし

Athenaの場合はデータを圧縮すればその分コストが削減されます。

公式の説明でもこのように記載されています。
パフォーマンス向上ともありますが、これはケースバイケースではないかと思います。

一方、BigQueryでは

データが圧縮されているかどうかは関係なく実際のデータサイズに基づいて計算されると記載されています。

仮に1TBのデータが圧縮率40%とした場合

Athenaの場合 :1(TB) × 0.4(圧縮率) × 5(USD)  = 2(USD)
BigQueryの場合:1(TB) × 1 × 8.55(USD) = 8.55(USD)

データ圧縮しておけばAthenaのほうがBigQueryよりも1/4程度のコストで抑えることができます。

ストレージ料金

続いてストレージ料金を見ていきます。
Athenaの場合はS3にデータを保存するのでS3の料金になります。

S3 標準ストレージ
(最初の 50 TB/月)
0.025USD/GB
BigQuery
アクティブ ストレージ
$0.023 per GB

これだけ見ると若干BigQueryのほうがコストが安く思えます。

しかし、ここでもデータの圧縮でS3のコストは下がります。

BigQueryは非圧縮状態のデータ量に基づいて計算されます。

仮に1TBのデータが圧縮率40%として 1カ月ストレージに保存した時の料金を計算してみます。

Athenaの場合  :1(TB) × 0.4 × 0.025(USD)  = 0.01(USD)
BigQueryの場合 :1(TB) × 1 × 0.023(USD) = 0.023(USD)

データ圧縮しておけばAthenaのほうがBigQueryよりも1/2程度のコストで抑えることができます。

まとめ

Athenaの場合はデータ圧縮をすることでクエリ料金、ストレージ料金を大幅に抑えることができます。

コスト面だけを見ればAthenaのほうが優れていると思いますが、
BigQueryのほうが実行速度や扱いやすさなどAthenaよりも優れている面もあります。
個人的にもSQL操作でデータの出し入れや変更などもできるBigQueryのほうが扱いやすく便利なのでBigQueryを利用することのほうが多いです。

今回はデータ圧縮のコスト換算がAthenaとBigQueryで大きく異なる点について紹介させていただきました。