どちらを選ぶべきか? Amazon S3 vs Cloudflare R2
はじめに
クラウド上でデータを保存するサービスには、Google Drive や Dropbox のようなエンドユーザー向けのファイル同期・共有を行うクラウドストレージがあります。 一方で、アプリケーションから API 経由で扱うことを前提にしたオブジェクトストレージも広く利用されています。
オブジェクトストレージは保存だけでなく、アプリケーションと組み合わせてAPIでデータの操作ができたり、CDN などの配信サービスと組み合わせて画像・動画・静的ファイルの配信基盤として利用できることが特徴です。
代表的なオブジェクトストレージサービスが Amazon Simple Storage Service(Amazon S3) で、2006年に提供開始されたオブジェクトストレージの草分け的存在です。
これに対して Cloudflare は、S3 互換 API を備え、特にデータ転送コストの考え方が異なる Cloudflare R2(R2 Object Storage / R2) を 2022年9月に一般公開しました。
本記事では、S3 と R2 のどちらを選ぶべきかを、用途別に判断できるよう観点を整理します。
共通点と相違点
機能面
S3 と R2 はどちらもオブジェクトストレージサービスです。両者とも S3 互換 API(※)を提供しているため、単に「データの保存場所」として扱うだけなら、両者に大きな違いはありません。
(※ただし API 互換性は完全一致ではなく、実装の程度によって機能差があります)
大きな違いは、それぞれが属するエコシステムです。
S3 は AWS を構成するサービスの 1 つであり、AWS のエコシステムと密接に結びついています。たとえば Lambda、Athena、MediaConvert などのAWS上のサービスとシームレスに連携でき、AWS IAM を用いた細かな権限制御がしやすい点も特徴です。
一方、R2 は Cloudflare のエコシステムと結びついています。Cloudflare は CDN の印象が強いものの、近年は配信・実行基盤を含む周辺サービスが拡充しており、それらと組み合わせて利用できます。具体的には、Cloudflare のキャッシュ/CDN と組み合わせた配信や、サーバレス実行基盤である Cloudflare Workers からのアクセスなどが代表例です。
料金面
S3 と R2 はどちらも従量課金で、主に次の要素で費用が発生します。
- データの保存(GB/月)
- 操作リクエスト(GET / PUT / LIST など)
- ストレージから外部へのデータ転送(egress)
保存料金(S3 vs R2)
- Amazon S3(S3 Standard / 東京)
最初の 50TB まで 0.025 USD / GB-month(以降は段階的に単価が下がる) - Cloudflare R2(Standard)
0.015 USD / GB-month(地域による料金表の区分がなく、単一の価格体系)
リクエスト料金(操作回数)
リクエスト料金は「読取り(GET)」と「書込み・一覧(PUT/LIST など)」で単価が分かれます。
- S3(PUT/COPY/POST/LIST): 0.0047 USD / 1,000 リクエスト(東京)
- R2 Class A(書込み・一覧系): 4.50 USD / 100 万リクエスト(0.0045 USD / 1,000 リクエスト)
- S3(GET): 例として 0.00037 USD / 1,000 リクエスト(東京)
- R2 Class B(読取り系): 0.36 USD / 100 万リクエスト(0.00036 USD / 1,000 リクエスト)
egress(外部へのデータ転送)
- S3(東京向け Data Transfer Out): 0.114 USD / GB(※無料枠を除く)
- R2: インターネットへの egress は無料
料金体系の違い(見積難易度)
ここまでの通り、ストレージ単価やリクエスト単価だけなら差は限定的です。 一方で、実運用のコスト差が出やすいのは egress(外向き転送)で、配信量が増えるほど差が拡大します。
- S3(AWS)はリージョン別に価格が存在し、さらに CloudFront 経由・同一リージョン内・リージョン間転送など「転送コストの発生箇所」が構成次第で変わります。つまり、正確な料金算出をすることが非常に難しいです。
- R2(Cloudflare)は単一の価格体系として提示されており、少なくとも「リージョンごとの料金表を追う」手間が小さく、概算が立てやすいのが特徴です。
なお、上記の料金単価は2026年1月時点の情報であり、中小規模で一般的に利用されるレンジの単価を記載しています。 最新の情報は公式ページを参照ください。
- S3料金 – https://aws.amazon.com/jp/s3/pricing/
- R2料金 – https://www.cloudflare.com/ja-jp/developer-platform/products/r2/
用途別の技術選択の基準
最初に示した「どちらを選ぶべきか?」について、用途・シナリオベースで分類すると以下のようになります。
1) データの保存・共有が中心:基本はクラウドストレージが候補に
単にデータを保存し、個人・チームで共有したり共同編集したりする用途であれば、オブジェクトストレージよりもクラウドストレージ(Google Drive / Dropbox など)の方が適している場合がほとんどです。クラウドストレージには、UI、共有管理、履歴、検索、権限付与、共同編集といった「人がデータを便利に扱うための機能」が最初から揃っています。 オブジェクトストレージで同等の体験を得るには、別途アプリケーションの導入などが必要になりがちです。
一方、アプリケーションから API で読み書きし、権限や配信も含めてシステム側で制御したい場合は、オブジェクトストレージが本領を発揮します。
2) 静的ファイルの大量配信:Cloudflare(R2 + CDN)が有利になりやすい
Cloudflare R2 の大きな特徴は インターネット向け egress(外部転送)課金がない点 です。
画像・動画・配布ファイルなど、ダウンロード量が増えやすい用途では、egress がコストの支配要因になりやすく、ここで差が出ます。
たとえば AWS 側で「S3 からインターネット」へ 1TB 転送すると、(日本向けの例として)$0.114/GB = 約$114/TBのコストが発生する(※)ことになり、中小規模でも無視できない負担になります。
(※無料枠を除く)
3) 配信環境の構築:Cloudflare(R2 + CDN)の方が簡易的
各バケットを独自ドメインで公開する場合を考えると、エコシステムとしての差が出てきます。
S3 を外部公開する場合、近年のプラクティスでは S3 を直接公開せず、S3 をオリジンにした CloudFrontを前段に置く構成が一般的です。 CloudFront に別名を割り当て、独自ドメイン用の証明書は Certificate Manager で発行してこれを CloudFront で使うといった設定をする必要があり、そこそこ公開までの手間があります。 各機能が独立していて、それを組み合わせるというエコシステムの理念に従ったものとなります。
一方、R2 を公開する場合は、Cloudflare 側で R2 バケットのパブリックアクセスを有効化し、R2 側でどのカスタムドメインを割り当てるかを指定すれば利用できます。 Cloudflare のエコシステムでは、ドメインを Cloudflare にゾーンとして追加し、ネームサーバーを Cloudflare に委任する「フルセットアップ」が基本になります。 DNS を Cloudflare 側に寄せることで、公開の設定をまとめて扱いやすく、手順もシンプルです。
このため、簡単に「バケット上のファイルを独自ドメインで公開」したいのであれば、Cloudflare 側の方が有利と言えます。ただし、この設定は「パブリックバケット」として中身を全て公開する場合の設定です。 アクセス制御が必要であれば、AWS IAM などで細かい設定ができる S3 の方がよいかもしれません。
4) S3 固有の機能・周辺連携が必要:Amazon S3 を選ぶ
記事執筆時点(2026年1月)では、R2 は S3 互換 API を提供しているものの、「S3 の全機能と完全一致」ではありません。Cloudflare 側も、S3 と比較して未実装の API 操作があることを明記しています。
また S3 には、長年の運用実績に加え、たとえば以下のような機能・選択肢があります。
- バージョニング(誤操作からの復旧などに有効)
- 多様なストレージクラス(アクセス頻度に応じたコスト最適化)
- AWS の分析・処理系サービスとの密な統合(ログ分析・ETL・メディア処理など)
これらの S3 にしか存在しない機能を使いたい場合、もしくは AWS の周辺サービス込みで設計したい場合、S3 を選ぶ理由が明確になります。
5) 既にエコシステムが決まっている:その側を基本にする
基盤が AWS 中心なのか Cloudflare 中心なのかで、基本方針は決めやすいです。どちらか中心の方のオブジェクトストレージを、基本として選択してください。
ただし併用(例:assets.example.com は Cloudflare、www.example.com は AWS)も現実的な選択肢で、うまくハマるとコスト最適化や運用分離ができます。一方で、併用は構成・障害切り分け・課金把握・セキュリティ境界の複雑さを増やします。
さらに最近は AWS 側でも CloudFront の 定額料金プランが提供され、従量課金以外の選択肢も増えています。 そのため例えコスト削減であっても「Cloudflare R2 一択」ではなく、前提ワークロードに応じて AWS 側の新オプションも含めて比較するのが安全です。
おわりに
S3 と R2 はどちらもオブジェクトストレージですが、選定の軸は大きく 「料金」 と 「エコシステム」 です。
保存単価は大差ない一方、R2 はインターネット向け egress が無料で、画像・動画など静的配信が多い用途ではコスト面で有利になりやすいのが特徴です。対して S3 は、豊富な機能(ストレージクラス、バージョニングなど)と AWS サービス群との密な統合が強みで、AWS 上で完結する設計や高度な運用要件に向いています。
どちらを選ぶべきか迷った場合は、「配信量(egress)が支配的か」「AWS / Cloudflare のどちらに寄せた設計にしたいか」を起点に検討すると判断しやすくなります。本記事が、その整理の手助けになれば幸いです。

















