これまでのWebとの比較
Jamstackの構成を比較します。
Jamstackでは、Webサーバーを使わず、CDNやADNでWebアプリ、Webサイトを配信します。
CDNとADN
CDN(Content Delivery Network)はコンテンツをエッジサーバーと言われる世界中に分散されたサーバーへコピーしておき、ユーザーに近いサーバーから配信する仕組みです。ユーザーにとってはレスポンスとダウンロード速度が速くなります。Webアプリケーションの運営側にとってはオリジンサーバーへのアクセス集中を避けられます。主に画像などの静的アセットを配信するのに使われます。
ADN(Application Delivery Network)はWebアプリケーション自体を、CDNと同じように世界中に分散されたエッジサーバーで配信する仕組みです。Webアプリケーションを配信しやすいよう、ロールバック機能や、CIによるデプロイ機能が統合されています。代表的なADNに「Netlify」、「AWS Amplifyコンソール」、「Vercel」などがあります。
これまでのWebの構成と問題
これまでのWebはサーバーサイドのプログラムにてWebページを生成する仕組みです。大量のコンテンツをデータベースにいれ大量のWebページを表示したり、ユーザーが投稿したデータや管理画面から更新したコンテンツを即座にページに反映する仕組みができます。
しかし、サーバーサイドでプログラムを動作させる以上、アクセスが増えるとサーバーサイドの仕組みに負荷がかかります。大規模なサイトやアプリでは多くのアクセスに対応するため、複数台のWebサーバーやアプリケーションサーバー、データベースにロードバランサーといった複雑な構成を必要としていました。構成する要素が増えるほど、キャッシュの管理やデータベースのマイグレーションなど管理すべきことも増えます。 アクセスの多いサイトほど、複雑な構成を維持するためのインフラの費用が高くなります。
また、サーバーサイドでWebページを生成する仕組み上、HTML構造とサーバーサイドプログラムが密接に依存した仕組みになりがちです。そのため、UIの変更が難しくなり、文字をちょっと変えるだけでも、サーバーサイドのテストが必要だったりと、大変な変更となってしまう場合もあります。
つまり、これまでのWebには、大規模になるにつれ複雑なインフラ構成となり、HTML構造とサーバーサイドプログラムの密接さによって保守に手間がかかるという問題がありました。
Webサーバーを使わずに配信する
Jamstackアーキテクチャでは、フロントエンドとサーバーサイドを分離した上、静的に用意できるものは事前に用意し、動的コンテンツはAPIを通じて扱います。高速に配信でき、きちんと分離することによりテキストやUIの更新しやすいWebアプリ、Webサイトができます。
静的に配信できるフロントエンドは、CDNやADNを利用して配信することで容易にスケールできるのでアクセスに強く、Webサーバーを置かないという点ではセキュリティ上も有利です。
Webサーバーから移行が難しい動的コンテンツについては、今まで通りサーバーサイドの言語を使ったWebサーバーを使うこともできます。その場合も、動的コンテンツをUIやHTMLテンプレートからきちんと分離することで、画面の変更に影響されないAPIとして専念できる分、より開発しやすくなります。
ピクセルグリッドが扱うADN
Jamstackを想定して作成したコンテンツを効率よく配信するには、ADNの理解と経験が必要です。 以下のADNはピクセルグリッドで扱った経験・実績があります。
そのほかのADNでも対応できますので、気軽にご相談ください。
Jamstackで解決したいプロジェクトがあれば、
技術選定の前に気軽にお問い合わせよりご相談ください。