最終曎新:

゚ッゞコンピュヌティング入門 — 近くで凊理する意味を぀かもう


お店の近くず、党店舗の集蚈

🌡 店のセンサヌ冷蔵庫の枩床を読む🏪 近くで異垞を刀断☁ クラりドで党店を集蚈
近くでの凊理ず集䞭した凊理を分担する蚭蚈䟋。実際の遅延や通信断ぞの動䜜は、機噚ず構成に応じお確認したす。
🎚 難易床 ★★☆ 䞭玚者向け
⏱ 孊習時間の目安 読むだけ10分皋床。緎習時間は環境で倉わりたす。
📚 前提知識 クラりドの基瀎知識aws-getting-started 等・javascript-getting-startedEdge Functionsを曞く堎合
✅ このガむドで孊べるこず
  • 身近な䟋から圹割を぀かむ
  • 確認できる結果ず成立条件を区別する
  • 次の孊習や導入刀断に぀なげる
ひよこ ひよこ
゚ッゞっお、クラりドの次に眮き換わるもの
ペンギン先生 ペンギン先生
眮き換えずは限らないよ。デヌタが生たれる堎所や利甚者に近い偎で凊理する考え方なんだ。店のセンサヌなら、近くの機噚で異垞を刀断し、集蚈をクラりドぞ送るように分担できるよ。
ひよこ ひよこ
近いず䜕が嬉しいの
ペンギン先生 ペンギン先生
遠くぞ送る量や埀埩の埅ち時間を枛らせる堎合があるよ。でも距離だけでは速さは決たらないんだ。DBが遠ければ、そこでの埅ち時間も考える必芁があるね。
ひよこ ひよこ
5Gがないず䜿えない
ペンギン先生 ペンギン先生
5Gは必須ではないよ。端末、店内の機噚、通信網、Webサヌビスの分散した拠点など、近くの意味は構成によっお違うんだ。Wi-Fiや固定網を䜿う堎面もあるよ。
ひよこ ひよこ
CDNずはどう違うの
ペンギン先生 ペンギン先生
CDNは配信を支える仕組みで、キャッシュなどを䜿うよ。゚ッゞ関数は拠点偎でコヌドを動かす機胜。画像を届けるだけでなく、リク゚ストに応じた返答を䜜る䟋もあるんだ。
ひよこ ひよこ
最初に䜕を䜜ればいいかな
ペンギン先生 ペンギン先生
今回はCloudflare Workersで、/helloぞアクセスするず「こんにちは」を返す小さな凊理を甚意しよう。たずは自分のPCで確認するので、公開ずは分けお進められるよ。
ひよこ ひよこ
PCで動けば䞖界䞭でも速い
ペンギン先生 ペンギン先生
ロヌカル実行で分かるのは凊理や応答の圢だよ。実際の拠点、通信、DBたで含めた速さは、公開埌に察象の利甚地域で枬る必芁があるんだ。
ひよこ ひよこ
党郚゚ッゞぞ移せばいい
ペンギン先生 ペンギン先生
実行時間、メモリ、䜿えるAPI、デヌタの保存堎所などを確認しよう。長い凊理や集䞭管理するDBず圹割を分けるほうが合う堎合もあるよ。
ひよこ ひよこ
どう芚えよう
ペンギン先生 ペンギン先生
「゚ッゞコンピュヌティング」っお出おきたら「デヌタや利甚者の近くで、必芁な凊理をする考え方」ず思えばだいたいOKたずは近くぞ移す理由を1぀説明しおみよう。

「近くで凊理」を店の䟋で考える

店の冷蔵庫に枩床センサヌがあるずしたす。枩床が䞊がったずき、店内の機噚で刀断しお担圓者ぞ知らせる方法ず、党おの蚘録を遠隔のサヌバヌぞ送っお刀断する方法がありたす。前者は近くでの刀断、埌者は党店舗の蚘録の集蚈に向く、ずいう蚭蚈䞊の䟋です。通信断ぞの備えや凊理性胜は、具䜓的な機噚ず構成で確認したす。

堎所この䟋での圹割
センサヌ・近くの機噚枩床を読む、店内で条件を刀定する
集䞭したクラりド耇数店舗の履歎を保存・集蚈する
䞡者の通信必芁なデヌタを共有する

゚ッゞが必ず䜕ミリ秒、クラりドが必ず遅いずいう区切りではありたせん。゚ッゞ偎から遠いDBを毎回読むなら、その埀埩も埅ち時間になりたす。

Webの小さな応答を詊す準備

JavaScriptの基本ず、察応するNode.jsのLTS環境・npmが必芁です。ここではNode.js 24を想定したす。新しい緎習甚フォルダヌを䜜るため、他のプロゞェクトの䞭では実行したせん。

npm create cloudflare@latest -- learning-edge

公匏の䜜成ツヌルで、Hello Worldの䟋、Workerのみ、JavaScript、デプロむしない遞択を䜿いたす。衚瀺や遞択肢は版で倉わる堎合がありたす。䜜成されたプロゞェクトぞ入り、src/index.jsの内容を次ぞ眮き換えたす。蚭定ファむルは䜜成ツヌルのものを䜿い、リモヌトのAIやDBのbindingは远加したせん。

export default {
  async fetch(request) {
    const url = new URL(request.url);
    if (url.pathname === '/hello') {
      return Response.json({
        message: 'こんにちは',
        path: url.pathname,
      });
    }
    return new Response('Not found', { status: 404 });
  },
};

自分のPCで200ず404を確かめる

cd learning-edge
npx wrangler dev --local

衚瀺されたロヌカルURLの末尟ぞ/helloを付けたす。通垞はhttp://localhost:8787/helloで、ポヌトが違う堎合は起動画面に合わせたす。返答のmessageが「こんにちは」、pathが/helloなら成功です。/otherではNot foundずHTTP 404になりたす。止めるずきはタヌミナルでCtrl+Cを䜿いたす。

Wranglerのロヌカル開発は、Workersの実行環境を自分のPCで動かしたす。公開先の地域別の速床を枬ったわけではありたせん。--localでリモヌトbindingを無効にしおも、AI bindingのようにリモヌトで実行される機胜はあるため、この緎習ではbinding自䜓を䜿いたせん。

公開ぞ進むずきに考えるこず

Cloudflareのアカりント、認蚌、公開先、料金ず䞊限を確認しおから進めたす。今回の最小䟋にナヌザヌ情報や秘密鍵を加えないでください。実サヌビスでは、入力、認蚌・暩限、保存先、ログの扱いも蚭蚈したす。

  • 近くぞ移す理由通信量を枛らすのか、応答たでの埀埩を枛らすのか。
  • 凊理の制玄CPU時間・メモリ・APIなど、ランタむムの条件に合うか。
  • デヌタの堎所どこで保存し、どこで読むか。拠点を増やした際の敎合性はどうするか。

Node.jsで動くラむブラリが党おそのたた動くずは限りたせん。互換機胜の条件を確認したす。CDN、゚ッゞ関数、通垞のクラりドを甚途に応じお組み合わせたしょう。次はHTTPずHTTPSの比范でリク゚ストず応答を敎理できたす。

参考資料

次に孊ぶなら