おい、また新しいserverlessプラットフォームかよ。正直うんざりしてるだろ?俺も最初はそう思った。「どうせまたベンダーロックインで金取られるだけだろ」って。でもVercel Edge Functionsを数ヶ月本番で回した結果、これはマジで違うと感じてる。
エッジで実行する意味
まず基本的な話から。従来のserverless functionsは特定のregionのdata centerで実行される。日本のユーザーがアクセスしても、functionがUS-East-1で動いてたら、network latencyで数百ミリ秒は確実に遅くなる。これ、リアルタイム性が求められるapplicationでは致命的だよな。
Vercel Edge Functionsは違う。Cloudflareのedge networkを活用して、東京、大阪、シンガポールなど、ユーザーに最も近いlocationでcodeが実行される。結果として、cold startがクソ遅かったのが、まあまあ速くなった。数字は忘れたけど体感で全然違う。
このmulti-layer approachでの地理的に分散した処理により、latencyを大幅に削減できる。
2025年3月の重要なアップデート
3月の頭あたりから、Vercel Edge Functionsに新しい実行時間制限が導入された。また制約増えやがって:
- 最大実行時間: 300秒(5分)
- Streaming開始制限: 25秒以内にresponseを開始する必要がある
waitUntil()
サポート: responseを返した後もbackground processを継続可能
これまでのedge functionsは実行時間に明確な制限がなく、system resourcesに依存した不安定な動作をしていた。この変更により、予測可能で一貫したperformanceが保証される。
Fluid Computeとかいう新しいやつ
Fluid Computeっていう機能が出た。まあ、マーケティング用語っぽいけど、実際はちょっと違う:
従来のserverless model:
- 1つのfunction instance = 1つのrequest
- Cold startで毎回new containerを起動
- Resourceの無駄遣いが多い
Fluid Computeのアプローチ:
- 複数のrequestが同じfunction instanceを共有
- Optimized concurrencyでI/O-bound taskを並行処理
- Bytecode cachingとかでcold start時間を削減
特にAI applicationでは効果絶大だ。Vector database queries、external API calls、embedding generationなど、I/O waitが発生するtaskが多いからな。
なぜ日本の開発者にとって重要なのか
日本のtech sceneで働いてると、latencyの問題は特に深刻だ。多くのglobal servicesは米国中心に設計されてて、Asia-Pacificはafter thoughtとして扱われることが多い。
でもVercel Edge Functionsなら:
- Asia-Pacific regionsでの確実なedge execution
- 日本のユーザーに対してsub-10ms latencyを実現
- Multi-region failoverで可用性も確保
実際のベンチマークを見ると、edge functionsは東京regionでまあまあ速い。従来のlambdaがクソ遅くて、edge functionsだと体感で全然違う。俺の場合、個人的なSaaS appを移行したら、めちゃくちゃ改善した。TTFBが2秒台から1秒以下になって、「サイト重い」クレームが激減した。移行作業は土日つぶして死んだけど、月曜日にはユーザーから「急にサイト速くなった」って感謝メールが来て、まあ報われた感があった。
現実的な制約も理解しておこう
もちろん、万能じゃない。Edge runtimeには制約がある:
- Node.js APIの制限: File systemやchild processは使えない
- Cold start optimization: 最初のrequestはまだcacheされてない
- Memory制限: 128MBまで(traditional lambdaは最大10GB)
でも、これらの制約を理解した上で適切に使えば、user experienceを劇的に改善できる強力なtoolだ。特にJAMstackアプリやAPI処理、リアルタイムデータ処理、認証周りで本領発揮する。
とりあえずコード見た方が早いな。次のvideoでURL shortener app作ってる。Edge Functionsの実装からデプロイまでやってるから参考になる。