+ 作るログイン
1 / 14
Cloudflare のすべて ― 1機能ずつ、仕組みと存在理由から / 全35本

Cloudflare 22:R2 ― 取り出し料金ゼロの、S3 互換ファイル置き場

発行
アニメモ公式
版
第2版
改訂
コマ
全14

画像や動画などのファイルを置く R2 を、なぜ「取り出し料金(egress)が無い」ことが大事なのかから説明します。オブジェクトストレージの考え方、バケットとキー、S3 互換 API、Worker のバインディング、独自ドメインでの公開と r2.dev、署名付き URL での直接アップロード、保存クラスと料金、落とし穴まで。

ファイルを置くのは安い。でも、見られるほど高くなる

Web サービスには、たくさんのファイルがつきものです。利用者が上げたプロフィール画像、商品の写真、紹介動画、ダウンロード用の資料、毎日のバックアップ。こうしたファイルは、データベースではなく、オブジェクトストレージという専用の置き場に入れるのが普通です。代表は Amazon の S3 です。

オブジェクトストレージは、置いておくだけなら安いものです。ところが、請求書を見て驚く人が少なくありません。多くのクラウドでは、置いた量とは別に、インターネットへ外に出したデータの量にも料金がかかるからです。これを egress(イーグレス)料金、日本語では転送料や取り出し料金と呼びます。

料金の種類かかるとき
保存料置いてある量に応じて、毎月
操作の料金置く・読む・一覧する、の回数に応じて
egress 料金利用者がダウンロードするたびに、出ていった量に応じて

困るのは、egress 料金が人気に比例することです。サイトが話題になり、動画が何万回も再生されると、それだけで請求が跳ね上がります。しかも、どれだけ見られるかは事前に分からないので、月末まで金額が読めません。「うまくいくほど怖い」料金なのです。

この号で扱う R2 は、この egress 料金をなくしたオブジェクトストレージです。

※この号の内容は 2026年9月時点の情報をもとにしています。料金や上限は変わることがあるので、使うときは必ず公式のドキュメントで確かめてください。

  • Cloudflare のすべて 22 ― R2
  • 1 / 14
  • ファイルを置くのは安い。でも、見られるほど高くなる
  • 利用者
  • ストレージ
  • 転送料 ¥
  • 一般的なクラウド
  • 転送料 ¥
  • 別のクラウド
  • 転送料 ¥
  • CDN・他社
  • 画像・動画・ダウンロード用のファイル。見られるたびに「外へ出した量」で請求される
  • 人気が出るほど請求が増え、しかも月末まで金額が読めない
  • 多くのクラウドは、置く料金より「外へ出す料金」が効いてくる。

取り出し料金は、引っ越しも難しくする

egress 料金には、もう1つ見えにくい問題があります。データの引っ越しを難しくすることです。

たとえば、あるクラウドに 10TB のファイルを置いているとします。別のクラウドのほうが安い、あるいは使いたい機能がある、と分かっても、移すには 10TB 全部を外へ出す必要があります。その量の egress 料金が、一度にかかります。

場面egress 料金があると
別のクラウドへ引っ越す全データ分の転送料がかかる
別の会社の CDN で配るCDN がファイルを取りに来るたびに転送料がかかる
複数のクラウドを使い分けるクラウドの間でデータを動かすたびに転送料がかかる

その結果、「移したほうが長い目で見れば安いのに、移す費用が高くて動けない」という状態が生まれます。これをベンダーロックイン(特定の会社から離れられなくなること)と呼びます。データを入れるのは無料、出すのは有料、という形は、まさに「入りやすく出にくい」仕組みになっているのです。

Cloudflare は、この egress 料金を以前から問題にしてきました。回線の費用は、実際には量が増えるほど安くなるのに、利用者には高い単価で請求されている、という主張です。R2 は、その主張を自分たちの製品で示したもの、と考えると成り立ちが分かりやすいでしょう。

  • Cloudflare のすべて 22 ― R2
  • 2 / 14
  • 取り出し料金は、引っ越しも難しくする
  • 利用者
  • ストレージ
  • 転送料 ¥
  • 一般的なクラウド
  • 転送料 ¥
  • 別のクラウド
  • 転送料 ¥
  • CDN・他社
  • 10TB を別のクラウドへ移す → その量の転送料がまとめてかかる
  • 「移したほうが安いのに、移す費用が高くて動けない」= ベンダーロックイン
  • データを別の場所へ移すだけでお金がかかる。いつの間にか出られなくなる。

一言でいうと:取り出し料金ゼロの、S3 互換の置き場

R2 を一言でいうと、「外へ出す量に料金がかからない、S3 と同じ使い方ができるオブジェクトストレージ」です。

特徴中身
egress 料金ゼロ利用者がどれだけダウンロードしても、出ていった量には料金がかからない
S3 互換Amazon S3 と同じ API で操作できる。今ある道具やライブラリがそのまま使える
Workers と直結Worker からバインディング(18号)で、鍵なしに読み書きできる
払うもの置いた量と、操作(置く・読む)の回数

図の3本の矢印を、1ページ目と比べてください。行き先が利用者でも、別のクラウドでも、他社の CDN でも、転送料は0円です。

これで、「人気が出るほど請求が怖い」「引っ越せない」という2つの問題が、どちらも小さくなります。見られた回数に応じて「読む操作」の料金はかかりますが、単価は小さく、動画のような大きなファイルでも、1回読むのは1回の操作です。ファイルの大きさで料金が膨らむことはありません。

S3 と同じ使い方ができるので、「S3 を使っていたけれど、配信の転送料が重い」というサービスが、配る部分だけ R2 に移す、という使い方もよく見られます。

  • Cloudflare のすべて 22 ― R2
  • 3 / 14
  • 一言でいうと:取り出し料金ゼロの、S3 互換の置き場
  • 利用者
  • R2
  • 転送料 0円
  • Cloudflare
  • 転送料 0円
  • 別のクラウド
  • 転送料 0円
  • CDN・他社
  • R2 は、外へ出したデータの量(egress)に料金がかからない
  • 使い方は Amazon S3 と同じ(S3 互換 API)。今の道具がそのまま使える
  • 置いた量と操作の回数だけを払う。外へ出す量はいくらでも無料。

オブジェクトストレージ:バケットに、キーでファイルを置く

R2 を使う前に、オブジェクトストレージの考え方を押さえておきましょう。パソコンのフォルダとは少し違います。

用語意味
バケット置き場の単位。用途やアプリごとに作る(my-app など)
キーファイルの名前。images/cat.jpg のような文字列
オブジェクト置いたファイルの中身と、付随する情報(種類・大きさ・更新日時など)

キーの中の / は、実はただの文字です。オブジェクトストレージにフォルダはありません。images/cat.jpg と images/dog.jpg は、たまたま名前の頭が同じなだけの、別々のオブジェクトです。

ただ、一覧を取るときに「images/ で始まるものだけ」と頭の文字(prefix)を指定できるので、フォルダのように扱えます。管理画面でもフォルダのように表示されます。

普通のファイルシステムとの違いをまとめると、次のようになります。

パソコンのフォルダオブジェクトストレージ
構造フォルダの入れ子キーと中身の平らな表
書き換えファイルの一部だけ直せる丸ごと置き直す
大きさディスクの容量まで事実上いくらでも
使い方同じ機械から読むネットワーク越しに読む

「一部だけ書き換える」ことができないので、ログのように少しずつ追記するデータには向きません。一度作ったら丸ごと読むファイルに向いた置き場です。

  • Cloudflare のすべて 22 ― R2
  • 4 / 14
  • オブジェクトストレージ:バケットに、キーでファイルを置く
  • バケット:my-app
  • バケット
  • オブジェクト
  • 置き場の単位。用途ごとに作る
  • images/cat.jpg
  • ファイルの中身とメタデータ
  • videos/intro.mp4
  • キー
  • 大きさ
  • images/cat.jpg のような名前
  • backup/2026-09.zip
  • 小さな画像から巨大な動画まで
  • uploads/u_12/a.png
  • 「/」は名前の一部にすぎない。prefix(頭の文字)で一覧すると、フォルダのように扱える
  • フォルダのように見えても、実は「キー → 中身」の巨大な表。

出し入れの入口は3つ

R2 のバケットには、3つの入口からアクセスできます。

入口使う人・場面認証
Worker のバインディングあなたの Workers のアプリ設定でつなぐだけ。鍵は要らない
S3 互換 APIAWS の SDK・CLI・rclone、バックアップの道具などアクセスキー(API トークン)
公開 URL画像や動画を、誰でも見られるように配るなし(公開したものだけ)

どの入口から置いたオブジェクトも、同じバケットの同じオブジェクトです。たとえば、夜間のバックアップの道具が S3 API で置いたファイルを、昼間に Worker から読んで加工し、公開 URL で配る、ということができます。

Worker のバインディングは、Cloudflare の中で完結するいちばん速くて簡単な入口です。アプリの中で「利用者が上げた画像を保存する」「権限を確かめてから画像を返す」といった処理は、こちらで書きます(後の使い方のページ)。

S3 互換 API は、Cloudflare の外から使うための入口です。次のページで見ます。

公開 URL は、ファイルを誰でも見られるように配るための入口です。その次のページで見ます。

バケットは、既定では非公開です。何も設定しなければ、外からは誰も読めません。公開したいときだけ、公開 URL の入口を明示的に開けます。

  • Cloudflare のすべて 22 ― R2
  • 5 / 14
  • 出し入れの入口は3つ
  • バケット:my-app
  • images/cat.jpg
  • Worker から(バインディング)
  • videos/intro.mp4
  • backup/2026-09.zip
  • S3 互換 API(SDK・CLI)
  • 公開 URL(独自ドメイン)
  • どの入口から置いたものも、同じバケットの同じオブジェクト
  • アプリは Worker から、既存の道具は S3 API で、配るなら公開 URL で。

S3 互換:今の道具は「接続先」を変えるだけ

R2 は、Amazon S3 と同じ API に対応しています。そのため、S3 用に作られた道具やライブラリが、接続先を変えるだけで R2 に使えます。

道具例
公式の SDKAWS SDK for JavaScript・Python(boto3)・Go など
コマンドAWS CLI、rclone など
アプリS3 に対応したバックアップソフト、画像の配信サービスなど

変えるのは、主に3つです。

設定R2 での値
エンドポイントhttps://<アカウントID>.r2.cloudflarestorage.com
アクセスキー管理画面の R2 の「API トークン」で作る
リージョンauto
ts
import { S3Client, PutObjectCommand } from "@aws-sdk/client-s3";

const s3 = new S3Client({
  region: "auto",
  endpoint: `https://${ACCOUNT_ID}.r2.cloudflarestorage.com`,
  credentials: { accessKeyId: KEY_ID, secretAccessKey: SECRET },
});
await s3.send(new PutObjectCommand({ Bucket: "my-app", Key: "backup/2026-09.zip", Body: data }));

S3 のすべての機能に対応しているわけではないので、特殊な機能を使っている道具では確かめが必要です。

S3 から R2 へ引っ越すための仕組みも用意されています。まとめて移す機能や、R2 に無いファイルを読まれたときにだけ S3 から取ってくる機能(少しずつ移す)があります。

  • Cloudflare のすべて 22 ― R2
  • 6 / 14
  • S3 互換:今の道具は「接続先」を変えるだけ
  • バケット:my-app
  • endpoint:
  • images/cat.jpg
  • https://<アカウントID>.r2.
  • cloudflarestorage.com
  • videos/intro.mp4
  • backup/2026-09.zip
  • S3 互換 API(SDK・CLI)
  • アクセスキーは管理画面の「API トークン」で作る
  • region は auto を指定する
  • AWS の SDK・CLI・rclone などが、エンドポイントとキーを替えれば動く。

公開して配る:独自ドメインをつなぐ

画像や動画を、Web サイトから誰でも見られるように配りたいことはよくあります。そのための入口が公開 URLです。方法は2つあります。

方法住所向いている場面
独自ドメインcdn.example.com/images/cat.jpg本番。Cloudflare の機能がすべて使える
r2.dev の URLpub-xxxx.r2.dev/images/cat.jpg開発・試し。回数に制限がある

本番では、独自ドメインをつなぐ方法を使います。バケットの設定で、Cloudflare に登録しているドメイン(01号)のサブドメインを指定するだけです。こうすると、ファイルへのリクエストが Cloudflare の網を通るので、次のことができます。

できること号
よく見られるファイルを近くの拠点にキャッシュする02
怪しいアクセスを WAF で止める05
回数を制限する06
社内の人だけに見せる16

キャッシュが効くと、R2 まで読みに行く回数そのものが減るので、「読む操作」の料金も下がります。

r2.dev の URL は、ボタン1つで有効にできる手軽さが魅力ですが、開発用という位置づけで、アクセスの回数に制限があり、キャッシュなどの機能も使えません。本番のサイトから直接リンクするのは避けましょう。

利用者ごとに見られるファイルが違う(自分の請求書だけ見られる、など)場合は、公開 URL ではなく、Worker で権限を確かめてから返すか、次のページの署名付き URL を使います。

  • Cloudflare のすべて 22 ― R2
  • 7 / 14
  • 公開して配る:独自ドメインをつなぐ
  • バケット:my-app
  • cdn.example.com
  • images/cat.jpg
  • キャッシュ・WAF・アクセス制御
  • videos/intro.mp4
  • r2.dev の URL:開発・試し用。回数に制限あり
  • backup/2026-09.zip
  • 公開 URL(独自ドメイン)
  • 公開しないバケットは既定で非公開。外から読むには、どれかの入口を用意する
  • 独自ドメインなら Cloudflare のキャッシュ・WAF が効く。r2.dev は試し用。

署名付き URL:ブラウザから直接アップロードさせる

利用者に大きなファイル(動画など)をアップロードしてもらう場面を考えます。いちばん素直なのは、ブラウザ → あなたの Worker → R2 と、Worker を経由させる方法です。でも、大きなファイルは Worker のリクエストの大きさの上限にかかることがあり、Worker の処理も無駄に長くなります。

そこで使うのが署名付き URL(presigned URL)です。

順番何が起きるか
1ブラウザが Worker に「ファイルを置きたい」と伝える
2Worker が利用者を確かめ、置き場所のキーを決め、期限付きの特別な URL を作って返す
3ブラウザが、その URL に直接ファイルを PUT する。Worker は通らない

署名付き URL には、「どのバケットの、どのキーに、何(PUT や GET)をしてよいか、いつまで有効か」が、秘密の鍵で作った署名として埋め込まれています。URL を持っている人は、その範囲のことだけができます。キーを変えたり、期限を延ばしたりすると、署名が合わなくなって拒否されます。

署名付き URL は S3 互換 API の機能なので、作るときは S3 の SDK や、軽いライブラリ(aws4fetch など)を使います。読み込み用(GET)の署名付き URL を作れば、非公開のファイルを、決めた人に期限付きで見せることもできます。

大事なのは、キー(置き場所の名前)はサーバー側で決めることと、期限を短くすることです。利用者にキーを決めさせると、他人のファイルを上書きされるおそれがあります。

  • Cloudflare のすべて 22 ― R2
  • 8 / 14
  • 署名付き URL:ブラウザから直接アップロードさせる
  • 1. 置きたい
  • ブラウザ
  • あなたの Worker
  • 2. 署名付き URL
  • バケット:my-app
  • 3. URL に直接 PUT(Worker を通らない)
  • URL には「どのキーに・何をしてよいか・いつまで」が署名で埋め込まれている
  • 大きな動画も Worker の上限にかからない。期限を短くし、キーはサーバー側で決める
  • サーバーを通さずに、期限付きで「この1つだけ置いてよい」許可を渡す。

導入:バケットを作り、Worker につなぐ

R2 を使い始める手順です。

順番やること
1管理画面の「R2 Object Storage」を開き、利用を始める手続きをする(無料枠の範囲で使う場合でも、支払い方法の登録を求められることがある)
2バケットを作る。管理画面か、次のコマンドで
3Worker の設定にバインディングを書く
4必要なら、公開 URL(独自ドメイン)や S3 API 用の API トークンを作る
$ npx wrangler r2 bucket create my-app
jsonc
{
  "r2_buckets": [
    { "binding": "BUCKET", "bucket_name": "my-app" }
  ]
}

binding に書いた名前が、コードの env に入る名前になります。この例なら env.BUCKET です。

バケットを作るときには、データを置く地域も選べます。既定では、Cloudflare が利用状況を見て自動で選びます。法律や契約で「データを EU の中に置く」などの決まりがあるときは、その地域に限定したバケットを作れます。

手元で wrangler dev を使うと、R2 は手元の模擬版につながるので、本番のファイルを消してしまう心配なく試せます。

ほかにも、バケットには次のような設定があります。

設定使いどころ
ライフサイクルのルール30日たったファイルを自動で消す、保存クラスを変える
CORSブラウザから直接アップロード・読み込みさせるときの許可
イベント通知ファイルが置かれたら Queues(24号)に知らせる
  • Cloudflare のすべて 22 ― R2
  • 9 / 14
  • 導入:バケットを作り、Worker につなぐ
  • $ npx wrangler r2 bucket create my-app
  • "r2_buckets": [
  • { "binding": "BUCKET", "bucket_name": "my-app" }
  • ]
  • 管理画面の「R2 Object Storage」からも作れる。初回は R2 の利用開始の手続きが要る
  • wrangler で作り、設定の r2_buckets に書けば env から使える。

使い方:put・get・delete・list

Worker のコードからは、env.BUCKET に対して put・get・delete・list を呼びます。

ts
export default {
  async fetch(request: Request, env: Env): Promise<Response> {
    const key = new URL(request.url).pathname.slice(1); // 例: images/cat.jpg

    if (request.method === "PUT") {
      await env.BUCKET.put(key, request.body, {
        httpMetadata: { contentType: request.headers.get("content-type") ?? undefined },
      });
      return new Response("saved", { status: 201 });
    }

    const obj = await env.BUCKET.get(key); // 無ければ null
    if (!obj) return new Response("not found", { status: 404 });

    const headers = new Headers();
    obj.writeHttpMetadata(headers);        // 置いたときの content-type などを戻す
    headers.set("etag", obj.httpEtag);
    return new Response(obj.body, { headers });
  },
};

押さえておきたい点は次のとおりです。

点中身
ストリームのまま扱うrequest.body をそのまま put し、obj.body をそのまま返せる。大きなファイルでも Worker のメモリに全部載せない
メタデータhttpMetadata に content-type などを保存し、返すときに writeHttpMetadata で戻す
一覧list({ prefix: "images/" }) で頭の文字ごとに一覧できる。多いときは続きの目印(cursor)で次を取る
部分的に読むget に範囲を指定して、動画の一部だけを読むこともできる

このコードは説明のために短くしています。実際には、PUT の前に利用者の権限を確かめる処理が必要です。誰でも PUT できる Worker を公開すると、他人にバケットを使われてしまいます。

  • Cloudflare のすべて 22 ― R2
  • 10 / 14
  • 使い方:put・get・delete・list
  • await env.BUCKET.put("images/cat.jpg", request.body, {
  • httpMetadata: { contentType: "image/jpeg" },
  • });
  • const obj = await env.BUCKET.get("images/cat.jpg"); // 無ければ null
  • if (!obj) return new Response("not found", { status: 404 });
  • return new Response(obj.body, { headers: { etag: obj.httpEtag } });
  • await env.BUCKET.delete("images/cat.jpg");
  • const { objects } = await env.BUCKET.list({ prefix: "images/" });
  • Worker からはキーを渡すだけ。中身はストリームのまま返せる。

料金と保存クラス:払うのは「置いた量」と「操作の回数」

R2 の料金は、保存量と操作の回数の2つで決まります。egress(外へ出す量)はかかりません。2026年9月時点の主な数字は次のとおりです。料金・上限は変わるので、必ず公式の Pricing と Limits のページで確かめてください。

項目無料枠(Standard・毎月)超えた分
egress(外へ出す量)無料無料
保存量10GB までGB ごとの月額
Class A 操作(置く・一覧するなど、書く系)100万回まで100万回ごとの料金
Class B 操作(読むなど)1,000万回まで100万回ごとの料金

操作は、書く系(Class A)のほうが、読む系(Class B)より単価が高く設定されています。

R2 には、2つの保存クラスがあります。

保存クラス特徴向いているもの
Standard標準。無料枠があるのはこちらよく読まれるファイル全般
Infrequent Access保存料は安いが、読むたびに取り出しの料金がかかる。最低30日分の保存料がかかる。無料枠なしバックアップ、古いログなど、めったに読まないもの

Infrequent Access の「取り出しの料金」は、egress とは別物で、保存クラスの性質によるものです。めったに読まないものだけを入れる、という使い方を守れば安くなりますが、頻繁に読むと Standard より高くつきます。ライフサイクルのルールで「30日たったら Infrequent Access に移す」と自動化するのが定番です。

  • Cloudflare のすべて 22 ― R2
  • 11 / 14
  • 料金と保存クラス:払うのは「置いた量」と「操作の回数」
  • 項目
  • 無料枠(Standard)
  • 超えた分
  • 外へ出す量(egress)
  • 無料
  • 無料(料金なし)
  • 保存量
  • 月10GB まで
  • GB あたり月額
  • 書く操作(Class A)
  • 月100万回まで
  • 100万回あたり
  • 読む操作(Class B)
  • 月1,000万回まで
  • 100万回あたり
  • Infrequent Access:保存は安いが、読むたびに取り出し料金。最低30日分の保存料
  • 2026年9月時点。上限・料金は変わるので、公式の Pricing と Limits のページで確かめること
  • 無料枠は Standard のみ。めったに読まないなら Infrequent Access。

よくある落とし穴

R2 でよくつまずく点をまとめます。

落とし穴何が起きるかどうするか
r2.dev のまま本番で配る回数の制限にかかる。キャッシュも WAF も効かない独自ドメインをつなぎ、キャッシュを効かせる
小さなファイルを大量に読むegress は無料でも、読む回数(Class B)で課金されるキャッシュで R2 まで来る回数を減らす。まとめられるものはまとめる
署名付き URL の期限が長いURL が漏れると、期限まで誰でも使える期限は数分から数十分に。キーはサーバーで決める
Infrequent Access を頻繁に読む取り出しの料金で、かえって高くつくよく読むものは Standard のままに
誰でも PUT できる Worker知らない人にバケットを倉庫として使われるWorker で必ず権限を確かめる
ログの追記に使うオブジェクトは一部だけ書き換えられない。追記のたびに丸ごと置き直すログは 32号の仕組みや、まとめて書き出す形に

「egress が無料」と聞くと、何も気にしなくてよいように感じますが、操作の回数は数えられています。特に、小さなファイル(アイコンやサムネイル)を大量に配るサイトでは、読む回数が料金の中心になります。独自ドメインとキャッシュ(02号)の組み合わせは、速さのためだけでなく、料金のためにも大切です。

  • Cloudflare のすべて 22 ― R2
  • 12 / 14
  • よくある落とし穴
  • r2.dev のまま本番で配る:回数の制限があり、キャッシュも効かない
  • 小さなファイルを大量に読む:量は無料でも読む回数で課金
  • 署名付き URL の期限が長い:URL が漏れると誰でも使える
  • Infrequent Access を頻繁に読む:取り出し料金で高くつく
  • 配るなら独自ドメイン+キャッシュ、キーはサーバーで決める
  • egress は無料でも、操作の回数と公開の仕方には気をつける。

他の号とのつながり

R2 は、他の多くの機能と組み合わせて使います。

号機能R2 との関係
18Workersバインディングで読み書きし、権限を確かめてから返す
20KV「どのファイルを使うか」のような小さな設定は KV、中身は R2
23D1ファイルの一覧・持ち主・説明などの情報は D1、中身は R2
24Queuesファイルが置かれたらイベントを受け取り、サムネイル作りなどを後回しにする
02CDN とキャッシュ独自ドメインで配るとき、近くの拠点から返す
31Images と Stream画像の変形・最適化、動画の配信は専用の製品もある
29Vectorize と AI SearchR2 に置いた文書を元に、AI で検索できるようにする
32分析とログログを R2 に書き出して長く保存する

よくある組み合わせは、「中身は R2、情報はデータベース」です。利用者が画像を上げたら、画像そのものは R2 に置き、「誰の、どの記事の、何という画像か」は D1 に書きます。一覧や検索は D1 で行い、表示するときだけ R2 から読みます。

画像のサイズを変えたり、形式を変えたりしたいときは、自分で Worker に書くより、31号の Images を使うほうが簡単です。

  • Cloudflare のすべて 22 ― R2
  • 13 / 14
  • 他の号とのつながり
  • 18 Workers
  • 20 KV
  • 23 D1
  • 24 Queues
  • R2(22)
  • 02 キャッシュ
  • 31 Images
  • 29 AI Search
  • 32 ログ
  • 中身は R2、場所や情報は KV・D1 に。配信はキャッシュ、画像は Images と。

まとめ:R2 は「出すのが無料」のファイル置き場

この号で見たことをまとめます。

項目内容
なぜあるかegress 料金で「見られるほど高くなる」「引っ越せない」をなくすため
形バケットに、キーでオブジェクト(ファイル)を置く
入口Worker のバインディング・S3 互換 API・公開 URL の3つ
S3 互換エンドポイントとキーを替えれば、S3 の道具がそのまま使える
公開本番は独自ドメイン(キャッシュ・WAF が効く)、r2.dev は開発用
アップロード署名付き URL で、ブラウザから直接・期限付きで
料金保存量と操作の回数。egress は無料。無料枠は Standard のみ
保存クラスStandard と Infrequent Access(めったに読まないもの向け)
注意読む回数、r2.dev、署名付き URL の期限、PUT の権限

R2 は、「データを置く場所を選ぶとき、出すときの料金まで考える」という視点を、多くの開発者に広めた製品です。次の23号では、SQL で検索や集計ができるデータベース、D1 を見ていきます。

  • Cloudflare のすべて 22 ― R2
  • 14 / 14
  • まとめ:R2 は「出すのが無料」のファイル置き場
  • 利用者
  • R2
  • 転送料 0円
  • Cloudflare
  • 転送料 0円
  • 別のクラウド
  • 転送料 0円
  • CDN・他社
  • バケットにキーで置く / 入口は Worker・S3 API・公開 URL / 署名付き URL で直接アップロード
  • 払うのは保存量と操作の回数。配信は独自ドメインとキャッシュで
  • S3 と同じ使い方で、見られるほど高くなる心配がない。

0 件のコメント

読み込み中…

権利侵害・不適切な内容の連絡: [email protected]