定義
Jamstack(JavaScript、APIs and Markupの略)は、ビルドステップによってサイトを事前に静的なHTML、CSS、JavaScriptへとコンパイルし、その出力をグローバルCDNから配信し、動的なロジックは長時間稼働するオリジンサーバーではなくサーバーレス関数やサードパーティのAPIに委ねるというウェブアーキテクチャパターンです。ページが事前に構築されているため、ほとんどのリクエストはデータベースやアプリケーションサーバーに触れることがありません。CDNのエッジノードは通常50ミリ秒未満でHTMLを返し、侵害されうるオリジンプロセスも存在しません。これにより、ページ読み込みの高速化、規模拡大時のホスティングコストの低減、そしてWordPressやLAMPのような従来型のサーバーレンダリング方式のスタックと比べて攻撃対象領域の縮小が実現します。ただし、サイトが数千ページを超えて成長するとビルドが遅くなり、チームには実際の学習コストが発生します。Netlifyが2015年にこの用語を生み出しました。現在では、マーケティングサイト、ドキュメント、そしてNext.js、Astro、SvelteKit、Nuxtといったフロントエンドフレームワークのデフォルトアーキテクチャとなっており、Vercel、Netlify、Cloudflare Pagesなどのプラットフォーム上でホスティングされています。
利用方法
Jamstackのビルドステップはデプロイ時(またはISRによるオンデマンド時)に実行され、CDNが直接配信する静的なHTML、CSS、JavaScriptを生成します。動的な機能(フォーム処理、検索、認証、決済)は、クライアントから呼び出されるサーバーレス関数やサードパーティのAPIによって処理されます。
重要な理由
ほとんどのマーケティングサイト、ドキュメントサイト、コンテンツサイトにとって、Jamstackは従来型の動的ホスティングよりも優れたCore Web Vitals、規模拡大時の低いホスティングコスト、そして高いセキュリティをもたらします。その代償として、ビルドが複雑になり、WordPressやLAMPに慣れたチームには学習コストが発生します。