【Webアプリ開発2026 #14】よくあるWebサイトの構成

WebサイトをCSRやSSRなどをDockerなどで開発し、公開(デプロイ)するときの構成について紹介する(基本 node だけあれば良いので、nvm など、 docker を使わない人もいるらしい)。

MVCはサーバを建てるだけなので省略。

静的ホスティング

ビルドした静的ファイルをストレージに配置。静的なファイルのみを使う場合は、これだけで良い。

  • ReactやVue.js, SvelteでCSRの場合はHTML, CSS, JavaScriptをクライアントのブラウザ上で動かすため、レンダリング用のサーバは不要
    • ブラウザの機能でJavaScriptを動かしてやってもらうため
  • そのため、HTML, CSS, JavaScriptのビルドファイルを置くコンテンツサーバが有ればよい
  • CDN( Content Delivery Network or Content Distribution Network
    • 地理的にユーザーに近い CDN サーバーを用意し、そこにキャッシュを保存することでレスポンスを高速にする
    • 例: AWS Cloudfront, Cloudflare

  • Amazon S3 / Azure Blob Storage
  • GitHub Pages

どのフロントエンドの構築方法で使用できるか

  • SPA(CSR), SSG

メリット

  • 安い
  • サーバ運用しなくてよい(サーバレス)

デメリット

  • SSRができないので、機能が絞られる

サーバを建てる

Image in a image block
Image in a image block
  • サーバを建てるのでサーバの機能が使える。よってSSRが使える
  • 常時起動にしろ、スポットで起動するにしろ、サーバを建てるのでお金はかかる
  • 例: 手前に ALB を置いて OIDC 認証する

  • Amazon ECS
  • Amazon EC2

どのフロントエンドの構築方法で使用できるか

  • CSR, SSR, SSG, ISR

メリット

  • SSRを使用できる

デメリット

  • サーバーがあるのでその分費用が掛かる
  • サーバーを運用する場合、デプロイとライフサイクルを考える必要がある

Cloudfront + ALB + ECS

サーバレスで動かす

常時起動するサーバを持たず、リクエスト単位で処理を実行する構成。

SSRやAPI処理をサーバレスに実現できる。

  • AWS Lambda
  • Cloudflare Workers
  • Azure Functions
  • Google Cloud Functions

どのフロントエンドの構築方法で使用できるか

  • CSR, SSR, SSG, ISR
    • ただし利用するフレームワークや実行基盤に依存する

メリット

  • サーバ運用が不要
  • アクセス量に応じてスケールしやすい
  • リクエスト単位で課金されるため、小規模では安く済むことがある
  • Edge Runtimeを使うとユーザーに近い場所で処理できる

デメリット

  • 実行時間やメモリなどの制約がある
  • デプロイパッケージや一時ストレージに容量制限がある
    • 静的ファイルは S3 や CDN に配置するなどの工夫が必要
  • コールドスタートを考慮する必要がある
  • Node.jsの全機能が使えない場合がある
  • Next.jsなどを動かす場合、OpenNextのような変換レイヤーが必要になることがある
  • PaaSと比べると構成の理解や運用設計が必要

PaaS

ソースを上げることで一連の流れをやってくれるPaaSがある。費用は掛かるが、手っ取り早く、運用が楽。

Image in a image block
Image in a image block

  • AWS Amplify
  • Cloudflare Pages / Cloudflare Workers
  • Vercel
  • Heroku
どのフロントエンドの構築方法で使用できるか
  • プラットフォームに依存
  • CSR, SSR, SSG, ISR
メリット
  • ソースを渡すだけでデプロイできる(CD)
  • 運用コストがかからない
デメリット
  • やりたいことが出来るかはPlatformに依存する
  • 費用が高い