結論: ファイル2つで、APIは公開できる

POINTサーバーは1台も借りません。設定ファイルと本体のコード、合わせて2つを置いて、コマンドを1行打つだけで、世界中の拠点から返ってくるAPIになります。

使うのは Cloudflare Workers です。リクエストが来たら自分の書いたコードが動く仕組みで、置き場所は世界中のCloudflareの拠点。無料プランのまま、1日10万リクエストまで使えます。

ターミナルで wrangler deploy を実行した結果。Total Upload 0.26 KiB、Worker Startup Time 4 ms、Deployed cf03 triggers、公開URLと Current Version ID が表示されている
公開はコマンド1行。1秒もかからずにURLが出ます
マスコットのルートンが旗を掲げて案内している

レンタルサーバーが「部屋を借りて機械を置く」なら、Workers は「コードを預けると、世界中の窓口が代わりに応対してくれる」仕組みです。

用意するのは2つのファイルだけ

フォルダの中身はこれだけです。npm install も、雛形の生成ツールも使いません。

ターミナルで dir を実行した結果。src フォルダと wrangler.jsonc の2件だけが並び、wrangler --version は 4.129.0 と表示されている
src フォルダと wrangler.jsonc だけ。wrangler は 4.129.0

設定ファイルは3行です。名前・本体のファイルの場所・compatibility_date(互換性の日付)だけを書きます。

wrangler.jsonc
{
  "name": "cf03",
  "main": "src/index.js",
  "compatibility_date": "2026-09-08"
}

本体のコードは5行。リクエストが来たら、返事を返す。それだけです。

src/index.js
export default {
  async fetch(request) {
    return new Response("Hello World!");
  },
};
ターミナルで type src\index.js を実行し、5行のコードが表示されている
本体は5行。ここに書いたものが、世界中の拠点で動きます

compatibility_date の落とし穴

compatibility_date は、仕様が変わっても、この日の動きのまま動かすための目印です。公式のサンプルはどれも「今日の日付を入れる」と書いてあります。

今日の日付を書くと、古い wrangler では動きません。wrangler は自分が対応している日付までしか受け付けないためです。素直に公式どおり書いた人ほど、ここで止まります。
古いバージョンの wrangler で起動したときのエラー。This Worker requires compatibility date 2026-09-08, but the newest date supported by this server binary is 2026-07-29 と赤く表示されている
古い wrangler(4.114.0)だと、この赤いエラーで止まります

直し方は簡単で、日付ではなく wrangler のほうを新しくします。最新版なら、同じ設定のまま起動します。

ターミナル
npm install -g wrangler@latest
マスコットのルートンが困った顔で汗をかいている

エラーの文にちゃんと答えが書いてあります。「要求している日付」と「対応している日付」が並んでいたら、道具のほうが古い、と読みます。

手元で動かす(wrangler dev)

wrangler dev と打つと、手元で動きます。インストールもビルドもありません。

ターミナル
npx wrangler dev
wrangler dev の実行結果。Ready on http://127.0.0.1:8787 と表示され、[b] open a browser [t] start tunnel などのキー操作の案内が出ている
Ready on http://127.0.0.1:8787。下にキー操作の案内が出ます
ブラウザで localhost:8787 を開き、Hello World! と表示されている
ブラウザで開くと Hello World!。ここまで、インストール作業はゼロです

[t] キーで一時的に外へ出す(と、その危なさ)

wrangler dev を動かしたまま [t] を押すと、手元のサーバーが一時的に外から見られるようになります。アカウントの設定も、ルーターのポート開放も要りません。

つながると、そのURLを知っている人は誰でも到達できます。画面にも警告が出ます。試したらすぐ [t] を押して閉じてください。長く使うなら、名前付きトンネルとアクセス制限を使います。
[t] を押した結果。cloudflared が自動で入り、trycloudflare.com の一時URLとQRコードが表示されている
一時URLとQRコードが出ます。スマホで読めば、すぐ実機で確認できます

JSONを返すAPIにする

返すものを、文字からJSONに変えれば、そのままAPIになります。Response.json() を使うだけです。

src/index.js(JSONを返す版)
export default {
  async fetch(request) {
    const data = { message: "Hello World!", time: new Date().toISOString() };
    return Response.json(data);
  },
};
ターミナルで JSON を返す版のコードを表示し、wrangler dev で起動し直したところ
書き換えたら、もう一度 wrangler dev。手元でJSONが返ります

公開する(wrangler deploy)

公開は1行です。

ターミナル
npx wrangler deploy

アップロードは 0.26 KiB、起動時間は 4ミリ秒。出てきた プロジェクト名.あなたのサブドメイン.workers.dev が、そのまま公開URLです。

公開されたURLをブラウザで開き、message と time の入ったJSONが表示されている
ブラウザで開くと、手元と同じJSONが返ってきます
マスコットのルートンがクリップボードを持って確認している

SSL証明書もドメインの設定もしていません。workers.dev のURLは、最初から https で使えます。

ログを見る・画面で確認する・片付ける

動かした後に見る場所は3つです。

まずログwrangler tail を実行したままブラウザを更新すると、来たリクエストがそのまま流れます。

wrangler tail の実行結果。GET のリクエストが Ok の表示とともに時刻つきで並んでいる
動かないときの原因調べも、まずここを見ます

次にダッシュボードWorkers & Pages の一覧に並び、開くと呼ばれた回数・CPU時間・エラーの数、バージョンの履歴が見られます。

Cloudflare ダッシュボードで公開した Worker の Overview。Invocations 2、CPU Time 294マイクロ秒、Errors 0、Versions の履歴が表示されている
コマンドで作ったものが、そのまま画面側にも出ます

最後に片付け。試したものは wrangler delete で消せます。

wrangler delete を実行し、本当に削除するかの確認に yes と答えて Successfully deleted と表示されている
作るのも消すのも1行。散らかさずに試せます

まとめ

  • Workers は設定ファイルと本体の2つで動く。npm install は要らない
  • compatibility_date は作った日を入れる。古い wrangler だと動かないので、道具のほうを新しくする
  • wrangler dev で手元で確認。[t] の一時公開はURLを知る人は誰でも入れるので、すぐ閉じる
  • 公開は wrangler deploy の1行。ログは wrangler tail
  • 片付けは wrangler delete。使った分は1日10万リクエストの無料枠の中
POINTサーバーを借りる・OSを入れる・証明書を用意する、という手順が丸ごと消えます。「まず動かしてみる」までの距離がとても短いのが Workers の良さです。

よくある質問

Cloudflare Workers は無料で使えますか?

無料プランで 1日10万リクエストまで使えます。1回の実行に使えるCPU時間は10ミリ秒、作れる Worker は100個までです。この記事の内容はすべて無料枠の中で試せます。

npm install は本当に要りませんか?

要りません。外部のライブラリを使わなければ、wrangler.jsoncsrc/index.js の2ファイルだけで動きます。雛形を作るツール(C3)もありますが、使わなくても構いません。

compatibility_date には何を書けばいいですか?

作った日を書きます。これは「その日の仕様で動かす」という指定です。古い wrangler は自分が対応している日付までしか受け付けないため、新しい日付を書いたら wrangler も新しくしてください。

[t] キーの一時公開は、そのまま公開に使えますか?

使わないでください。URLを知っている人は誰でも、あなたのパソコンの開発サーバーに到達できます。稼働の保証もなく、再起動するとURLも変わります。人に見せたらすぐ閉じ、常時公開したいなら wrangler deploy を使ってください。

公開したものを消すには?

npx wrangler delete を実行して、確認に yes と答えるだけです。ダッシュボードの一覧からも消えます。