CloudflareWorkersでエッジコンピューティングを試す

インフラ・クラウド

Cloudflare Workersは、エッジコンピューティングを最も手軽に試せるサーバーレスプラットフォームです。世界300以上のロケーションでJavaScript/TypeScriptを実行でき、コールドスタートがほぼゼロという特徴があります。本記事では、Cloudflare Workersの始め方を解説します。

Cloudflare Workersとは

CloudflareのCDNネットワーク上で動作するサーバーレスランタイムです。V8 Isolateベースで動くため、Lambda等の従来サーバーレスより起動時間が桁違いに短く、低レイテンシなAPI・SSR・エッジ処理に最適です。

主な特徴

  • 世界中のエッジで実行(低レイテンシ)
  • コールドスタート実質ゼロ
  • 無料枠が10万リクエスト/日
  • HTTP・KV・R2・D1・Queues等とシームレスに統合
  • JS/TS/Rust/WASM対応

始め方

# プロジェクト作成
npm create cloudflare@latest my-worker

# 開発
cd my-worker
npx wrangler dev

# デプロイ
npx wrangler deploy

シンプルなWorker

export default {
  async fetch(request, env, ctx) {
    const url = new URL(request.url);
    if (url.pathname === '/hello') {
      return new Response('Hello from the edge!');
    }
    return new Response('Not Found', { status: 404 });
  },
};

主要なバインディング

  • KV:エッジで読みが速いKVストア
  • R2:S3互換のオブジェクトストレージ(egress無料)
  • D1:SQLiteベースのサーバーレスDB
  • Durable Objects:強整合性が必要なステートフル処理
  • Queues:非同期メッセージ処理

KVを使う例

export default {
  async fetch(req, env) {
    await env.MY_KV.put('count', '1');
    const v = await env.MY_KV.get('count');
    return new Response(v);
  },
};
# wrangler.toml
[[kv_namespaces]]
binding = "MY_KV"
id = "xxxxxxxx"

フレームワーク連携

  • Hono:軽量で型安全。Workersとの相性最高
  • Next.js / Astro / Remix:Cloudflare Pages経由でSSR/エッジ実行
  • itty-router:超軽量ルータ

制限と注意点

  • CPU時間制限(無料10ms / 有料30s)
  • Node.js APIは一部互換(fs等はR2/KV経由に置き換え)
  • 大きなパッケージは依存数に注意

まとめ

Cloudflare Workersは、低コスト・低レイテンシで世界配信できるエッジコンピューティングの代表格です。Hono等のフレームワークと組み合わせれば、わずか数十行で本番運用可能なAPI/SSRが作れます。新規プロジェクトの第一候補に十分なり得る存在です。