← 制作記一覧へ

ツールの記録を保存する場所に困って、Cloudflare KV を使ってみた話

公開: 2026-05-19 · #31 / 最終更新: 2026-06-04 Cloudflare個人開発非エンジニア

📌 記事の取り扱いについて:本記事は公開当時の体験・気づきをまとめたものです。現在のツール数・プラン数・対象年齢・記事数・仕様とは異なる場合があります。最新の内容は各ツールページをご確認ください。ツールや外部サービスの仕様・料金は変更されることがあるため、利用前には各公式情報も併せてご確認ください。記載に誤りを見つけられた場合はお問い合わせフォームよりご連絡いただけると助かります。

ツール工房でいくつかツールを作っていると、何度も同じ問題にぶつかりました。

それは、「ちょっとしたデータをどこに保存するか」 です。

たとえば、

  • ○×トラッカーなら、毎日の記録を保存したい
  • 更新リマインダーなら、前回チェックした内容を覚えておきたい
  • 問い合わせフォームなら、送られてきた内容を後から見られるようにしたい
  • 連続でアクセスしてくる怪しい相手は、「最近何回来たか」を覚えておいて弾きたい

最初は、こういう保存の仕組みを作るのは難しそうだと思っていました。

でも、Cloudflare KV というものを使ってみると、個人で作る小さなツールならかなり便利に使えることが分かりました。

ツールを作ると「ちょっと保存したい」が出てくる

普通のホームページは、表示するだけなら保存の仕組みは要りません。

でも、ちょっと動きのあるツールを作ろうとすると、すぐに 「保存したいもの」 が出てきます。

「今日の記録」「前回の状態」「送られてきた内容」など、毎回ゼロからではなく、前回までの内容をどこかに残しておきたい、という場面です。

Cloudflare KV はネット上の小さなメモ帳みたいなもの

Cloudflare KV は、ものすごく簡単に言うと 「ネット上に置ける小さなメモ帳」 のようなものです。

紙のメモ帳と違うのは、

  • 自分が用意した裏側の仕組み(Worker など)を通して、ネット越しに読み書きできる
  • メモには名札(タイトル)を付けて整理できる
  • 名札を指定すれば、いつでも同じメモを引き出せる
  • 保存するときに「賞味期限」を付けられる(一定時間が経つと自動で消える。この賞味期限は最低60秒から指定できます)

というところです。誰でもブラウザから直接覗ける公開メモ帳ではなく、自分が書いたプログラム経由でだけ読み書きする、というイメージが近そうです。

最後の「賞味期限」は、あとで出てくる 連続アクセスの数を数える話 で効いてきます。

使い方1:○×トラッカーの記録保存

最初に KV を使ったのが、○×トラッカー(習慣記録ツール)でした。

このツールでは、「その日に何を記録したか」を保存しておく場所として KV を使いました。

たとえば、今日の記録を保存しておけば、あとから30日分や60日分を読み出して、カレンダーのように表示できます。毎日の記録は、書き込む回数が少なくて、読み出す回数の方が多い使い方です。KV はもともと、こういう「読み出しが多くて、書き込みは少なめ」の用途に向いているらしく、無料枠でも問題なく動いています。

使い方2:更新リマインダーで「前回の結果」を覚えておく

毎週土曜にホテルデータの更新を知らせるリマインダーも作ってあります。

このリマインダーは自動で動いていて、「今週の状況」と「先週の状況」を比べて、変わったところだけメールで送りたい仕組みでした。ところが、自動で動く仕組みは、前回の結果をそのまま覚えておけません。そこで、「先週はどんな内容だったか」を KV に保存しておく 必要がありました。

毎週、リマインダーが動くたびに、

  1. 先週の内容を KV から読み出す
  2. 今週の内容と比べて、差分を計算する
  3. 結果をメールで送る
  4. 今週の内容を KV に上書き保存する

という流れになっています。「前回の結果を覚えておく場所」として、KV はとても都合が良かったです。

使い方3:フォームの送信内容を残す

ツール工房の管理画面では、お問い合わせ・リクエストフォームから送られてきた内容も KV に保存しています。

送信された日時を名札にして、内容を1件ずつ保存しておく形です。こうしておくと、後から「今月もらったフィードバック」を一覧で見たり、必要なものだけ取り出して読み返したりできます。

ただし、フォームの内容には名前やメールアドレスなど、人によっては個人情報が含まれることもあるので、管理画面にはパスワードを掛けて自分しか見られないようにしています。古くなったメモを定期的に消す、保存しておく期間を決めておく、といった配慮も必要だと思っています。

使い方4:怪しい連続アクセスを弾くカウンター

ホテル検索ツールやお問い合わせフォームを公開してしばらく経ったころ、サイトのアクセス記録を眺めていたら、同じ相手から短時間に数十回のアクセスが来ているのを見つけました。

人間が操作しているとは思えない間隔です。ツール自体への影響は小さかったのですが、「このまま放っておくと、こちらが使っている外部 API やデータ取得サービスの無料枠・利用回数を無駄に消費してしまうかもしれない」と不安になりました。

ここでも KV が活躍しました。仕組みはシンプルです。

  1. アクセスが来たら、IP アドレスなどを手がかりに「最近何回来たか」を KV から読む
  2. 一定回数を超えていたら、「ちょっと多すぎますよ」と弾く
  3. そうでなければ通して、回数を1つ増やして KV に書き戻す
  4. このメモには ざっくり1分前後の連続アクセスを見るための短い賞味期限 を付けておく(実装上は余裕を見て120秒ほどにしておくと、一定時間が過ぎたあとにメモが消えて、次のアクセスからまた数え直せます)

IP アドレスは、アクセス元をざっくり見分ける手がかりになります。ただし、同じ IP を複数人で共有している場合や、同じ人でも IP が変わる場合があるため、個人を正確に特定するものではありません。実際に使う場合は、必要最小限の情報だけを短時間だけ保存する・可能なら元の値が分からない形に変換しておく(ハッシュ化) といったプライバシー面への配慮もしておくと安心です。

「賞味期限付きで保存できる」という KV の性質のおかげで、期限切れのメモを自分で消し回る必要がない のが助かりました。

これを入れてから、怪しい連続アクセスはざっくり抑えられるようになりました。

ただ、これはあくまで 個人ツールの簡易的な抑止 という位置づけです。KV は「読んで → 増やして → 書き戻す」を厳密に守るような使い方には向いていないらしく、本格的な「アクセス回数の制限」や、ぴったり N 回で止めたい用途には、Cloudflare の専用機能(Rate Limiting)や、後で出てくる「状態をきっちり管理する仕組み」(Durable Objects)など別の仕組みを検討した方がよさそうです。利用条件や料金はプランによって変わるため、使う前に公式情報を確認するのがよさそうだなと思っています。

無料枠でも個人ツールならかなり使えた

KV には無料で使える枠があります。

  • 1日に読み出せる回数:10万回
  • 1日に書き込める回数:1,000回
  • 1日に削除できる回数:1,000回
  • キー一覧の取得:1日 1,000回
  • 保存できる量:1GB

個人で作っている小さなツールであれば、無料枠でもかなり使えます。

なお、無料枠は1日ごとにリセットされますが、Cloudflare 公式では 00:00 UTC(日本時間で午前9時)基準でリセット と説明されています。日本時間の0時で切り替わるわけではないので、細かく見るときは少し注意が必要です。

ただし、書き込み回数が多くなる使い方では上限に注意が必要です。無料枠を超えるとその種類の操作はエラーになる仕組みらしく、実際に私も、最初の頃は「KV でなんでもできる」と思って頻繁に書き込みをしてしまい、1日1,000回の書き込み上限を超えそうになったことがあります。そのときは、書き込みの頻度を落としたり、1回の書き込みにまとめたりして対応しました。

ただし、何でも保存できるわけではなかった

KV はとても便利ですが、何でもできるわけではありません。たとえば、

  • 「○○の条件にあてはまるものだけ」のような、細かい絞り込み検索は苦手
  • 「読んで → 計算して → 書く」を、絶対に正しい順番で実行する、というような厳密な処理も苦手
  • 大量のデータを書き換えるような使い方も向いていない

書き込んだ内容は、同じ地域からのアクセスではすぐ見えることもありますが、それが保証されているわけではありません。別の地域から読みに行く場合は、反映まで最大で60秒以上かかることもあります。先ほどの連続アクセスを弾くカウンターも、この性質のせいで 「ぴったりN回で止まる」というほど厳密ではありません。アクセスが一気に集中すれば、もっと余分に通ってしまうこともあり得ます。個人ツールの規模ではほぼ気になりませんでしたが、厳密に数えたい用途には向かない、と理解しておいたほうがよさそうです。

「メモ帳のように軽く使う」分にはとても便利、というのが正直な感想です。

次は D1 や R2 も使ってみたい

KV だけでは少し足りないかな、という用途も出てきました。

たとえば、子連れで行ける場所のデータが何千件もあって、その中から条件を絞って検索する、というような使い方です。そういうときは、Cloudflare の別のサービスを使うようです。

  • 条件を絞った検索や集計、一覧表示をしたいなら D1
  • 複数のアクセスが同じ状態を同時に更新するような、チャットや共同編集、厳密なカウンターなど「状態の調整」が必要なら Durable Objects
  • 画像や大きなファイルを保存したいなら R2

という感じで使い分けるようです。ツール工房ではまだ D1 も R2 も使っていませんが、子連れスポットの検索などは、いずれ D1 に移行するかもしれません。

まとめ

「ちょっとしたデータを保存したい」と思ったときに、Cloudflare KV はとても助かりました。

ネット上の小さなメモ帳のように、名札を付けて内容を残しておけて、いつでも読み出せる。賞味期限を付けておけば、自動で消えていく。

個人で作るツールには、これくらいの軽さがちょうど良かったです。「保存する場所をどうするか」は、プログラミングが詳しくない自分にとって最初は難しそうに見えましたが、KV のような仕組みを知ったことで、ツール作りの幅が一気に広がりました。


この記事は、2026年5月時点で Cloudflare KV を使ってみた個人開発の体験談です。Cloudflare の仕様・料金・無料枠は変更される可能性があるため、実際に使う前には公式ドキュメントをご確認ください。


← 他の制作記を見るトップお問い合わせ