ファイルを置く
保存先の地図
KV・D1・R2を、付箋・表・倉庫で見分ける
Cloudflareには、データを置く場所が何種類もあります。KV、D1、R2。名前を見ても違いが分かりません。でも中身は「付箋」「表」「倉庫」の3つだと思えば、それで足ります。
この章でわかること
- KV・D1・R2が、それぞれ何をしまう場所なのか
- 「これはどこに置くべきか」を自分で判断する基準
- なぜ画像はR2なのか
3つを、身近なものにたとえます
横にスクロールできます
KV:名前で出し入れする付箋
「この名前で、この値」という組み合わせをしまう場所です。site-title という名前で 僕のサイト という文字を入れておく、といった使い方をします。
名前さえ分かれば一瞬で取り出せます。その代わり、中身で探すのは苦手です。「『サイト』という文字を含むものを全部出して」という頼み方はできません。付箋の束から、内容で探すのが大変なのと同じです。
D1:条件で絞り込める表
表計算ソフトの表を思い浮かべてください。1行が1件で、列に名前・日付・状態が並んでいます。D1が得意なのは条件で絞ることです。「今月に登録した人だけ」「公開になっている投稿だけ」といった取り出し方ができます。
逆に、写真そのものを表のマス目に入れるのは無理があります。表に入れるのは「写真の名前」や「撮影日」で、写真の実物は別の場所に置きます。
R2:中身を問わず預かる倉庫
画像・PDF・動画・音声。ファイルそのものを預ける場所です。倉庫は中身を開けません。箱に貼った名前だけを見て、預かって、言われたら出します。
だから「10月に撮った写真だけ出して」は、R2だけでは答えられません。それをやりたければ、写真はR2に、撮影日などの情報はD1にと分けます。倉庫と台帳の関係です。
オブジェクトストレージ
R2のような仕組みの正式な呼び名です。ファイルを1つの「かたまり(オブジェクト)」として、名前を付けて預かります。世界的にはAmazonのS3という同種のサービスが有名で、R2はそれと同じ使い方ができるように作られています。ネットの記事に「S3互換」と書いてあったら、この意味です。
迷ったときの判断
- ファイルそのものか? → はい なら R2
- 条件で絞り込みたいか? → はい なら D1
- 名前で1個だけ取り出せれば十分な、短い値か? → はい なら KV
この順番で考えると、だいたい迷いません。そして、この教科書がこれから扱うのは写真という「ファイルそのもの」なので、答えはR2です。
なぜR2が個人に向いているのか
第1章でも触れましたが、ここでもう一度。R2はダウンロードされるときの通信料がかかりません。10GBまでの保管も無料です。
画像を扱うサービスで一番怖いのは、思わぬ拡散で通信料が跳ねることです。R2はその心配がない設計になっています。個人が写真や作品を置く場所として、これはかなり強い性質です。
この章のまとめ
付箋がKV、表がD1、倉庫がR2。この本で使うのは倉庫です。次の章から、実際に自分の倉庫を建てます。
章末チェックリスト
この章は読了です。次の第09章で、自分のR2バケットを作ります。