JAMスタックとは

JAMスタックとは、「Javascript」「API」「Markup」の3つ技術からなる”Webサーバーに依存しないサーバーレスWebアーキテクチャ”のことです。2015年頃にNetliftyの創設者が提唱し始めたアーキテクチャです。

「Javascript」とは

「Javascript」とは、プログラミング言語のひとつで、Webページ上で動的な表現を実現することができます。Javascrpitは、HTML・CSSと組み合わされ、クライアント端末のブラウザ上で実行されます。

「API」とは

「API」とは、Application Programing Interfaceの略で、ソフトウエアコンポーネント同士がデータのやりとりを行う為のインターフェース、中間者です。APIの仕様にそってAPIにアクセスすることで、決まったデータを返してくれます。

「Markup」とは

「Markup」とは、マークアップ言語(Markup language)のことで、ウェブブラウザ上にテキストなどの文書構造や視覚表現などを記述するための形式言語で、代表的なマークアップ言語にHTMLがある。

JAMスタックを使うメリット

JAMスタックは、これまで利用され続けてきたウェブサイトやウェブアプリケーションで潜在的に抱えていた多くの課題を解決する手段として注目を集めていますが、JAMスタックを使うメリットは、ざっくり言うと「高いパフォーマンス」「高いセキュリティ」「スケーラビリティ」と言われています。

高いパフォーマンスを実現する

JAMスタックは、高いパフォーマンスを実現することができるとされています。これまでのWebサーバーでは、クライアント端末上のブラウザからWebサーバーにリクエストが投げられ、リクエストがサーバーに到達した後に、Webサーバーの背後にあるAPI・DBサーバなどからデータを取得し、Webサーバー上のテンプレートやコンポーネントなどを用いて、クライアント端末のブラウザに、レスポンスとして返すといった動きをしています。

一方、JAMスタックでは、サーバーでデータを取得し・・・では、時間もリソースも消費してしまうので、リアルタイムにデータを取得しなければならないもの以外は、事前にHTMLとしてくみ上げておいて(ビルド)、クライアントのブラウザからリクエストが投げられたら配信するだけの状態にしておくといった動きをします。

その為、処理に時間もリソースもかからないので、JAMスタックでは高いパフォ―マンスを実現することが可能になります。

高いセキュリティを実現するJAMスタック

JAMスタックでは、サーバー側のプロセスがAPIのみのやりとりと前提としている為、サイバー攻撃の対象が限定的となり、セキュリティ対策をすることが容易となります。

少ないコストで高いスケーラビリティを実現するJAMスタック

JAMスタックでは、配信する静的ファイルをCDNに配置しておくことにより、コンテンツの冗長化、コンテンツ配信の高速化を簡単に実現することができるとしています。

JAMスタックは万能なのか?

これまでJAMスタックのメリットについてご紹介してきましたが、JAMスタックがすべての課題・問題を解決するWeb世界の救世主であるかと言うと、決してそうではありません。当然、JAMスタックに向いているウェブサイトとそうではない不向きなウェブサイトがあります。

リアルタイム性が求められるWebサイトやユーザー同士のやりとりが頻繁に行われるようなWebサイトの場合、JAMスタックのメリットを感じることはできないでしょう。

  • ニュース速報や災害速報などの速報情報を扱うWebサイト
  • ユーザーからの投稿データを扱うWebサイト など

また、管理・運用などもJAMスタックを採用するにあたって、当然のことですが従来のWebサイトとは異なる管理・運用ルール・手順、セキュリティ対策を検討し、準備しなければなりません。運用管理スタッフの学習コストについても検討する必要があるでしょう。

とは言え、JAMスタックのメリットを考えると、この一年で大きな注目を集めている理由がよくわかります。

まとめ

  • Webサーバーに依存しないサーバーレスなWebアーキテクチャ
  • 静的なファイルを事前にビルト
  • 静的なファイルはCDNを経由して配布

つまりは、どれだけの静的なファイルをCDN経由で配信することができるのかがJAMスタックのメリットを最大化する為の鍵となりそうですね。

今日も一日頑張りましょう!

Have a great day!