クラウドでファイルや画像、バックアップデータを保存する際、多くの開発者が最初に検討するのがAmazon S3とCloudflare R2です。どちらもオブジェクトストレージという点では共通していますが、料金体系やエコシステム、得意なユースケースには明確な違いがあります。本記事では両者を技術的な観点から比較し、どのようなサービスにどちらが向いているのかを整理します。
S3とR2の基本概要
Amazon S3とは
Amazon S3(Simple Storage Service)は、AWSが提供するオブジェクトストレージサービスで、2006年から提供されている老舗のサービスです。高い耐久性(99.999999999%、いわゆる11 9)と豊富なストレージクラス(標準、低頻度アクセス、Glacierなど)を持ち、AWSの各種サービス(Lambda、CloudFront、Athenaなど)と密接に連携できるのが最大の強みです。
Cloudflare R2とは
Cloudflare R2は、Cloudflareが2022年に一般提供を開始した比較的新しいオブジェクトストレージサービスです。S3互換APIを採用しており、既存のS3向けツールやSDKをほぼそのまま利用できます。最大の特徴はデータ転送(egress)が無料である点で、Cloudflareのグローバルネットワークを活かした配信に最適化されています。
料金体系の比較
オブジェクトストレージのコストは主に「ストレージ容量」「リクエスト数」「データ転送(egress)」の3要素で決まります。それぞれの傾向を整理すると以下のようになります(executed時点の一般的な目安であり、最新の料金は各公式サイトで確認してください)。
- ストレージ料金:S3・R2ともに1GBあたり月数セント程度で大きな差はない
- リクエスト料金:S3はPUT/GET/LISTなど操作ごとに細かく課金、R2も同様の体系だがクラスAクラスBという分類で管理
- データ転送(egress):S3は外部への転送量に応じて課金されるが、R2はegress無料という大きな違いがある
特に画像配信や動画配信、APIレスポンスとして大量のファイルを外部に返すようなユースケースでは、egress料金の有無がコストに直結します。転送量が多いサービスほどR2のコストメリットが大きくなる傾向があります。
機能面・エコシステムの比較
AWSエコシステムとの連携
S3はAWSの中核サービスであり、Lambda、CloudFront、Athena、Glue、SageMakerなど数多くのサービスとネイティブに連携できます。既にAWS基盤上でシステムを構築している場合、S3を選ぶことでIAMによる権限管理やVPCエンドポイントなどのセキュリティ機能をそのまま活用できます。
Cloudflareエコシステムとの連携
R2はCloudflare Workers、Cloudflare Pages、Cloudflare CDNとの連携に強みがあります。エッジで動作するWorkersからR2に直接アクセスできるため、サーバーレスな配信基盤を低コストで構築しやすい点が特徴です。
互換性
R2はS3互換APIを採用しているため、既存のS3用SDKやCLIツール(AWS CLI、boto3、rcloneなど)をエンドポイントの変更だけでほぼそのまま利用できます。移行や併用のハードルが低いことも実務上のメリットです。
操作例:AWS CLIでS3・R2にアクセスする
R2はS3互換APIのため、AWS CLIのプロファイルとエンドポイントを切り替えるだけで同じコマンド体系を使えます。
# S3へのアップロード
aws s3 cp ./sample.jpg s3://my-s3-bucket/sample.jpg
# R2へのアップロード(エンドポイントを指定)
aws s3 cp ./sample.jpg s3://my-r2-bucket/sample.jpg \
--endpoint-url https://<account_id>.r2.cloudflarestorage.comこのように、既存のS3運用スクリプトをほぼ流用できる点は、移行コストを抑えたい場合に大きな利点となります。
どちらを選ぶべきか:ユースケース別の指針
S3が向いているケース
- すでにAWS上でシステムを構築しており、Lambdaやデータ分析基盤と密接に連携したい場合
- Glacierなどのアーカイブストレージを含めた長期保存・コンプライアンス要件がある場合
- マルチリージョンレプリケーションや細かいストレージクラス管理が必要な場合
R2が向いているケース
- 画像・動画・静的ファイルなど、外部への配信(egress)が多いサービス
- Cloudflare WorkersやPagesを使ったエッジ構成のアプリケーション
- 転送コストを予測しやすくし、月額コストを抑えたい個人開発・スタートアップ
併用というアプローチ
両者は排他的な選択肢ではなく、併用することも可能です。例えば、データ分析や長期保存にはS3を使い、ユーザー向けに配信する画像や動画はR2に置いてegressコストを抑える、といったハイブリッド構成も現実的な選択肢です。S3互換APIのおかげで、アプリケーション側の実装をあまり変えずに使い分けられる点も大きなメリットです。
まとめ
S3とR2はどちらも高い耐久性を持つオブジェクトストレージですが、AWSエコシステムとの統合を重視するならS3、データ転送コストを抑えつつ配信性能を重視するならR2という住み分けが明確です。自社サービスのアクセスパターン(保存中心か配信中心か)を分析した上で、コストパフォーマンスの良い方を選択、あるいは併用することをおすすめします。
