はじめに
サーバー管理ゼロ、世界中どこからでもミリ秒台の読み出しが可能なグローバル分散型キー・バリュー・ストア API「AwesomeKV」を個人開発しました。本記事では、その特徴、使い方、アーキテクチャ、今後のロードマップなどをご紹介します。
背景とコンセプト
- サーバーレス: インフラ管理不要で、コードだけ書いてデプロイ。
- Key–Value ストア: 簡単な CRUD(生成・取得・更新・削除)操作を HTTP で完結。
- グローバル分散: Cloudflare Workers KV 上に構築し、Edge キャッシュによる低レイテンシを実現。
多くのプロジェクトで、ちょっとした設定やフラグを保存したいだけのためにフルマネージド DB を立てるのはオーバースペック。そこで、最低限の機能に絞った軽量 KV ストアを自分で作ってみました。
主な特徴
-
シンプル RESTful API
-
GET /<key>
… 値を取得(存在しない場合は 404) -
PUT
/POST /<key>
… 値を保存(初回は 201、上書きは 200) -
DELETE /<key>
… キーを削除(200)
-
-
CORS 完全対応
- 標準的な
Access-Control-Allow-*
ヘッダーを全て設定
- 標準的な
-
MIME タイプ自動判別
-
.json
や.png
など拡張子から IANA 登録済みのメディアタイプを自動設定
-
-
グローバル低レイテンシ
- Edge キャッシュを使ったリクエストはミリ秒単位
-
サーバー管理ゼロ
- Cloudflare Workers + KV ネームスペースでフルマネージド
API 仕様・使い方
JavaScript からの利用例
// キーに値を登録(作成/上書き)
await fetch('https://awesomekv.dev/mynamespace/mykey', {
method: 'PUT',
body: 'Hello, AwesomeKV!'
});
// キーの値を取得
const res = await fetch('https://awesomekv.dev/mynamespace/mykey');
if (res.ok) {
console.log(await res.text()); // → "Hello, AwesomeKV!"
} else {
console.error('Key not found:', res.status);
}
// キーを削除
await fetch('https://awesomekv.dev/mynamespace/mykey', { method: 'DELETE' });
Python からの利用例
import requests
# 値を登録
r = requests.put('https://awesomekv.dev/mynamespace/mykey', 'Hello from Python')
print(r.status_code) # 201
# 値を取得
r = requests.get('https://awesomekv.dev/mynamespace/mykey')
if r.status_code == 200:
print(r.text) # → Hello from Python
else:
print('Not found', r.status_code)
# キーを削除
r = requests.delete('https://awesomekv.dev/mynamespace/mykey')
print(r.status_code) # 200
アーキテクチャ
-
Cloudflare Worker
-
worker.js
にて HTTP メソッドとパスを判定し、env.KV.get/put/delete
を呼び出し - CORS ヘッダー、MIME タイプを付与してレスポンスを返却
-
-
Workers KV
- グローバル分散ストレージ
- 読み出しはエッジキャッシュ、書き込みはオリジン
-
デプロイ
- Wrangler を使って数秒で公開
パフォーマンスと制限
- レイテンシ: キャッシュヒットで 5ms 以下
-
KV 制限
- 値サイズ上限 25 MiB
- キー長最大 512 バイト
- 無料枠: 読み込み 100k/日、書き込み 1k/日(有料プランで増量可)
ユースケース
- エッジでの 設定/機能フラグ の保存
- CDN 経由の 静的アセット(画像、JSON)配信
- ユーザーごとの セッション情報・プレファレンス のキャッシュ
ロードマップ
- マルチキー操作(Bulk GET/DELETE)
- 自動 TTL(有効期限)機能
- API 認証(API キー/JWT)
- Web UI ダッシュボード
- メトリクス・分析連携(Workers Analytics)
まとめ
「AwesomeKV」は、Cloudflare Workers KV を最大限に活かした、超シンプルかつスケーラブルな HTTP KV ストアです。
インフラ管理を一切せずに、グローバル分散と低レイテンシを手軽に導入できるため、小規模プロジェクトからエンタープライズまで幅広く活用いただけます。
ぜひお試しください!
- GitHub: https://github.com/GitHub30/AwesomeKV
- サービス: https://awesomekv.dev