Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
10分で完全に理解出来る Cloudflare Workers + HyperDrive / ...
Search
Taiyu Yoshizawa
February 02, 2026
Technology
25
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
10分で完全に理解出来る Cloudflare Workers + HyperDrive / Cloudflare Workers + HyperDrive: You Might Understand It in Just 10 Minutes
社内勉強会向け資料
Taiyu Yoshizawa
February 02, 2026
More Decks by Taiyu Yoshizawa
See All by Taiyu Yoshizawa
The Present and Future of CJK Rendering in MapLibre
nekoya3
0
12
Kartore: A Style Editor and Toolkit for MapLibre
nekoya3
0
18
Kartore: Maplibre のための Style Editor とその Toolkit
nekoya3
0
140
Flagship という素晴らしいもの / This awesome thing called Flagship
nekoya3
0
6
WorkersでCMSを作ってみないか / Wanna build a CMS with Workers?
nekoya3
0
12
Cloudflare Realtime と Workers でつくるサーバーレス WebRTC
nekoya3
1
1.9k
北海道新型コロナウイルスまとめサイトでのいろいろなこと
nekoya3
0
470
Other Decks in Technology
See All in Technology
Tofu-Controller lightning talk @ Containerday 2026
gionn
0
120
価値について
gree_tech
PRO
0
100
USB PDを使ってスマホを労わりたい
raspython3
0
180
脆弱性診断って、何をしているの? 〜弱点を見つけて、会社の改善につなげるまで〜
keeg
0
930
DevelopersIO 2026 知識の地図を描く ─ オントロジーとは何か?
ishikawa_satoru
1
1.7k
Refining Active Record
shugo
0
160
JAWS-UGグッズ職人仕事の流儀
kentapapa
0
120
How to Design Configuration for Rails Applications
willnet
1
830
AIがコードを書く時代に、エンジニアは何で自分の価値を証明するのか / In an era where AI writes code how do engineers prove their value
carta_engineering
3
1.1k
トークン化預金DCJPYの取り組みと活用ユースケース
finengine
0
160
PagerDuty Tech Hub-鳴らすけれど、人は動かない
ezaki
0
180
会社紹介資料 / Sansan Company Profile
sansan33
PRO
31
430k
Featured
See All Featured
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
890
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
750
Leo the Paperboy
mayatellez
10
2.4k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
520
Abbi's Birthday
coloredviolet
4
10k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
550
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
570
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
520
Product Roadmaps are Hard
iamctodd
55
13k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Transcript
Cloudflare Workers + Hyperdrive Taiyu Yoshizawa
Cloudflare Workers + Hyperdrive Taiyu Yoshizawa
10分で完全に理解出来る Cloudflare Workers + Hyperdrive Taiyu Yoshizawa
None
ダ二ング・クルーガー効果 完全に理解した ちょっとわかる 何もわからない
ダ二ング・クルーガー効果 完全に理解した ちょっとわかる 前半 何もわからない
ダ二ング・クルーガー効果 完全に理解した ちょっとわかる 後半 何もわからない
Cloudflare とは DNSやCDN、DDoS防御やWAF、Zero Trustなどネット ワーク関係のサービスを幅広くを提供している会社 Registrarにも2021年からはなっていて、ほぼ原価でドメイ ンを買えるとても珍しいRegistrar 最近だとWebRTCやStreamなどの映像系のサービスにも力 を入れ始めている
Cloudflare Workersとは Cloudflare が持つグローバル ネットワーク(CDN)上で動く エッジコンピューティング インフラ自体の設定も保守も基 本不要で理論上無制限にスケー リングするサーバーレス基盤 無料から利用可能で100万件の
リクエストあたり0.3 USD
Cloudflare Workersとは Cloudflare が持つグローバル ネットワーク(CDN)上で動く エッジコンピューティング インフラ自体の設定も保守も基 本不要で理論上無制限にスケー リングするサーバーレス基盤 無料から利用可能で100万件の
リクエストあたり0.3 USD
Cloudflare Workersとは ! ん ー ら か わ か る
て っ 言 何 Cloudflare が持つグローバル ネットワーク(CDN)上で動く エッジコンピューティング インフラ自体の設定も保守も基 本不要で理論上無制限にスケー リングするサーバーレス基盤 無料から利用可能で100万件の リクエストあたり0.3 USD
CDN とは? Content Delivery Network の略で、コンテンツを効率よ く配信するためのネットワークのこと。 サーバー (Origin) と
クライアントの間に立って、キャッ シュやネットワークの最適化をしてくれる AkamaiやFastly などの会社も同様の仕組みを提供している AWS で言うと CloudFront
CDN とは? Japan America クライアント サーバー (Origin) クライアントとサーバーが地理的に遠いので 遅くなってしまう
CDN とは? Japan Japan America クライアント エッジサーバー (CDN) サーバー (Origin)
CDNが間に立って静的なコンテンツを キャッシュしてくれるので体感早くなる
CDN とは? Japan Japan America エッジサーバー (CDN) サーバー (Origin) IP
Anycast クライアント Cloudflareの場合は、DNS とくっついて提供されている かつTLS 終端を行うReverse Proxy としての役目がある
エッジコンピューティングとは? ユーザーに近いエッジロケーションでデータ処理を行う技 術・コンピューティングリソースのこと さっきのCDNの例で出ていたエッジサーバーがこれに当 たる サーバー(Edge)とクライアントの地理的距離が近いので、パ フォーマンスが向上する Fastly や Deno
も似たようなサービスを提供している AWS だと CloudFront Functions or Lambda@Edge
エッジコンピューティングとは? クライアント エッジサーバー (CDN) サーバー (Origin) 毎回Originサーバーまで到達する必要があり、 パフォーマンスが悪い & Origin
サーバーに負荷が集中する
エッジコンピューティングとは? クライアント エッジサーバー (CDN) サーバー (Origin) エッジまでのネットワークで良くなるのでパフォーマンスが良い & 各ユーザーの近い位置のエッジサーバーで処理するので負荷が分散する
ちなみに
Cloudflare Workersとは Cloudflare が持つグローバル ネットワーク(CDN)上で動く エッジコンピューティング インフラ自体の設定も保守も基 本不要で理論上無制限にスケー リングするサーバーレス基盤 無料から利用可能で100万件の
リクエストあたり0.3 USD
None
None
ない!!!!
None
None
Cloudflare Workersの仕組み Workers の根幹は JavaScript エンジンである V8 にある Isolate という仕組みによって動いている
V8 はブラウザにも Node.js にも使われて居る isolateの仕組みと、外側のSandbox環境によってセキュリ ティ的に守られている 要するに JavaScript が Chromium で使われている JavaScript エンジンの上で動いている
Node.js じゃないの?
Kubernetes上のPodで Node.jsを動かす場合は、 一つの仮想化された占有領域に 一つのユーザーコードを動かす 必要がある コールドスタートな 実際のコードの どの実行時に支払う 実行領域 オーバーヘッド
isolate アプローチでは、一度 作り出した JavaScript Runtime から isolate を何千 個と作り出してユーザーコード を実行できる
コールドスタートな 実際のコードの どの実行時に支払う 実行領域 オーバーヘッド
Cloudflare Workersの仕組み Workers の根幹は JavaScript エンジンである V8 にある Isolate という仕組みによって動いている
V8 はブラウザにも Node.js にも使われて居る isolateの仕組みと、外側のSandbox環境によってセキュリ ティ的に守られている 要するに JavaScript が Chromium で使われている JavaScript エンジンの上で動いている
早い! (仮想化領域を占有しないので価格設定が)安い! (なんかよくわからんけどたぶん)うまい! (コールドスタートがなくEdgeで動くので)
最高のサービス見つけちまったぜ!
! い な は 話 い ま う に な
ん そ最高のサービス見つけちまったぜ!
Cloudflare Workers による制約
Cloudflare Workersの制約 isolateの上で動くため、メモリの内容がそのまま引き継がれ るとは限らない fsは利用できない Node.jsの標準ライブラリは利用できない(最近は解消され つつある) バイナリが必要(node-gyp) なライブラリは使えない wasmは必ずisolateのinitalize時にロードされる必要がある
etc.....
Cloudflare Developer Platform AI Analytics Engine Assets Browser Rendering D1
Durable Objects Hyperdrive Images KV Queues R2 Rate Limiting Service Bindings Tail Workers Vectorize Workflows
Cloudflare Developer Platform AI Analytics Engine Assets Browser Rendering D1
Durable Objects Hyperdrive Images KV Queues R2 Rate Limiting Service Bindings Tail Workers Vectorize Workflows
KV グローバルで低レイテンシな Key-Value データストア 書き込み時は集中型のデータセンターにデータを保存する & エッジにキャッシュを保管する or Purgeする 読み込み時はエッジにキャッシュがあればそれを、無けれ
ば集中型のデータセンターにデータを取得しに行く 各エッジでは結果整合性を持っているが、他のエッジに伝搬 するまでに60秒以上かかることがある AWS だと DynamoDB Global Table みたいなもの
Durable Object グローバルで一意な状態・ストレージを持つ低レイテンシな Workers と Storage を組み合わせたもの ステートフルなサーバーレスアプリケーションをつくるのに利 用することができる。 WebSocket
の Connection を持っておいたり、ユーザー セッションを持っておく場合などに利用できる。 KVと異なり強力な一貫性を持ち、JSのObjectを持つことが 出来る。
D1 グローバルで利用できるSQLite互換のデータベース プライマリロケーションがあり、書き込みはそのロケー ションで行われるが、読み込みは最も近いエッジから行わ れる 書き込みは強い一貫性を持つが、リードレプリカには結果整 合性があり、伝搬に時間がかかることがある トランザクションなど、一部の機能が利用できない
Hyperdrive 既存のデータベースとWorkersの間に入って、コネクション の最適化やクエリのキャッシュを行ってくれるサービス Postgres, MySQL とそのExtension はもちろん、 CockroachDB や Timescaleなどにも対応している
既存のコードそのままで、クエリキャッシュやコネクション の最適化の恩恵を受けられるのが特徴
題 本 く や よう Hyperdrive
Hyperdriveがない場合 300ms Request Handle! TCP Handshake (3-way) Authorization Connection established!
Query Result Query Request
Hyperdriveがない場合 300ms Request Handle! TCP Handshake (3-way) Workerが落ちるたびに これをやる Authorization
Connection established! Query Result Query Request
Hyperdriveがない場合 300ms Request Handle! Serverless じゃなければコネクションプールによって、解決される TCP Handshake (3-way) Authorization
Connection established! Query Result Query Request
HyperdriveがないときのPros / Cons Pros これまで通りとくに悩むこともなく、使うことは出来る 間に何かが挟まる訳ではないので素直な挙動になる Cacheに悩まされることはない
HyperdriveがないときのPros / Cons Cons 毎回コネクションをつくり直すので、オーバーヘッドが大きく なる コネクションをそれぞれのWorker isolateが持とうとするた め、コネクション数が爆発的に増加する DBとWorkerの地理的距離によるネットワークコストが直接
的にレスポンスに影響する クエリはそのまますべてDBに流れる
Hyperdriveがある場合 10ms 300ms TCP Handshake Authorization Request Handle! Query Request
Request Handle! Query Request Query Result Hyperdrive Cache HIt! Hyperdrive Cache Miss Query Request
Hyperdriveがある場合 10ms 300ms TCP Handshake Authorization Request Handle! Query Request
Request Handle! Query Request Query Result Hyperdrive Cache HIt! リクエストがくる前 or 来たタイミングで コネクションプールを用意する Hyperdrive Cache Miss Query Request
Hyperdriveがある場合 10ms 300ms TCP Handshake Authorization クエリキャッシュが存在すれば、それを返す Request Handle! Query
Request Hyperdrive Cache HIt! Request Handle! Query Result Query Request Hyperdrive Cache Miss Query Request
Hyperdriveがある場合 10ms 300ms TCP Handshake Authorization Request Handle! Request Handle!
Query Result Query Request Query Request Hyperdrive Cache HIt! クエリキャッシュが存在しなければ、 DBにリクエストしてそれを返す Hyperdrive Cache Miss Query Request
HyperdriveがあるときのPros / Cons Pros コネクションプールをHyperdriveがマネージドで管理するの で、爆発的に増加しないし、オーバーヘッドも少ない クエリ結果をHyperdriveがキャッシュしていれば、DBヘの 負荷軽減も期待できる & パフォーマンスも向上する
DBとWorkerの地理的距離に大きく左右されることなく、 Cloudflare Global Networkの恩恵を受けながら安定した レスポンス速度を期待できる
Hyperdriveがない時のPros / Cons Cons Workers <-> Hyperdrive 、 Hyperdrive <->
DB の2つ のネットワークリクエストになるため、初回以外のネット ワークレイテンシは若干増加することがある Hyperdriveがキャッシュするため、キャッシュの挙動に悩ま されることがあるかも
HyperdriveとDBの接続方法 DBをPublicに配置して直接アクセス出来るようにする DBをPrivateに配置して、Cloudflare Tunnel を使ってコネ クションをつなぎに行く
HyperdriveとDBの接続方法 DBをPublicに配置して直接アクセス出来るようにする Internet AWS Public Subnet
HyperdriveとDBの接続方法 DBをPrivateに配置して、Cloudflare Tunnel を使ってコネ クションをつなぎに行く AWS Public Subnet Cloudflare Tunnel
database.example.com Private Subnet 172.x.x.x
HyperdriveとDBの接続方法 DBをPrivateに配置して、Cloudflare Tunnel を使ってコネ クションをつなぎに行く AWS Public Subnet Cloudflare Tunnel
database.example.com セキュリティ的にも ちょっとうれしい Private Subnet 172.x.x.x
Hyperdriveを実際に使ってみよう Dashboard 見たり コード見たり
Hyperdriveを実際に使ってみよう 1 // wrangler.jsonc 2 { 3 ... 4 "hyperdrive":
[ 5 { 6 "binding": "HYPERDRIVE_DB", 7 "id": "039de7c44d4b45fab171c85ba68aba38" 8 } 9 ], 10 ... 11 }
Hyperdriveを実際に使ってみよう 1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 import { Hono } from 'hono'; import { drizzle } from 'drizzle-orm/postgres-js'; /* type CloudflareBindings = { HYPERDRIVE_DB: Hyperdrive } */ const app = new Hono<{ Bindings: CloudflareBindings }>(); app.use('*', (c, next) => { const db = drizzle(c.env.HYPERDRIVE_DB.connectionString); c.set('db', db); return next(); });
Hyperdriveを実際に使ってみよう 1 app.get('/account/me', async (c) => { 2 const db
= c.get('db') 3 const userId = "nekoyasan" // 実際にはどこかで送っている 4 if (!db) throw new Error('Database connection not found in context'); 5 6 const userData = await db.select({ 7 id: userDetail.userId, 8 displayName: userDetail.displayName, 9 iconImage: userDetail.iconImage, 10 }) 11 .from(userDetail) 12 .where(eq(userDetail.userId, userId)); 13 14 return c.json({ result: userData[0] }) 15 })
Hyperdriveを実際に使ってみよう 設定さえ出来てしまえば使うのはめちゃめちゃ簡単 Localの場合は WRANGLER_HYPERDRIVE_LOCAL_CONNECTION_ STRING_HYPERDRIVE_DB という環境変数が入っていればwranglerが良い感じにしてく れて、Local 開発でも便利
Cloudflare Workers ぜひ使ってみてね!
None