Google CloudのCloud Storageを利用した場合に料金がどれくらいになるか試算してみる
個人開発をしているサービスで250バイトくらいの画像を8万個ほど保管する必要が出てきたため、Google CloudのCloud Storageを使うことにしました。
しかし、どれくらいお金がかかるかのかわからず料金を試算したので、そのきのメモ書きを残しておきます。
この計算であっているか不安すぎる。。
Cloud Storageの課金体系
Cloud Storageには細かい課金ポイントがかなりあるのですが、料金を試算する上では、以下5つのポイントくらいを押さえておけば良さそうです。
- データ保管料金
- データ処理料金
- ネットワーク使用料金
- その他
- 無料枠
1. データ保管料金
データのストレージ料金はストレージクラスとロケーションによって異なります。
ストレージクラスには以下のようなものがあり、アクセス頻度が少なそうな画像を保管するストレージほど料金が安くなるようです。
Standard Storage
最も一般的で、アクセスが頻繁に行われるデータに適しています。
リアルタイムアクセスが必要なアクティブなデータの保存に使用されます。
Nearline Storage
月に一度程度のアクセスが予想されるデータに適しています。
コストはStandard Storageよりも低く設定されていますが、最小保存期間(30日)があり、その期間内にデータを削除すると追加料金が発生します。
Coldline Storage
年に一度程度のアクセスが予想されるデータに適しています。
Nearline Storageよりもさらに低コストで、最小保存期間が90日となっています。
Archive Storage
長期間アクセスされない可能性が高いデータの保存に適しています。
最も低コストで、最小保存期間が365日となっています。
https://cloud.google.com/storage/pricing?hl=ja
また、ロケーションによってもデータ保管料金が異なるようです。
例えば、アジア地域のStandard Storageでは台湾がGBあたり月$0.020、香港が$0.023など。
2. データ処理料金
データ処理料金はやりたいオペレーションによって、料金が異なってきます
https://cloud.google.com/storage/pricing?hl=ja#operations-by-class
https://cloud.google.com/storage/pricing?hl=ja#price-tables
クラスAオペレーション
ざっくりいうと、insertやpatchなどはクラスAに分類され料金が高いです。
クラスBオペレーション
クラスBはgetなどの操作が分類されており、クラスAに比べると安いです。
無料オペレーション
削除などは無料らしい
3. ネットワーク使用料金
ネットワーク使用料金としては大きく分けて2つあるようです。
データ転送
データがCloud Storage内で転送される際に課金。Google Cloud内の同一リージョン間転送は無料。
外部へのデータ転送
地域間の転送では、出発地と目的地によって料金が異なる。
https://cloud.google.com/storage/pricing?hl=ja#network-egress
4. その他の料金
そのほか確認しておきたい料金としては以下のようなものがあります。
Autoclass料金
Autoclassが有効なバケットに対して追加管理料がかかる。
5. 無料枠
Cloud Storageには無料枠があります。
無料枠のことをAlways Freeと呼びます。
Always Free使用量上限
- Standard Storage 5GB/月
- クラスA操作5,000回
- クラスB操作50,000回
- 北米からのデータ転送100GB。
Cloud Storageの料金を試算する
今回試算するのは、以下のようなユースケースです。
試算するユースケース
- APIを使用して250バイトの画像を8万件、standard storageにアップロードする(アップロードはアプリケーションリリース時に1度のみ行う)
- アップロードした画像の削除などの操作は行わず、基本的には読み込みのみを想定
- 読み込み回数は1か月に100万回を想定
- ストレージのロケーションは東京リージョン(asia-northeast1)
- Vervelの東京リージョン(asia-northeast1)にデプロイされたアプリケーションから画像の読み込みを行う
- 料金最適化のためにAutoclassを利用する
- バケットは単一リージョンのみ
具体的な数値と計算
データ保管料金
- 各画像のサイズ: 250バイト
- 合計画像数: 80,000枚
- 合計データ量: 250バイト × 80,000 = 20,000,000バイト
- 合計データ量をギガバイト(GB)に変換: 20,000,000 / 1,000,000,000 = 0.02GB
- 東京リージョンのStandard Storageの価格: $0.023/GB/月
- 無料枠: 5GBまで無料
- 試算: 無料
データ処理料金(アップロード時)
- 課金体系: 0.05USD/1,000オペレーション
- オペレーションタイプ: クラスA
- 総オペレーション数: 80,000
- 無料枠:5,000回
- 試算: (80,000 - 5000) / 1,000 × 0.05USD = 3.75USD
データ処理料金(データ取得時)
- 課金体系: 0.0004USD/1,000オペレーション
- オペレーションタイプ: クラスB
- 総オペレーション数: 1,000,000
- 無料枠:50,000回
- 試算: (1,000,000 - 50,000) / 1,000 × 0.0004USD = 2.28USD
データ転送料金
- 課金体系: 0~1 TBまでのデータ転送だと$0.12/GB
- 月間総読み込み回数: 1,000,000回
- 各画像のデータ転送: 250バイト × 1,000,000 = 250,000,000バイト
- データ転送量をギガバイトに変換: 250,000,000 / 1,000,000,000 = 0.25GB
- 無料枠:東京リージョンだとなし
- 試算: 0.25GB×0.12USD/GB = 0.03USD
Autoclassの使用料金
* 課金体系:使用料金が有効なバケットで保存されているオブジェクト1,000個ごとに、月額$0.0025
* 合計画像数: 80,000枚
* 無料枠:なし
* 試算:(80,000 / 1,000) × 0.0025USD = 0.02USD
トータルのコスト
- データ保管料金: $0.00
- データ処理料金(アップロード時): $3.75
- データ処理料金(データ取得時): $2.28
- データ転送料金: $0.03
- Autoclassの使用料金: $0.20
- 総計結果:3.75 + 2.28 + 0.03 + 0.20=6.26USD
1USDを150円で計算すると、939円。
データのアップロードは1度だけするだけなので、毎月のランニングコストは500円もかからなそうです。
終わりに
この計算であっているか不安すぎる。。(2回目)
Discussion