TL

Cloud Service

Cloudflare Workers

コールドスタートをほぼ意識せずに世界中のエッジで即時実行できる、Cloudflare のサーバーレス実行環境。AWS Lambda 相当の役割をエッジ寄りで担う。

基礎パフォーマンス効率コスト最適化運用上の優秀性信頼性
最終更新: 2026-06-28公式ドキュメント ↗
TL;DR要点だけ先に
  • 1.V8 Isolates 方式でコンテナやVMより高速に起動し、世界中のエッジで実行される。
  • 2.KV・D1・R2・Durable Objects などのバインディングでデータ層と直結できる。
  • 3.リクエスト数と実行時間ベースの従量課金で、無料枠も用意されている。

解決する課題

オリジンサーバーを常時稼働させる負担や、リージョンごとの配置・スケーリング設計の手間を避けつつ、ユーザーに近い場所で低遅延にコードを実行したい、というニーズに応えます。

  • サーバーのプロビジョニングや常時起動をせずにコードを動かしたい
  • ユーザーの居場所によらず低レイテンシでリクエストを処理したい
  • 急なアクセス急増にも自動でスケールしてほしい
  • リクエストの書き換え・認証・A/Bテストなどを既存オリジンの前段で軽量に挟みたい
  • サーバーレスの実行環境とKVS/オブジェクトストレージ/DBを疎結合に組み合わせたい

主要概念と用語

  • Worker: 実行単位となるスクリプト(JavaScript / TypeScript、または WebAssembly 経由で各種言語)。リクエストイベントに応答する形で動作する
  • V8 Isolate: Workers の実行基盤。ブラウザのタブのように軽量な分離単位で、コンテナや仮想マシンに比べて起動が非常に速い
  • ルート(Route)/ カスタムドメイン: Worker をどの URL パターンで起動させるかの紐付け設定
  • バインディング(Binding): Worker のコードから KV・D1・R2・Durable Objects・Queues・AI などの他サービスへ、環境変数のような形でアクセスするための仕組み
  • wrangler: Workers のビルド・ローカル開発・デプロイを行う公式 CLI
  • Cron Triggers: 一定間隔で Worker をスケジュール実行する仕組み
  • Service Bindings: Worker から別の Worker をネットワークを経由せず直接呼び出す仕組み
  • Durable Objects: Workers から利用できる、状態を1か所に集約して一貫性を保つコンパニオン機構(強整合が必要な処理向け)

仕様・制限・クォータ

  • CPU 実行時間には上限があり、無料プランと有料プランで許容される時間が異なる(実行時間は「壁時計時間」ではなく「CPU 時間」で計測される点に注意)
  • リクエスト本文やレスポンスサイズ、サブリクエスト(Worker から発行する fetch)の回数にも上限があり、プランによって差がある
  • 1つの Worker スクリプトのサイズにも上限がある
  • 環境変数・バインディングの数、KV/D1 などの容量やスループットは、それぞれの連携サービス側の制限にも従う
  • 具体的な数値は変更されることがあるため、最新の上限は公式ドキュメントで都度確認するのが安全
CPU時間とウォールクロックの違い

Workers の実行時間制限は、外部リクエストの待ち時間を含まない「CPU使用時間」を基準にすることが多いです。外部APIの応答待ちが長くても、それだけでは上限に到達しにくい設計になっています。ただし処理内容やプランによって扱いが異なるため、想定と違う挙動をしたら制限の種類を確認してください。

内部の仕組み

Workers は仮想マシンやコンテナではなく、V8 Isolate という軽量な分離単位でコードを実行します。ブラウザが多数のタブを1プロセスで安全に分離するのと同じ技術を応用しているため、新しい Isolate の起動はミリ秒単位で完了し、いわゆるコールドスタートの影響をほとんど受けません。

  • リクエストは利用者に近いエッジのデータセンターで受け付けられ、そこで Worker のコードが実行される
  • 同じスクリプトの Isolate は必要に応じて多数同時に立ち上がり、水平方向に自動でスケールする
  • バインディングを介して KV・D1・R2・Durable Objects・Queues などへアクセスすることで、状態やデータの永続化は専用サービス側に委ねる設計になっている
  • Service Bindings を使うと、複数の Worker 間の呼び出しをインターネット経由せず内部的に完結できる
ステートレス前提の設計

Worker 自体はリクエストのたびに使い捨てられる前提のステートレスな実行環境です。処理の間で状態を持ち回りたい場合は、グローバル変数に頼らず KV や D1、あるいは強整合性が必要なら Durable Objects を使うのが基本です。

設計パターン / ベストプラクティス

  • 状態は Worker 内に持たず、KV(結果整合の読み取り最適化)D1(SQLベースの構造化データ)R2(オブジェクトストレージ)、**Durable Objects(強整合が必要な調整処理)**など用途に応じたサービスに委ねる
  • オリジンの前段に置いて、認証チェック・ヘッダー書き換え・キャッシュ制御・A/Bテストなどの軽量なエッジロジックを担わせる
  • 重い処理や長時間ジョブは Worker に抱え込ませず、Queues で非同期化し後段で処理する
  • 秘密情報はコードや環境変数に直書きせず、Secrets の仕組みで管理する
  • 依存や初期化処理を軽くし、スクリプトサイズを抑えることでさらに実行効率を高める
  • 複数の Worker にまたがる処理は Service Bindings で疎結合につなぐ

運用・監視

  • ログや実行結果は Cloudflare のダッシュボードや wrangler tail によるリアルタイムログで確認できる
  • 標準の可観測性機能に加え、外部の監視基盤と連携してメトリクスやログを集約することもできる
  • エラー率・実行時間・リクエスト数などの推移を継続的に確認し、しきい値超過やスローダウンの兆候を早期に検知する
  • デプロイはバージョン管理されており、問題が起きた場合は前のバージョンへ切り戻せる

コスト

リクエスト数と実行時間(CPU時間ベース)に応じた従量課金が基本で、一定の無料枠が用意されています。バインディングで利用する KV・D1・R2 などは、それぞれ別立てで課金される点に注意してください。

課金要素内容ポイント
リクエスト数Worker が処理したリクエスト件数に対する課金無料枠を超えた分が従量課金の対象
CPU時間実行に使ったCPU時間に対する課金外部応答待ちの時間は含まれにくい
連携サービスKV/D1/R2/Durable Objects などの利用量Workers本体とは別に、各サービスの料金体系に従う
無料枠一定のリクエスト数・CPU時間が毎月無料小規模な検証や個人利用はほぼ無料で収まることも

セキュリティ

  • 秘密情報は Secrets の仕組みで管理し、コードやリポジトリに直書きしない
  • バインディングで接続する KV・D1・R2 などへのアクセス範囲は、それぞれの権限設定で必要最小限に絞る
  • オリジンへの到達経路を Worker 経由に限定し、直接アクセスを避けたい場合は WAF やアクセス制御と組み合わせる
  • 入力値の検証やレート制御をエッジ側で行うことで、オリジンに届く前に不正なリクエストを弾ける
  • Cron Triggers やキュー連携など自動実行の経路についても、実行権限とアクセス範囲を最小限に保つ
アンチパターン

APIキーやトークンを Worker のコード内や環境変数にそのまま書き込むのは避けてください。Secrets を使えば、値を暗号化した状態で保持し、コードからは参照のみで扱えます。

関連サービス・比較

観点Cloudflare WorkersAWS Lambda@Edge / Lambda
位置づけエッジ実行に特化したサーバーレスリージョン中心のサーバーレス(Edge版もあり)
実行基盤V8 Isolate(軽量分離)コンテナベースの実行環境
起動の速さコールドスタートの影響が小さいコンテナ起動分のコールドスタートが発生しやすい
データ連携KV/D1/R2/Durable Objects などのバインディングDynamoDB/S3などをSDK経由で利用
対応言語JavaScript/TypeScript中心、WebAssembly経由で拡張多数の言語ランタイムを公式サポート
課金の軸リクエスト数 + CPU時間リクエスト数 + 実行時間(メモリ比例)

ハンズオン / CLI例

Workers の作成・開発・デプロイは、公式 CLI である wrangler で行います。

# プロジェクトを新規作成(対話形式でテンプレートを選択)
npx wrangler init my-worker

# ローカルでの開発サーバーを起動し、動作を確認
npx wrangler dev

# リアルタイムログを表示して本番の挙動を確認
npx wrangler tail

# 本番環境へデプロイ
npx wrangler deploy

# シークレットを登録(値は対話プロンプトで入力)
npx wrangler secret put API_KEY

Cloudflare Service

Cloudflare Workersを実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

コンピューティング

比較で見る軸

クラウド: Cloudflare / カテゴリ: コンピューティング / 難易度: basic

導入後に効く点

KV・D1・R2・Durable Objects などのバインディングでデータ層と直結できる。

先に潰すリスク

サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。

数字・仕様の読み方
クラウド
Cloudflare
カテゴリ
コンピューティング
難易度
basic
関連資格
設計柱
performance / cost / operational / reliability

判断チェックリスト

  • 自社の用途が「コンピューティング / performance」に近いか確認する。
  • 強みである「V8 Isolates 方式でコンテナやVMより高速に起動し、世界中のエッジで実行される。」が本当に評価軸になるか確認する。
  • 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

コンピューティングperformancecostoperationalreliability