原文(投稿日:2020/04/14)へのリンク
JAMstackは、CDNから直接サービスを提供できるサイトを構築するための新しいアーキテクチャである。これは、JavaScript、API、および事前にレンダリングされたMarkupの略である。
JAMstackの背景にあるコアコンセプトは新しいものではない。Static Site Generators(またはSSG)は、10年以上にわたってそれを使用している。 Jekyllのようなソリューションにより、コンテンツクリエーターは、コストのかかるサーバやデータベースを管理する必要性をなくすことができる。代わりに、CDN(コンテンツ配信ネットワーク)を介してコンテンツを静的HTML/CSS/JavaScriptとして直接公開できる。
静的コンテンツの提供では、LAMPスタック(Linux、Apache、MySQL、PHP/Pearl/Python)をベースにすることが多いWordPressなどの既存のCMSソリューションに比べていくつかの重要な改善点がある。Smashing MagazineがJAMstackソリューションに移行したとき、彼らはパフォーマンスが10倍向上したと報告した。
JAMStackの定義には静的サイトが含まれる一方で、サーバレスアーキテクチャを維持するために必要なサードパーティのAPIプロバイダを使用する動的Webアプリケーションもサポートしている。
幸い、FireBase、Netlify、Auth0など、使いやすいサービスを提供する企業がたくさんある。それらのサービスでは、開発者がユーザ認証、データベース、さらにはLambda関数を介してカスタムコードを実行することで、何にでもアクセスできる。
JAMStackアーキテクチャを使用する利点は、一般に4つのフィールドに分けられる。
- パフォーマンスの向上 - 事前にレンダリングされたマークアップとアセットは、CDNから直接提供される。
- コストの削減/簡単なスケーリング - 静的ファイルのホスティングは安価であり、データベースやサーバがないため、ロードバランサーを扱う必要がなく、CDNがスケーリングプロセスを管理できる。
- セキュリティの向上 - ハッキングするサーバやデータベースがないため、多くの一般的な脆弱性が存在しなくなる。
- 開発エクスペリエンスの向上 - サイトコンテンツ全体が静的であるため、バージョン管理(GITなど)を介して管理できる。変更履歴の追跡がより簡単になり、サイトの更新は、サイトの新しいコピーをアップロードしてキャッシュを無効にするのと同じくらい簡単である。
LAMPやMEANのような一般的な開発スタックとは異なり、JAMstackははるかに緩いサービスとライブラリのセットに基づいているため、初期の移行がより複雑になる可能性がある。
開始するのに最適な場所は、公式のJAMstack Webサイト(https://jamstack.org/)である。ここでは、このテーマに関する多くの優れたリソースを提供している。コアコンセプトに慣れたら、https://github.com/automata/awesome-jamstackは一読する価値がある。このリストには、JAMstack Webサイトの作成と管理に推奨されるサードパーティサービスの詳細なリストが記載されている。