Cloudflare Workers で構築する超高速 BIN API
Cloudflare Workers で構築する超高速 BIN API
本記事では、Cloudflare Workers を用いて
「JP BIN Lookup」のような
BIN(Bank Identification Number)検索API を
“超高速・低コスト・高可用性” で構築する方法を紹介します。
MVNO事業やEC事業では、
クレジットカードのBIN情報を利用することで
- 決済の不正検知
- 海外発行カードのフィルタリング
- カードブランド/プリペイド判定
- コスト最適化(手数料の理解)
などに活用でき、
高速応答のBIN API は非常に価値が高いです。
Cloudflare Workersを使えば、
これを サーバーレス・グローバル・ほぼ0円 で作れます。
なぜ Cloudflare Workers なのか?
BIN API の特徴は以下です。
-
とにかく高速(100〜200ms では遅い。10〜30ms で返したい) 世界中から叩かれるDBアクセスのたびに遅くなるスケールするとコストが跳ねる
Cloudflare Workers は、
これらの課題に対して 最強クラスの選択肢 です。
✨ Cloudflare Workers のメリット
- グローバル50+リージョンで自動デプロイ
- 99% キャッシュで動くため API が爆速
- K/V や D1 DB を組み合わせてサーバーレス構築
- 月額 ほぼ0円(無料枠が大きい)
Workers は V8 Isolate 上で稼働するため、
「サーバーを起動する」という概念がなく
常に即時レスポンス できるのが最大の強みです。
アーキテクチャ概要
本記事で作る構成はこれ。
[Client] → [Cloudflare Worker] → [KV / D1] → BINデータ返却
↑
Cache Everything
- Worker が即時レスポンス
- BIN データは KV もしくは D1 Database に保存
- キャッシュルールを工夫して超高速化
Step 1:Cloudflare Pages + Workers の準備
今回は API 部分を Workers に、
ドキュメントやフロント(もしあれば)を Pages に置く構成にします。
1. Workers の作成
$ npm create cloudflare@latest
- TypeScript テンプレートがおすすめ
- Wrangler(CLI)が自動的にセットアップされる
Step 2:BIN データを格納する
選択肢は2つあります。
✔️ KV ストア
シンプルな key-value。
BIN(6桁)→ JSON を返す構造ならこれで十分。
例:
BIN: 457173 → {"brand": "visa", "type": "credit", ...}
✔️ D1
SQLite ベースの Cloudflare ネイティブDB。
よりリッチなクエリをしたい場合はこちら。
Step 3:Worker の実装(最小版)
以下は「KV に置いた BIN 情報を返す最小API」です。
export default {
async fetch(request, env) {
const url = new URL(request.url);
const bin = url.pathname.replace("/", "");
if (!/^\d{6,8}$/.test(bin)) {
return new Response(JSON.stringify({ error: "Invalid BIN" }), {
status: 400,
headers: { "Content-Type": "application/json" },
});
}
const result = await env.BIN_KV.get(bin, "json");
if (!result) {
return new Response(JSON.stringify({ error: "Not found" }), {
status: 404,
headers: { "Content-Type": "application/json" },
});
}
return new Response(JSON.stringify(result), {
headers: {
"Content-Type": "application/json",
"Cache-Control": "public, max-age=86400",
},
});
},
};
Step 4:Wrangler でデプロイ
$ wrangler deploy
数秒でグローバル展開完了!
Step 5:Cloudflare のキャッシュ設定
API をさらに高速化するために
- クエリストリング無視
- Cache Everything
- Edge TTL 1日〜7日
などを Page Rules や Worker(fetch & cache API)で実装します。
BIN データは更新頻度が低いため、
キャッシュ戦略こそ性能を決める最重要ポイント です。
応答速度のイメージ
Workers + KV + Edge Cache の組み合わせでは
- 国内:5〜15ms
- アジア圏:10〜25ms
- 欧米:20〜50ms
レベルのレスポンスが期待できます。
料金イメージ
| サービス | 料金 | 備考 |
|---|---|---|
| Workers | 無料枠 10万req/月 | 超過も格安 |
| KV | 1GB/月 0.5ドル | BINデータは数MB |
| D1 | 開発中は無料 | 将来の商用プラン次第 |
| Pages | 無料 | API連携も可能 |
→ BIN API ならほぼ無料で運用できます
まとめ
Cloudflare Workers を使うと、
BIN Lookup API を
- 爆速
- 安定
- 低コスト
- グローバル
に構築できます。
MVNO・EC・フィンテック系サービスでは
不正利用対策としても非常に強力な仕組みなので、
Workers と相性抜群です。
次回予告
次の記事では、
「日本のデビット・プリペイド BIN の構造を徹底解説」
を詳しく解説します。
Discussion