少し前までクラウドに様々な環境を提供してくれるサービスというとほぼAWS一択だった印象がありますが、近年はGoogleやMicrosoftもどんどん力を入れてきていますよね。
開発者として選択肢が増えるのは嬉しい限りです。
そんなクラウドサービスの中でもAmazon S3に代表されるようなオブジェクトストレージは、容量を気にせずどんどんファイルを保存していける非常に便利なサービスです。
利用している方もとても多いのではないでしょうか。
今回は各種ストレージの料金を比較する機会があったのでこちらにもまとめてみようと思います。
比較するサービス
-
Amazon S3
- アジアパシフィック(東京リージョン) / スタンダードストレージ
-
Google Cloud Storage
- asia-northeast1(日本リージョン) / Regional Storage
-
Microsoft Azure Storage
- 東日本リージョン / Blob Storage / LRS-HOT
上記の3つに加えて、国産の
これら2つのサービスを対象としています。
比較を行う項目は
- ストレージ料金
- 転送料金 (アップロード)
- 転送料金 (ダウンロード)
- GET, POSTなど各種リクエストにかかる料金
です。
転送料金 (アップロード)とは読んでそのまま、ストレージにファイルをアップロードする時にかかる料金です。
転送料金 (ダウンロード)はストレージから外部にファイルを取り出す時にかかる料金で、webサイトで画像を配信する時などの料金もこれにあたります。
なお、日本円で表記のあるサービスについてはそのままの表記を、USドルで表記のあるサービスについては併せて日本円での表記もしてありますが、こちらは僕が2017/04/30時点での為替レート $1 = 111.52円 で計算して勝手に付け加えたものです。
注意点
Amazon, Google, Microsoftのものはオプションとして
- データセンターの場所
- どれだけ耐久性を保証するか (≒どれだけ手厚くバックアップをとるか)
- どれだけ頻繁な読み書きを前提とするか
などの項目の選択によって料金が変わってきますが、ここでは汎用ストレージとして一般的なオプションを選んでいます。
各社で指定可能なオプションの種類は異なりますし、バックアップの取り方、ネットワークの速度なども各社それぞれなので、必ずしも同一条件での比較ではない点にご注意ください。
各サービスの料金
Amazon S3
https://aws.amazon.com/jp/s3/pricing/
アジアパシフィック(東京リージョン) / スタンダードストレージ
項目 | 単位 | 価格 |
---|---|---|
ストレージ | 1GB / 月 | $0.025 (2.788円) |
アップロード | 1GB | 無料 |
ダウンロード | 1GB | $0.140 (15.613円) |
PUT / COPY / POST / LIST リクエスト | 10000回 | $0.047 (5.241円) |
GET およびその他のリクエスト | 10000回 | $0.0037 (0.413円) |
DELETE リクエスト | 10000回 | 無料 |
ダウンロードについては送信先が
- 同一リージョンのEC2, CloudFrontの場合は 無料
- 別のAWSリージョンの場合は $0.09(10.037円) / 1GB
という料金体系になり、AWS内部での利用ならばお得になるようです。
また、ストレージ/ダウンロード共に一定の利用量を超えた分は単価が安くなります。
Google Cloud Storage
https://cloud.google.com/storage/pricing
asia-northeast1(日本リージョン) / Regional Storage
項目 | 単位 | 価格 |
---|---|---|
ストレージ | 1GB / 月 | $0.023 (2.565円) |
アップロード | 1GB | 無料 |
ダウンロード | 1GB | $0.14 (15.613円) |
GET service / GET Bucket(オブジェクトのリスト) / PUT / POST リクエスト | 10000回 | $0.05 (5.576円) |
GET Bucket(バケット設定) / GET Object / HEAD リクエスト | 10000回 | $0.004 (0.446円) |
DELETE リクエスト | 10000回 | 無料 |
ダウンロードについては、送信先が
- 香港を除く中国の場合は $0.23 (25.65円) / 1GB
- オーストラリアの場合は $0.19 (21.189円) / 1GB
- 同一ロケーションまたはサブロケーションにあるGoogle Cloud Platformサービスの場合は 無料 (1)
になるようです。また、一定の利用量を超えた分は単価が安くなります。
(1) 同一リージョン内サービスの場合は無料と捉えて問題ないのですが、Google Cloud Platformにはサービスロケーションについてマルチリージョン、リージョン2種類の概念がありAWSのものと若干異なります。詳しくは公式サイトを参照してください。
Microsoft Azure Storage
- ストレージ料金
- 転送料金
東日本リージョン / Blob Storage / LRS-HOT
項目 | 単位 | 価格 |
---|---|---|
ストレージ | 1GB / 月 | 2.04円 |
アップロード | 1GB | 無料 |
ダウンロード | 1GB | 14.08円 |
PUT / LIST / Create Container リクエスト | 10000回 | 5.10円 |
GET およびその他のリクエスト | 10000回 | 0.41円 |
DELETE リクエスト | 10000回 | 無料 |
ダウンロードについては、
- 最初の5GB/月までは 無料
- 送信先が同一リージョンにあるAzureサービスの場合は 無料
となっています。
また、ストレージ/ダウンロード共に一定の利用量を超えた分は単価が安くなります。
さくらのクラウド オブジェクトストレージ
http://cloud.sakura.ad.jp/specification/object-storage/
項目 | 単位 | 価格 |
---|---|---|
ストレージ | 1GB / 月 | 5.4円 |
アップロード | 1GB | 無料 |
ダウンロード | 1GB | 10.8円 |
ダウンロード (キャッシュ配信) | 1GB | 5.4円 |
これまで挙げた3つのサービスが完全に従量課金型だったのと異なり、さくらのオブジェクトストレージは基本料金が540円かかります。
かわりに最初の100GB/月まではストレージに従量課金がされず、基本料金のみが発生する形になっています。
100GBを超えた分に関して上記の表にある単価で料金が発生していきます。
キャッシュ配信というのはこちらに記載がある通り、さくらが東京に用意しているキャッシュサーバーに一時的にコンテンツをキャッシュし配信する仕組みです。
特に操作をせずとも自動的にキャッシュ配信用のURLが発行され、そちらにアクセスするだけでキャッシュ配信となるようです。
ダウンロードについては、
- 通常のダウンロードで送信先がさくらのサービスの場合は 無料
- 通常のダウンロード/キャッシュ配信共に最初の10GB/月までは 無料
となっています。
ストレージについては一定の利用量を超えた分は単価が安くなります。
各種操作については特に記載がなかったので今のところ回数による従量課金はされず、単純に転送量に対してのものになるようです。
ConoHa オブジェクトストレージ
https://www.conoha.jp/faq/object-storage/
項目 | 単位 | 価格 |
---|---|---|
ストレージ | 1GB / 月 | 4.5円 |
アップロード | 1GB | 無料 |
ダウンロード | 1GB | 無料 |
上記URLに記載がある通りConoHaのオブジェクトストレージは従量課金型ではなく、100GB単位で容量を追加していく料金固定型になっています。
表では比較のために1GB単位の料金を記載していますが、本来は月100GB / 450円です。
また、転送量についても従量課金はされず全て無料となっています。
各種操作についても課金はされないようです。
まとめ
ざっくりとした料金の感覚
全サービス共通
- アップロード → 無料
- 各種操作 → めちゃ安い
- 同一リージョン内または同一サービスへのダウンロード → 無料
海外サービス
- ストレージ → 2.5円/1GB ぐらい
- 外部へのダウンロード → 15円/1GB ぐらい
国内サービス
- ストレージ → 5円/1GB ぐらい
- 外部へのダウンロード → 10円/1GB ぐらい。ConoHaは無料
海外サービスについて
海外のクラウドサービスは3社ともだいたい同じような料金ですね。
先発のAWSの料金が最も高く、後発のAzureが一番安いようです。ダウンロードも最初の5GBだけ無料枠があります。
なんだか吉野家/松屋/すき家の牛丼戦争みたいです。
Google Cloud Storageのみ中国やオーストラリアへのダウンロードが極端に高いのはどうしてなのでしょうか?
Googleのビジネス的にコストが高くなってしまっている国なんでしょうかね、不思議です。
各種操作にかかる料金は10000回で数円程度なので特殊なユースケース以外は無視しても誤差の範囲で済みそうな感じです。
ストレージの料金は単価が転送の数分の一ですし事前にそれなりに利用量の予測がつくので計算しやすいですが、気になるのはなんといっても外部への配信料であるダウンロード転送料ですよね。
外部に公開するような用途で利用するのでなければ予測しやすいかと思いますが、だいたい15円/1GB程度のスタートなのでwebサービスを運営していてユーザがスケールするとあっとういう間に料金もスケールしてしまいます。
(例えば、クライアント側でのキャッシュを一切考慮に入れずに100万PV/dayで1PVあたり3MBの転送が発生する場合、3MB * 100万PV * 30日で1ヶ月に9万GBの転送が行われ、約15円 * 9万GBで135万円の転送料金が発生します。)
ユーザ数の予測自体なかなか難しいところなので、ここをどう見積もるかは少し工夫が必要になりそうですね。
国内サービスについて
さくら/ConoHaの両サービスはストレージの単価が海外サービスと比べると2倍程度お高くなっていますが、ダウンロードについてはだいぶ安くなっています。さくらはだいたい2/3ぐらいの単価ですね。
さくらは上でも少し書いたようにデフォルトでCDNのようにキャッシュ配信を行う専用URLが発行され、それを介した配信なら単価がさらに半分になるという仕組みがあります。海外サービスと比較すると1/3程度の単価になります。
キャッシュの更新時間は10分間ということですから、外部に公開するURLをキャッシュ配信用のものに限定することで「ファイルの更新には最長10分かかる代わりに転送料を半額にする」という運用も可能そうです。
もちろんアクセスの度に常にストレージから正直にファイルを配信するような仕組みにはせずに何らかのキャッシュ機構を挟んだりCDNを利用するなどして転送料の節約やパフォーマンスの向上をはかることも多いかと思いますが、デフォルトで転送料を節約する仕組みがあると少し嬉しいですね。
ConoHaに至っては無料となっていますが、これはおそらくそこまで大規模なユースケースは想定していないということなのでしょう。ConoHaで想定する利用規模を超えた場合は転送速度が絞られたり、なんらかの制限が加わりそうな気がします。
それでも個人で利用したりする場合はどれだけダウンロードが増加しても課金が発生しないというのは安心ですね。
どのストレージを使うにしてもしっかり事前にユースケースに合わせた計画を立てて有効に利用したいところです。
おまけ
オブジェクトストレージ系のクラウドサービスを利用する際に気になる転送料まわりの知見をまとめた記事へのリンクを集めてみました。併せてご活用ください。
S3の料金を見積もってみたお話です。
Amazon S3の利用料節約を考えてみる
Amazon S3の利用料節約を考えてみる(の結果)
S3 + CloudFrontで運用していた構成のCloudFront部分をさくらのVPS上に実装したキャッシュサーバに置き換えて転送料を80%以上削減できたお話です。キャッシュサーバはApacheで実装されています。
Cloudfrontより1/3も安いと噂のkeyCDNを試してみた
ファイルの配信用CDNに安価なものを採用して転送料を削減するお話です。
CloudFlareとAmazonS3を連携させてリクエストを抑える
CDNに基本無料のCloudFlareを利用して転送料を削減するお話です。
S3のZipファイルをRangeでバイナリアクセスして料金を節約
大量のメールアーカイブ運用のお話です。S3は1リクエスト毎にリクエスト自体へも課金があり、大量のファイルを細かくPOSTしてしまうと料金が高くなってしまう問題を回避しています。
S3のオプションの1つに取り出すのに時間とコストがかかるようになる代わりに大体1/3程度の単価でファイルを保存できるようになるGlacierというものがあります。
頻繁には参照しないけど長期的に保管しておきたい大量のログや写真などを保存しておくのに便利なのですが、使い方を間違えると逆にとんでもない料金がかかるよ、というお話です。