Mastodon

酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

AWS S3 と CloudFront のデータ転送はどっちのが高いのか?

AWS S3(Simple Storage Service) と CloudFront のデータ転送(アウト)の料金比較をおこなった。

2022/06/03時点の料金で、すべて東京リージョンと日本国内からのアクセスを想定している。また1ドルは130円で換算している。

S3とCloudFrontのデータ転送料金

とあるアプリでは、ファイルをS3にアップロードしてからダウンロードする。

アップロードしたファイルをS3から直接ダウンロードした方が良いのか、またはCloudFront経由でダウンロードした方が良いのか。セキュリティ面やダウンロード速度の面からではなく単純にどちらの方がコストが抑えられるのか議論になった。

頭の中ではぼんやりと CloudFrontは高い と思っていたので「S3からの方が安いです」と答えた。リクエスト料金を含めるとその通り S3 の方が安いのだが、データ転送(アウト)の料金だけで考えると S3 も CloudFront も同じ価格であった。リクエスト料金の差は微々たるもので、データ転送料金の方が巨大なので、今後は「S3もCloudFrontもそんなに値段変わらないです」と答えたいと思う。

次に質問された時にきちんと答えられるように備忘録を残す。

S3 だけの場合

S3へのデータ転送量(イン)については 0 円である。そのままS3から直接ファイルをダウンロードしたとして データ転送量(アウト) は 0.114 USD/GBかかる。

S3 + CloudFront の場合

こちらもS3へのデータ転送量(イン)については 0 円である。S3 から CloudFront へのデータ転送量は 0 円である。CloudFront からファイルをダウンロードしたとして データ転送量(アウト) は 0.114 USD/GBかかる。

料金を計算する

S3 と CloudFront の料金をざっくりを表にまとめた。それぞれオプションを付けると変わってくるがここでは考慮していない。単位はUSDである。

データ転送量が 150 TBまでは同一価格、150 TBを超えると CloudFront を使っている方が安くなる。「データ転送量 150TB」とはどれくらいの費用感かといえば、1ドル130円換算で 178 万円を超えたあたりである。

    S3 CloudFront
リクエスト(1万件あたり) - 0.0037 0.012
データ転送(1GBあたり) 10TBまで 0.114 0.114
  40TBまで 0.089 0.089
  100TBまで 0.086 0.086
  150TBまで 0.086 0.084
  350TBまで 0.084 0.084
  524TBまで 0.084 0.08

以下の内容を仮に想定した場合いくらになるのか計算する。

  • 1,000万リクエスト、データ転送量 15TBの場合
  • 10,000万リクエスト、データ転送量 150TBの場合

1,000万リクエスト、データ転送量 15TBの場合

  S3 CloudFront
リクエスト 3.7 USD 12 USD
データ転送 1,623.04 USD 1,623.04 USD
合計 1,626.74 USD 1,635.04 USD
211,476円 212,555 円

10,000万リクエスト、データ転送量 150TBの場合

  S3 CloudFront
リクエスト 37 USD 120 USD
データ転送 13,619.20 USD 13,619.20 USD
合計 13,656.20 USD 13,739.20 USD
1,775,306円 1,786,096 円

参考