Jamstackとは?
jam = JavaScript/APIs/Markupの頭文字
https://jamstack.org/
https://qiita.com/ozaki25/items/4075d03278d1fb51cc37
Jamstack(JavaScript・API・マークアップ)という設計手法が登場し、フロントエンドとバックエンドを切り分けることが容易になりました。これにより、バックエンドが足枷になることなく、フロントエンドを今まで以上に効率よく作ることができます。
どんな事ができるのか?
動的サイト
faasと組み合わせて動的サイトを作成する試みが出てきている。
静的サイト
ISR, SPA, SSR ,SSG等
この辺の単語がわからない方は下記をご覧ください。
静的サイト jamstack参考サイト
https://zenn.dev/unemployed/articles/5ae3040453bc1b
https://tech.012grp.co.jp/entry/2021/03/25/125014
https://scrapbox.io/riku19981027-69787355/CSR,_SSG,_SSR,_ISR%10%E8%BE%BA%E3%82%8A%E3%81%AE%E6%A6%82%E5%BF%B5%E3%82%92%E6%95%B4%E7%90%86%E3%81%99%E3%82%8B
cloudflareのJamstack
- cloudflare pages : CDNにデプロイし静的なコンテンツを返す、所謂jamstack環境
- cloudflare workers sites : workers KVにデプロイしworkersでリクエストを受けてworkers KVから返す。
の2つの選択肢があり。
まず workers sitesを説明します。
cloudflare pagesを説明し。
その後cloudflare pagesと他jamastackを比較します。
cloudflare workers site
cloudflare workers siteサマリー
- workers KVにデプロイしworkersでリクエストを受けてworkers KVから返す。
- pagesよりもworkersに制限がない。(下記は上記公式からの抜粋) → Cloudflare pages functions の実装により問題が無くなりつつある?
- you cannot port custom behavior in your Workers script — such as custom caching logic — over to your Cloudflare Pages.
- Workers Sites template
- Cloudflare pages functionsが実装され上記はあまり問題が無いかもしない
- 他jamstackと非互換率が高い。(移植性が高い)
- workers siteの方が遅い
- Git連携はなし
- workersが常に呼ばれるのでリクエス数等の制限を受ける。
cloudflare workers site まとめ
Cloudflare pages functionsが実装され選ぶメリットが少なくなっている。
cloudflare pages
cloudflare pages サマリー
- CDNにデプロイし静的なコンテンツを返す。
- workers sitesよりもworkersに制限があると公式にあるが、Cloudflare pages functionsが実装され問題がなくなりつつあるかもしれない。
- pagesの方が、ベンダーロックが少なく他jamstackへの移行は楽。
- workers sitesよりこちらの方が速い : (体感できる程ではない?)
- jamastackサービスとして比較されるのは大抵pagesなので、pagesの方で他jamastackと比較します。
- Git連携
- git指定ブランチpull
- build
- deploy
- git指定ブランチpull
- deploy hook
- ビルド時間は遅かったが、初期化速度はFast buildsにより改善された。
- Cloudflare pages functionsが実装され、workers込のローカルテストも可能。
build環境
https://developers.cloudflare.com/pages/platform/build-configuration#language-support-and-tools
2022/06時点のサポート環境
- Node.js : 17.x
その他の環境は上記を確認のこと
cloudflare pages 料金体系
https://pages.cloudflare.com/#pricing
- 無料プラン有
- リクエストと通信量、無制限無料
- plan毎にビルド数制限
Free | Pro | Business | |
---|---|---|---|
料金 | $0 | $20/mo | $200/mo |
build at a time | 1 | 5 | 20 |
builds per month | 500 | 5,000 | 20,000 |
cloudflare workers site とpages比較参考資料
公式のSitesからPagesへの移行説明。
Cloudflare Workers Sitesと、Cloudflare Pagesのパフォーマンス比較
競合サマリー
vercel・netlify
上記二社は静的ホスティング環境(jamstack環境)のサービス提供がメインで、pop数から見ての通り純粋なCDN会社とはバックボーンが異なる。
技術スタック的にjamstack環境では優れてる反面、サーバーサイド側やそれ以外のエッジサービスが劣る面がある。
-
netlify
jamstackを最初に作った会社、無料planは日本にCDNエッジが無い。 -
vercel
Next.jsの開発元が作ったホスティングサービス、Next.jsとの相性がよく、Next.jsでSSR・ISRが作りやすくNext.jsユーザーに人気。
Vercel社のCEOを務める@rauchgによる記事 理念やVercel社の開発姿勢がよく書かれている。
また別ブログでVercel社のvisionが以下として記述されている。
Build the SDK for Web Lower the barrier of entry Focus on the end-user
cloudflare pages
技術スタック的にセキュリティがメインの会社、エッジコンピューティングの1サービスとしてjamstack環境が提供されている。
jamstackとしては後発組、jamstack単体では負けている部分が多々ある。
提供エッジサービスが多く他サービスとの連携に強み。
無料planでも十分使える、基本従量課金はない。がトラフィックが多い場合コスパは最も優れる。
AWS (Amplify) ・GCP (Firebase)
上記二社は大手クラウド会社、マルチクラウド等管理の手間が増えずに済む。
競合比較表 (2022/2/14)
サーバー種類 |
プロトコル | リクエスト・通信 課金 | 組み込みFaas | CDN POP |
ビルド速度 | SSR・ISR |
---|---|---|---|---|---|---|
cloudflare pages | HTTP/3 | 無し | Cloudflare pages functions | 国内:東京・大阪・九州・沖縄 世界:250箇所 |
遅い→改善される | vercelに劣る |
vercel | HTTP/2 | 従量課金 | - | 国内:東京 世界 16箇所 |
速い | best |
netlify | HTTP/2 | 従量課金 | - | 国内無料:無し 国有料:東京 世界無料:7箇所 世界有料:15箇所 |
速い | vercelに劣る |
AWS (Amplify) | HTTP/2 | 従量課金 | - | 国内:東京・大阪 世界:310箇所 |
速い | vercelに劣る |
GCP (Firebase) | HTTP/2 | 従量課金 | - | 国内:東京・大阪 世界:180箇所 |
速い | vercelに劣る |
競合比較サマリー
あくまで個人的な評価
SPA、SSG
SPA、SSGの場合は横一線、どのサービスでも導入は簡易で乗り換えも楽だと思われる。
SSR・ISR 他
next.jsの場合現状vercel一強、他もできるものもあるが難易度が高かったり、制限や機能制限がある事がある。
今後next.jsに各種新機能が追加された場合vercelから真っ先に実装されると思われる。
ビルド時間
cloudflare pages が劣っていたが、Fast buildsが実装され環境構築時間が改善されている。
配信速度
netlifyは無料版の場合、日本にCDNがなく導入候補から外れやすい。 cloudflare pagesとvercelはほぼ同じという記述が多く見られるが、http/3対応と大阪・九州・沖縄にエッジがあるので特に西日本でのレイテンシはcloudflareの方が分がある。
従量課金
cloudflareのみ転送とリクエストは無制限。
組み込みFaas
CloudflareがCloudflare pages functionsをサービスし、ローカル環境のテスト環境もある。
資料
https://estrilda.damonge.com/post/cloudflare-vercel-compare
https://blog.ojisan.io/hosting-battle-2021/
https://zenn.dev/catnose99/scraps/6780379210136f
https://www.serversus.work/topics/tnbyk7u7qm7delrafvda/
https://hackmd.io/@euxn23/r1zO5zzpw