コンテンツにスキップ

8-1 倉庫という保存先(R2 とは)

Plan: Free費用: 0円Wrangler 4.126.0公式ドキュメント取得日 2026-08-27
受付の裏の帳簿と付箋ボードの奥に建つ大きな倉庫
R2 は、帳簿にも付箋にも収まらない大きなものを置く倉庫です。

受付の裏には、帳簿(第 6 章)と付箋ボード(第 7 章)が並びました。どちらも紙で、写真の束や動画のような大きなものは収まりません。

いま読んでいるこのサイト(Cloudflare Lab)も、章に載せる図版の画像や、検証の結果を書き出したファイルの置き場に困っていました。ページの原稿と同じ場所に抱えると、荷物が増えるたびに全体が重くなります。

大きな荷物には倉庫が要ります。ここでは、倉庫という保存先、荷物と荷札、出すときの料金、他社と同じ伝票の順に見ます。

Learning goals

この節でできるようになること

  • 倉庫が帳簿や付箋と何が違うかを説明できる
  • bucket・object・key の三つを日常語で言える
  • 外へ出すときの通信量に料金がかからないことを説明できる
  • S3 互換が何を指すかを説明できる

帳簿は行と列で書くもの、付箋は名前と短い中身を書くものです。写真や動画や書き出したファイルはどちらにも収まらず、箱のまま置ける広い場所が要ります。

Cloudflare では、この倉庫を R2 と呼びます。公式は R2 を「すべてのデータのための object storage(物を 1 つずつ預ける保存先)」と紹介しています。大量の unstructured data(形の決まっていないデータ)を、よくあるクラウドの高い出庫の費用なしに置けるようにするもの、という説明です。

実物では、画像・動画・音声・書き出したファイルが荷物になります。公式は用途の例として、Web に載せる素材の置き場や、大きなまとめ処理の出力などを挙げています。

帳簿・付箋ボード・倉庫が大きさの順に並ぶ
入るものの大きさで、置き場が変わります。

受付の裏の帳簿と付箋ボードの奥に、大きな倉庫が建っています。

つまり、形が決まっていない大きなものは、帳簿でも付箋でもなく倉庫に置きます。

倉庫に物を預けるときは、どの棟に入れるかを決め、箱に荷札を貼ります。荷札に書いた名前が、後で取り出すときの手がかりになります。

Cloudflare では、預ける物 1 つを object、それをまとめて入れる棟を bucket と呼びます。公式は「R2 は保存するデータ(object と呼びます)を、入れ物(bucket と呼びます)にまとめる」と説明し、bucket は R2 の中での性能・拡張・アクセスの基本単位だとしています。荷札にあたるのが key で、公式の一覧では「その object の key」と説明されています。

実物では、key に figures/ch08/warehouse.webp のような / を含む名前を付けられます。倉庫の中に本当の仕切りはありませんが、公式の一覧には区切り文字を指定する欄があり、同じ書き出しの荷札をひとまとまりとして扱えます。

倉庫の棟に積まれた箱それぞれに名前の荷札が付く
棟が bucket、荷物が object、荷札が key です。

倉庫の棟の中に箱が積まれ、箱それぞれに名前の書かれた荷札が付いています。

つまり、棟が bucket、荷物が object、荷札が key です。

普通の倉庫は、預けるときだけでなく、外へ運び出すときにも料金がかかります。出すたびに費用が増えるので、配れば配るほど高くつきます。

倉庫から外の世界へ運び出すことを egress(外向きのデータ転送)と呼びます。公式の料金ページは「どの storage class でも egress bandwidth(外向きの通信量)への課金はありません」と書いています。脚注では、Workers API・S3 API・r2.dev のドメインを通して R2 から直接出す分にはデータ転送の料金がかからず無料だ、と補足しています。

実物では、同じ画像を何万回配っても、外へ出した量そのものでは費用が増えません。増えるのは読み出しの伝票の枚数で、その数え方は第 8-4 節で見ます。

倉庫の出口に料金所が無く、荷物がそのまま運び出される
外へ出した通信量では料金が発生しません。

倉庫の出口に料金所がなく、運び出しても何も請求されません。

つまり、R2 は外へ出した通信量では課金されません。

倉庫を借り換えるとき、伝票の書式が前と同じなら、いままで使っていた道具や手順をそのまま持ち込めます。書式が違うと、道具から作り直しになります。

Cloudflare では、この共通の書式を S3 API と呼びます。公式は「R2 は、利用者とそのアプリケーションが楽に移行できるよう S3 API を実装している」と説明しています。ただし AWS S3 と比べると、一部の機能は取り除かれ、別の機能が足されているとも書かれています。

実物では、S3-compatible な道具をそのまま使えます。公式は接続先として https://<ACCOUNT_ID>.r2.cloudflarestorage.com を案内しています。

倉庫の受付に他社と同じ書式の伝票が置かれている
伝票の書式が共通なので、既存の道具を持ち込めます。

倉庫の受付に、他社と同じ書式の伝票が置かれています。

つまり、伝票の書式が共通なので、既存の道具と手順を持ち込めます。

ここで紹介した倉庫が、いま読んでいる Cloudflare Lab でどう使われるかを見ます。

Cloudflare Lab は Phase 2 で、章に載せる図版の画像と、検証の書き出しファイルを R2 の倉庫に置く予定です。どちらも置く回数は少なく読まれる回数が多いので、外へ出す通信量に料金のかからない倉庫と相性が良いと考えています。実測(倉庫の名前と、置いた object の数)は実装後に追記します。

  • 倉庫(R2)は、形の決まっていない大きなものを置く object storage です。
  • 棟が bucket、荷物が object、荷札が key です。
  • 外へ出す通信量(egress)に料金はかからず、伝票の書式は S3 API と互換です。

この節で出てきた言葉を、つながりの順に並べると次のようになります。

図のラベル: 大きな荷物 画像・動画・書き出し / 倉庫という保存先 R2 / object storage / 棟 bucket / 荷物 object / 荷札 key / 出す通信量は無料 egress / 伝票の書式は共通 S3 API

次の節では、倉庫を実際に建て、マニュアルから開けるようにします。

この節のチェック

問 1R2 の説明として公式に沿うものはどれですか?

問 2倉庫のたとえで、bucket・object・key はそれぞれ何にあたりますか?

問 3R2 から外へデータを出したときの料金について、公式の記述はどれですか?

問 4R2 が S3 互換であるとは、公式の説明ではどういう意味ですか?

問 5倉庫(R2)が帳簿の代わりにならないのはなぜですか?

最終更新日: