アルアカ - Arcadia Academia

Arcadia Academiaは「エンジニアリングを楽しむ」を合言葉に日本のデジタル競争力を高めることをミッションとするテックコミュニティです。

Cloudflare Workersとは?エッジで動くサーバーレスの使い方を初心者向けに解説【ハンズオン】

Featured image of the post

「APIをちょっとだけ動かしたい」「サーバーを立てずに軽い処理を世界中で高速に実行したい」——そんなときに強いのが Cloudflare Workers です。

Workersは、Cloudflareの世界中のネットワーク(エッジ)上でコードを実行できるサーバーレス環境です。サーバーの管理が不要で、リクエストが来たときだけ、訪問者の最寄りの拠点で動きます。

この記事は Cloudflareとは?初心者向けに使い方・設定・料金をわかりやすく解説 の関連記事です。Workersの仕組みから、wranglerで最初のWorkerを作ってデプロイするまでをハンズオンで解説します。


[目次を開く]

Cloudflare Workersとは?

Cloudflare Workersは、サーバーを用意・管理せずに、コードを世界中のエッジで実行できるサーバーレスプラットフォームです。主にJavaScript / TypeScriptで書きます(WebAssemblyも可)。

最大の特徴は、一般的なサーバーレス(AWS Lambdaなど)と違い、V8 isolateという軽量な仕組みで動くため、起動が非常に速く(コールドスタートがほぼ無い)、訪問者の最寄りの拠点で実行されるため低レイテンシだという点です。

サーバーレスとは?

サーバーレスとは、サーバーの調達・運用・スケーリングをクラウドに任せ、開発者はコード(関数)だけを書けばよいという考え方です。アクセスが無ければコストはかからず、急なアクセス増にも自動で追従します。

従来のサーバー Workers(エッジ)
サーバー管理 必要 不要
起動速度 遅いことも 高速(isolate)
実行場所 特定リージョン 訪問者の最寄り
課金 稼働時間 リクエスト数ベース

何に使える?(ユースケース)

  • APIサーバー: 軽量なREST/JSON API、BFF(フロント専用バックエンド)
  • リダイレクト・A/Bテスト・認証: エッジでリクエストを加工
  • 画像・HTTPのプロキシ: 外部APIを隠して中継
  • 定期実行: Cron Triggersでバッチ処理
  • フルスタックアプリ: Honoなどのフレームワークで本格的なアプリも構築可能

料金

個人の学習や小規模な用途なら無料枠で始められます。

プラン 目安
Free 1日あたり10万リクエストまで、リクエストあたりのCPU時間に上限あり
有料(月額) 大量リクエスト・長いCPU時間・各種拡張機能
最新の無料枠・上限は公式ドキュメントで確認してください。

事前に準備するもの

  • Node.js(LTS推奨)と npm
  • Cloudflareアカウント(無料)
  • コマンドラインツール wrangler(Cloudflare公式CLI。以下のスキャフォルドで自動導入されます)

ハンズオン:最初のWorkerを作る

1. プロジェクトを作成する

Cloudflare公式のセットアップツール(C3)でひな形を作ります。

npm create cloudflare@latest my-worker

対話式で「テンプレートの種類」や「言語(TypeScript推奨)」を聞かれるので、「Hello World」系のシンプルなテンプレートを選べばOKです。

2. Hello Worldを確認する

生成されるコードの核心は、fetch ハンドラーだけです。リクエストを受け取ってレスポンスを返します。

export default {
  async fetch(request, env, ctx) {
    return new Response('Hello from Cloudflare Workers!')
  },
}

3. ローカルで動かす

プロジェクトディレクトリで開発サーバーを起動します。

cd my-worker
npx wrangler dev

表示されるローカルURL(例 http://localhost:8787)にアクセスし、Hello from Cloudflare Workers! が返れば成功です。

4. デプロイする

準備ができたら、コマンド1つで世界に公開されます。

npx wrangler deploy

初回はブラウザでCloudflareアカウントの認証(OAuth)が開きます。認証後、https://my-worker.あなたのサブドメイン.workers.dev のURLで公開されます。

設定ファイル wrangler.jsonc

Workerの設定は wrangler.jsonc(または wrangler.toml)で管理します。最低限は次の3つです。

{
  "name": "my-worker",
  "main": "src/index.ts",
  "compatibility_date": "2026-06-01"
}
  • name: Workerの名前(URLに使われる)
  • main: エントリポイントのファイル
  • compatibility_date: ランタイムの振る舞いを固定する日付(互換性維持のため重要)

バインディング:他サービスとつなぐ

Workersの強みは、Cloudflareの他サービスとバインディングで簡単に連携できることです。設定すると、コード内では env 経由でアクセスできます。

バインディング先 用途
KV キーバリュー型の高速ストア(設定・キャッシュ等)
R2 オブジェクトストレージ(画像・ファイル)
D1 SQLiteベースのデータベース
Secrets / 変数 APIキー等の機密値・設定値

機密値(APIキーなど)はコードに直書きせず、次のように登録します。

npx wrangler secret put MY_API_KEY

一歩進んで:CronとHono

  • Cron Triggers: wrangler.jsonc にスケジュールを記述すると、定期実行(バッチ処理)ができます。
  • Hono: Workers上で動く軽量なWebフレームワーク。ルーティングやミドルウェアを簡潔に書け、本格的なAPI構築に人気です。
import { Hono } from 'hono'
const app = new Hono()
app.get('/', (c) => c.text('Hello Hono on Workers!'))
app.get('/api/users/:id', (c) => c.json({ id: c.req.param('id') }))
export default app

よくあるつまずき(FAQ)

Q. wrangler deploy で認証エラーになる

初回はブラウザ認証(OAuth)が必要です。ヘッドレス環境などで開けない場合は、APIトークンを発行して CLOUDFLARE_API_TOKEN 環境変数に設定するとヘッドレスでデプロイできます。

Q. ローカルでは動くのに本番でエラーになる

バインディング(KV/R2/Secrets等)が本番側で未設定な可能性があります。wrangler.jsonc の設定と、本番のSecrets登録を確認しましょう。

Q. Node.jsのライブラリがそのまま使えない

Workersはブラウザに近い実行環境のため、一部のNode.js固有APIはそのまま使えません。compatibility_flags で Node 互換を有効化するか、Workers対応のライブラリを使います。

まとめ

Cloudflare Workersは、サーバーを持たずに、世界中のエッジでコードを高速実行できるサーバーレスプラットフォームです。要点を振り返ります。

  • isolate で起動が速く、訪問者の最寄りで動く
  • npm create cloudflare@latestwrangler devwrangler deploy の3ステップ
  • env 経由のバインディングで KV / R2 / D1 / Secrets と連携
  • CronやHonoで、定期実行・本格的なAPIまで

まずは Hello World をデプロイして、*.workers.dev で動く感覚を体験してみてください。

あわせて読みたい:

フロントエンド開発を学びたいですか?

React・Next.jsなど、モダンなフロントエンド開発をサポートします。

  • Reactの基礎から実践まで学びたい
  • Next.jsでアプリを作りたい
  • TypeScriptを使いこなしたい
まずは30分の無料相談

相談は完全無料・オンラインで気軽に

あなたを爆速で成長させるメンタリングプログラムはこちら

メンタープログラムバナー

学習・開発のお悩みは現役エンジニアに相談

メンタープログラムの詳細を見る

エンジニアの基礎学習ゲーム

プログラミング学習支援

無料相談はこちら