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