💡 Tips

Cloudflare Workers AI 無料枠でLLM推論をゼロコスト運用する実装手順

結論:Cloudflare Workers AIなら月0円でLLM推論が動く

Cloudflare Workers AI には Free プランでも1日あたり10,000ニューロンユニット(NU) が無料で使えます。小規模な個人開発・プロトタイプ用途なら、クレジットカードを登録するだけで課金ゼロのまま本番レベルのLLM推論が動かせます。

この記事では、アカウント作成からWorkers AIのデプロイ、実際のAPIコールまでを実装コードつきでステップバイステップ解説します。

無料枠の注意点(先に書いておきます)

  • 1日10,000 NUはモデルによって消費量が異なる。Llama系の大きいモデルは1推論で数百〜数千NUを消費する場合があります
  • 処理速度(推論速度)はPaidプランより制限がかかります
  • 最新の枠はCloudflare公式ドキュメントで必ず確認してください

Step 1:Cloudflareアカウントを作成・ログイン

  1. https://dash.cloudflare.com/sign-up でアカウントを作成
  2. メール認証を完了してダッシュボードにログイン
  3. 左メニューの 「Workers & Pages」「Workers AI」 から利用状況を確認できます

無料プランでもWorkers AIは利用可能です。Paidプラン($5/月〜)にするとNUの上限が大幅に増えますが、まず無料枠で試すのがおすすめです。


Step 2:Wranglerのインストールとプロジェクト初期化

Cloudflare Workers の開発CLIである Wrangler を使います。

# Node.js 18以上が必要
npm install -g wrangler

# バージョン確認
wrangler --version

# Cloudflareアカウントにログイン
wrangler login

新規プロジェクトを作成します。

npm create cloudflare@latest my-ai-app
# テンプレートは "Hello World" Worker を選択
cd my-ai-app

Step 3:wrangler.toml にAIバインディングを追加

wrangler.toml に Workers AI のバインディングを追加します。

name = "my-ai-app"
main = "src/index.ts"
compatibility_date = "2024-09-23"

# Workers AI バインディング
[ai]
binding = "AI"

[ai] ブロックを追加するだけでOKです。特別なキーやシークレットは不要です。


Step 4:LLM推論コードを実装する

src/index.ts を以下のように書き換えます。

export interface Env {
  AI: Ai;
}

export default {
  async fetch(request: Request, env: Env): Promise<Response> {
    const url = new URL(request.url);

    // GETパラメータ ?prompt=... でプロンプトを受け取る
    const prompt = url.searchParams.get("prompt") ?? "日本語で自己紹介してください。";

    const response = await env.AI.run(
      "@cf/meta/llama-3.1-8b-instruct", // 無料枠で使えるモデル
      {
        messages: [
          {
            role: "system",
            content: "あなたは親切なAIアシスタントです。日本語で回答してください。",
          },
          {
            role: "user",
            content: prompt,
          },
        ],
        max_tokens: 512,
      }
    );

    return Response.json({
      prompt,
      result: response,
    });
  },
} satisfies ExportedHandler<Env>;

ポイント

項目内容
モデル@cf/meta/llama-3.1-8b-instruct(無料枠対応・日本語可)
max_tokens短くするほどNU消費を抑えられる
レスポンス形式response.response に生成テキストが入る

Step 5:ローカルで動作確認する

wrangler dev

ブラウザや curl で確認します。

curl "http://localhost:8787/?prompt=Cloudflareとは何ですか?"

レスポンス例:

{
  "prompt": "Cloudflareとは何ですか?",
  "result": {
    "response": "Cloudflareはグローバルなエッジネットワークを提供するクラウドセキュリティ・パフォーマンス企業です..."
  }
}

ローカル開発時は wrangler dev がリモートのWorkers AIを呼び出す場合と、モックを使う場合があります。実際の推論結果を確認したい場合は --remote フラグを付けてください。

wrangler dev --remote

Step 6:本番デプロイ

wrangler deploy

デプロイ成功後、以下のようなURLが発行されます。

https://my-ai-app.your-subdomain.workers.dev

このエンドポイントをそのままAPIとして使えます。独自ドメインを当てることも可能です。


無料枠で使えるおすすめモデル一覧

Cloudflareが提供するモデルは随時更新されます。2025年時点で個人開発に便利なモデルを紹介します。

モデル名用途日本語対応
@cf/meta/llama-3.1-8b-instruct汎用チャット・QA
@cf/mistral/mistral-7b-instruct-v0.1軽量テキスト生成
@cf/microsoft/phi-2軽量・高速推論
@cf/stabilityai/stable-diffusion-xl-base-1.0画像生成
@cf/baai/bge-base-en-v1.5テキスト埋め込み(RAG向け)

最新のモデル一覧は Cloudflare Workers AI Models で確認してください。


ストリーミング応答(UX向上)

チャットUIで使う場合はストリーミングが有効です。

const stream = await env.AI.run(
  "@cf/meta/llama-3.1-8b-instruct",
  {
    messages: [{ role: "user", content: prompt }],
    stream: true,
  }
);

// StreamingTextResponse として返す
return new Response(stream, {
  headers: { "Content-Type": "text/event-stream" },
});

フロントエンドからは EventSourcefetch + ReadableStream で受け取れます。


NU(ニューロンユニット)の消費量を把握する

Cloudflareダッシュボードの Workers AI → Analytics でNU消費量をリアルタイムに確認できます。

無料枠を効率的に使うコツ:

  • max_tokens を必要最小限に設定する(最も効果的)
  • 同じ質問が繰り返されるなら KV / Cache でレスポンスをキャッシュする
  • 用途に合わせて小さいモデルを選ぶ(phi-2はllama比で大幅に安い)
📚 おすすめ書籍

ChatGPT/LangChainによるチャットシステム構築[実践]入門

LLMアプリ開発の基礎固めに最適な一冊

Amazonで見る →

Astro / Next.js と組み合わせる場合

Cloudflare Pages + Astro の構成でWorkers AIを呼ぶ場合は、astro.config.mjs でCloudflareアダプタを使います。

npm install @astrojs/cloudflare
// astro.config.mjs
import { defineConfig } from "astro/config";
import cloudflare from "@astrojs/cloudflare";

export default defineConfig({
  output: "server",
  adapter: cloudflare(),
});

APIルート(src/pages/api/chat.ts)から env.AI にアクセスできます。Astro + Cloudflare Pagesはホスティングも無料枠があるため、フルスタック個人開発をゼロコストで実現しやすい組み合わせです。


まとめ

ステップ作業内容
1Cloudflareアカウント作成
2Wranglerインストール・ログイン
3wrangler.toml にAIバインディング追加
4env.AI.run() でLLM呼び出しを実装
5wrangler dev --remote でローカル確認
6wrangler deploy で本番公開

Cloudflare Workers AIは インフラ管理不要・グローバルエッジで低レイテンシ・無料枠あり と個人開発者にとってコスパ最高の選択肢です。まず無料枠でプロトタイプを動かし、トラフィックが増えてきたらPaidプランへ移行する戦略が現実的です。

サーバーのセットアップに時間を取られたくない方には、VPSを使わずにすべてCloudflare上で完結させる構成が特におすすめです。もしVPSが必要な場面が出てきた場合は {{A8:xserverVps}} も選択肢の一つです。

公式ドキュメント:Cloudflare Workers AI | Developers