✅ 1. サーバーサイド(Node.js)で動く部分
これは以下のような処理です:
getServerSidePropsなどを使った SSR(サーバーサイドレンダリング)app/api/にある API Routesapp/page.tsxのような App Router の Server Components(Nodeで解釈)- ミドルウェアなど
つまり、これらは Node.js ランタイムで実行される処理です。
✅ 2. クライアントサイド(ブラウザ)で動く部分
以下のようなものは ブラウザ上で実行されます:
useState,useEffectなどを使った Client Componentsapp/page.tsxなどの中にuse clientがあるファイル- イベントハンドラ(
onClickなど)
これらは ビルド後にクライアントに配信されて、ブラウザ上で動作します。
🔁 つまりまとめると:
| 処理 | 実行環境 |
|---|---|
getServerSideProps, API Routes, Server Components | Node.js(サーバー) |
use client コンポーネント、イベントハンドラなど | ブラウザ(クライアント) |
📦 本番環境では?
- Vercel などでは、Edge Functions(Nodeの代替)やLambda上で動作するケースもあります。
- 自分でデプロイする場合は Node.js サーバー(例:
next start)が必要です。
Next.js アプリ(next startで起動)を本番環境で安定して稼働させるには、プロセス管理ツールを導入して常駐&自動再起動できる仕組みを整える必要があります。
[1] PM2で自動リスタート・ログ管理・複数インスタンス対応・クラスタリングも可能
[2] systemdで自動起動、systemctlで起動、再起動、停止
[3] Docker
systemdはOSレベルの一元管理ができるので、他のサービス(nginx, mysql, redisなど)と並列に管理したいときにはとても自然で扱いやすい選択肢です。
一方で、PM2はNode.jsに特化しているため、特に次のようなケースで便利です:
.envを読み込んで環境切り替え- Node.jsプロセスがクラッシュしたときの自動復旧
- Web UI やログのモニタリング(
pm2 monit) - 簡易クラスタリング(CPU数に応じた並列起動)
🔧 両方使う構成もあり
例えば:
- 開発やステージング:PM2 で柔軟に管理
- 本番環境(特に非Node専門環境):systemd に登録して他サービスと統一
📘 おまけ:Next.js + PM2 + systemd 連携例(上級)
- PM2でNext.js起動(
pm2 start npm --name next-app -- start) pm2 startup systemdで PM2 自体を systemd 管理に登録pm2 saveで現在のプロセス構成を保存
このように、systemdでPM2を動かすことで、両者のいいとこ取りも可能です。
実運用を考えると VPS上で動かすことも可能ですが、Vercelで動かして楽をした方が良いです。
Vercel(ヴァーセル)は、Next.js公式が開発したホスティングプラットフォームで、Next.jsに特化した使いやすい特徴を多数持っています。以下にポイントを整理して説明します。
✅ Vercelの主な特徴
1. Next.jsとの超高い親和性
- 開発元が同じ(Vercel社がNext.jsも開発)
next.config.jsやApp Router構成など、完全対応- SSR / ISR / SSG / Edge Function すべて自動的に最適化してくれる
2. デプロイが超簡単(Git連携)
- GitHub / GitLab / Bitbucketと連携して、プッシュするだけでデプロイ
- プルリクエストを作ると、自動でプレビューデプロイを作成
例:feature/login-ui ブランチのURLが自動生成 → https://feature-login-ui-yourapp.vercel.app
3. サーバーレス(自動スケーリング)
app/api/やpages/api/のAPIは**サーバーレス関数(Lambda)**として動作- トラフィックが増えても自動スケール
Edge Functionsで超高速レスポンスも可能(海外向けにも強い)
4. CDN自動配信・最適化
- HTML/JS/CSSはグローバルCDNから配信(超高速)
- 画像最適化(
next/image)やキャッシュ制御も自動 - 静的ファイル(
public/)も全世界にキャッシュ
5. ゼロ構成・CI不要
vercelCLIやダッシュボードから操作buildやstartの設定不要- Dockerやサーバー知識がなくてもフロントエンド中心でデプロイ可能
📦 開発者視点でのメリット・デメリット
| 項目 | 内容 |
|---|---|
| ✅ 初期構成 | Git連携+ビルドコマンド設定だけで即デプロイ |
| ✅ 運用コスト | サーバー保守不要。SSLも自動。 |
| ✅ スケーラビリティ | アクセス増でもサーバー落ちない |
| ❌ 柔軟性 | Node.js以外のバックエンド連携は少し工夫が必要 |
| ❌ 日本向け速度 | エッジの拠点が少なく、日本から若干遅いことも |
| ❌ DBなどは別途必要 | MySQLやMongoDBなどは外部サービスが必要(例:PlanetScale, Supabase) |
💰 無料プランと制限
- Hobby(無料)プランでも使えるが、制限あり:
- 最大100GB帯域 / 月
- Serverless Function 実行時間が短め(最大10秒など)
- ビルド時間やストレージも制限あり
→ 本格運用なら Proプラン(月額$20〜)を検討
🔚 まとめ
Vercelは次のようなケースに最適です:
| 目的 | 向いているか |
|---|---|
| Next.jsをすぐ公開したい | ✅ 最適 |
| プレビュー環境を自動化したい | ✅ 便利 |
| SSR/ISR/Edgeを手軽に使いたい | ✅ ベスト |
| フロントエンドだけで完結したい | ✅ 非常に向いている |
| 複雑なNodeバックエンドやDBが必要 | ⚠️ 工夫または外部サービスが必要 |