コンテンツにスキップ

1-3 サーバーレスと Workers

Plan: なし費用: 0円Wrangler 4.126.0公式ドキュメント取得日 2026-08-26
呼び出しベルで現れる出張スタッフ
出張スタッフは必要なときに来て、用件が済むと帰ります。

店の仕事を任せる方法は一つではありません。社員に毎日いてもらう方法も、場所を間借りする方法も、必要なときだけ応援を呼ぶ方法もあります。

いま読んでいるこのサイト(Cloudflare Lab)は、いつ来るか分からないお客さんへ返事をします。でも、そのために一台の機械を見張り続ける運用は選びませんでした。

ここでは、人の働き方に置き換えて三つの違いを見ます。そのあと、Workers のマニュアルと、Cloudflare Lab の対応済みスタンプを確認します。

Learning goals

この節でできるようになること

  • 常駐・間借り・呼び出しの違いを自分の言葉で説明できる
  • Workers が必要なときに働く仕組みを説明できる
  • 同じ大部屋でも仕事場が分かれる理由を説明できる
  • Cloudflare Lab で対応済みスタンプが付く流れを話せる

1. 常駐社員・間借り・出張スタッフ(Server・VM・serverless)

Section titled “1. 常駐社員・間借り・出張スタッフ(Server・VM・serverless)”

本社に社員を常駐させれば、店側で場所や道具を管理します。共同の建物でブースを借りれば、建物は共有しつつ仕事場を分けられます。

正式な仕組みでは、専用の Server(サーバー=常駐する仕事場)、VM や Container(間借りの区画)、serverless(呼び出し型) という実行方法があります。サーバーレスにも、裏側で動く機械はあります。

違うのは、使う側が機械の準備や台数調整を直接担う範囲です。Cloudflare Workers では、Cloudflare が実行場所の運用を担います。

常駐社員の方法では、店側が席や勤務の管理まで考えます。間借りでは建物を共有しても、自分の区画の準備は残ります。呼び出し型では、来客時の仕事を中心に決めます。

常駐社員と間借りと出張スタッフ
仕事の場所を持つ方法は、常駐・間借り・呼び出しで異なります。

上から常駐、間借り、呼び出しの順です。下へ行くほど、利用者は建物そのものより仕事の内容へ集中します。

ここからは正式な名前で確認します。

3つの実行モデル専用サーバーOS と実行環境を管理VM・コンテナ環境 A環境 Bサーバーレスeventeventevent基盤管理と自動スケールは provider

つまり、サーバーレスは機械が無いのではなく、機械の世話をサービス側へ任せる考え方です。

2. 呼ばれた時だけ来る出張スタッフ(Workers)

Section titled “2. 呼ばれた時だけ来る出張スタッフ(Workers)”

受付のベルが鳴ると、出張スタッフがやって来ます。用件を処理して返事を渡したら、その仕事はそこで終わります。

Cloudflare では、この仕組みを Workers と呼びます。Web ページを求める通信などの出来事をきっかけに、用意したコードが動きます。

実物では、お客さんの通信が Cloudflare の窓口へ届くと Worker が呼ばれます。利用者は、どの機械を起動するかを指定しません。

「必要なときだけ」は、データが自動で永久保存される意味ではありません。返事の後にも残したい記録は、目的に合う保存先へ置きます。スタッフの作業と、記録を保管する場所は別です。

ベルで受付に現れる出張スタッフ
用件が届いたときだけスタッフが仕事を始めます。

ベルは、お客さんから用件が届いたことを表します。スタッフは用件に応じて働き、決まった席に座り続けてはいません。

つまり、Workers では「どの機械を持つか」より「来客時に何をするか」を書きます。

3. 大部屋の中の個別ブース(Isolate)

Section titled “3. 大部屋の中の個別ブース(Isolate)”

出張スタッフが来るたびに建物を一棟建てていては、すぐに仕事を始められません。大部屋の中に仕切られたブースを用意すれば、場所を共有しながら仕事を分けられます。

Workers の実行環境では、この仕切られた単位を Isolate(アイソレート) と呼びます。同じ V8 の実行環境を使いながら、コードとメモリを分けます。

実物では、複数の Worker が軽い単位で分けて動きます。これは、隣の Worker と同じ作業机を共有するという意味ではありません。

一つの来客で使ったメモを、次の来客も必ず読めるとは考えません。用件ごとの情報は、その用件の中で扱います。共有したい情報には、後の章で学ぶ保存製品を使います。

大部屋に仕切られた複数の個別ブース
同じ大部屋でも、仕切られた仕事場は互いに分かれています。

外側の大部屋は共有され、内側のブースは分かれています。この作りが、仕事場を素早く用意する考え方につながります。

つまり、共有する部分と分ける部分を決め、軽く動かしています。

4. マニュアルの最小形(fetch handler)

Section titled “4. マニュアルの最小形(fetch handler)”

スタッフには「お客さんが来たら」の章が必要です。用件を受け取り、何を返すかが一つ書かれていれば、最小のマニュアルになります。

Cloudflare では、この入口を fetch handler(お客さんが来たら、の章) と呼びます。受け取った Request に対して Response を返します。

次のコードは「来客があれば Hello World! と返す」マニュアルです。記号を読めなくても大丈夫です。

export default {
async fetch(request, env, ctx) {
return new Response('Hello World!');
},
};

fetch の部分が入口で、new Response が返事です。これだけでも、用件を受けて返事を作る流れが成立します。

request にはお客さんの用件が入ります。env には店が用意した接続先が入り、ctx は後仕事に使えます。この最小例は返事だけを作るため、三つをすべて使ってはいません。

つまり、Worker の最小形は「来客時の処理」と「返す答え」です。

ここで紹介した Workers が、いま読んでいる Cloudflare Lab でどう使われているかを見ます。

Cloudflare Lab のスタッフは、パンフレット棚からページを取り出します。そして返事に「自分が対応した」というスタンプを押します。

受付スタッフがページの本文を毎回書くわけではありません。完成済みのパンフレットを棚から取り、必要な控えを加えます。役割を小さくすると、何を確かめるかも明確になります。

実物では、src/worker/index.ts の Worker が env.ASSETS.fetch(request) を呼びます。返ってきた内容へ x-clf-lab: 1 を加えて、お客さんへ返します。

もし棚に品がなければ、見つからないという返事もそのまま受け取ります。それでも対応済みスタンプは付きます。スタッフを通ったことと、品があったことは別の事実です。

x-clf-lab が「対応済み」スタンプです。ページが見えるだけでなく、この印を見れば自前 Worker を通ったことまで確認できます。

つまり、Cloudflare Lab では Worker が棚のページを受け取り、確認用の印を付けています。

返事の本文と、誰が対応したかの印を分けて観察できます。

この分け方が確認を助けます。

  • サーバーレスにも機械はありますが、その世話は Cloudflare が担います。
  • Workers は、用件が届いたときにマニュアルどおり働きます。
  • Cloudflare Lab は返事へ対応済みの印を付けます。

この節で出てきた言葉を、つながりの順に並べると次のようになります。

図のラベル: 常駐社員 専用サーバー / 間借り VM・コンテナ / 出張スタッフ サーバーレス / Workers 呼ばれた時だけ動く / 個別ブース Isolate / お客さんが来たら fetch handler / 対応済みの印 x-clf-lab

次の節では、多くの Cloudflare 製品を四つの部署へ整理します。

この節のチェック

問 1「サーバーレス」の正しい意味はどれですか?

問 2Workers が「出張スタッフ」にたとえられる理由はどれですか?

問 3Worker が HTTP の用件を受け取る入口の名前はどれですか?

問 4Workers の実行環境で、1 つの大部屋の中を仕切って各コードを分けて動かす単位は何ですか?

問 5fetch handler の引数 request / env / ctx のうち、「店が用意した接続先(引き出し)」に当たるのはどれですか?

最終更新日: