120
80

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Vercel完全ガイド🔥 初心者でも簡単にできるWebサイト高速デプロイ!

120
Last updated at Posted at 2025-02-15

こんにちは、@YushiYamamoto です!
JapanLifeStartの開発・運営を担当しながら、React.js・Next.js専門のフリーランスエンジニアとしても活動しています❗️

今回は、フロントエンド開発のデファクトスタンダードとなりつつある Vercel を使って、最新の Next.js アプリケーションを「迷わず・速く・安全に」デプロイする方法を解説します。

2026年現在、Next.js は App Router が主流となっています。

この記事では、App Router に対応した API の作り方(Route Handlers)や、実務で推奨される Git 連携フローまで、最新のベストプラクティスを盛り込んで紹介します。

Vercel Image


1. Vercel とは? 🤔

Vercel は、Next.js の開発元が提供する「フロントエンドのためのクラウドプラットフォーム」です。

  • Git Push で本番公開
    GitHub などにコードをプッシュするだけで、自動的にビルド・デプロイが完了します。
  • プレビュー環境の自動生成 (Preview Deployment)
    プルリクエストを作成したり、本番以外のブランチに変更を加えるたびに「その修正専用の確認用URL」が自動発行されます。レビュー効率が劇的に向上します。
  • Next.js に完全最適化
    画像最適化、ISR、エッジキャッシュなどが、複雑な設定なしでデフォルトで有効になりやすく、開発体験が非常に高いのが特徴です。

2. プロジェクトの作成とデプロイ 🛠️

ここでは、現在の標準である Next.js (App Router) を使用してプロジェクトを作成し、推奨される GitHub 連携 でデプロイする流れを紹介します。

2.1. Next.js プロジェクトの作成

ターミナルで以下のコマンドを実行します。

npx create-next-app@latest my-vercel-app
cd my-vercel-app
npm run dev

ブラウザで http://localhost:3000 にアクセスし、Next.js の初期画面が表示されれば成功です。

2.2. GitHub リポジトリへプッシュ

作成したプロジェクトを GitHub のリポジトリにプッシュしておきます。
(Vercel は GitLab や Bitbucket にも対応しています)

2.3. Vercel と連携してデプロイ(推奨)

  1. Vercel 公式サイト でアカウント作成・ログイン。
  2. ダッシュボードの "Add New..." から "Project" を選択。
  3. "Import Git Repository" で先ほどプッシュしたリポジトリを選択。
  4. 設定画面が表示されますが、Next.js であれば自動認識されるため、そのまま "Deploy" をクリック!

これだけで、数分後には全世界に公開される URL が発行されます。🎉
以降は、GitHub の main ブランチに変更をプッシュするだけで、自動的に本番環境が更新されます。


3. API (Route Handlers) の実装例 📡

Next.js App Router では、API を Route Handlers という仕組みで実装します(従来の pages/api とは書き方が異なります)。

Route Handlers は app ディレクトリ配下に route.ts(または route.js)を置いて定義し、Web 標準の Request / Response API を使用します。

3.1. Route Handler のコード例

プロジェクト内の app/api/hello/route.ts にファイルを作成します。

// app/api/hello/route.ts
import { NextResponse } from 'next/server';

export async function GET() {
  return NextResponse.json({ 
    message: 'Hello from Vercel App Router! 🌐',
    timestamp: new Date().toISOString()
  });
}

このコードは、/api/hello への GET リクエストに対し、JSON を返すシンプルな API です。

キャッシュ挙動のバージョン差に注意:
Next.js 15 以降、GET Route Handler はデフォルトでキャッシュされず、リクエストごとに実行されます(上記の timestamp も毎回更新されます)。一方 Next.js 14 以前は GET がデフォルトで静的キャッシュされ、timestamp がビルド時刻で固定されて見える落とし穴がありました。
挙動を明示したいときは、ファイル先頭で宣言できます。

  • 常に最新を返す:export const dynamic = 'force-dynamic'
  • あえてキャッシュ:export const dynamic = 'force-static'
  • 一定間隔で再生成:export const revalidate = 60(秒)

3.2. 動作確認

  1. ローカル開発サーバーを起動中であれば、http://localhost:3000/api/hello にアクセス。
  2. JSON が表示されれば成功です。
  3. GitHub にプッシュすれば、Vercel の Preview / Production 環境にも即座に反映されます。

4. デプロイフローの図解 🎨

Vercel を利用したモダンな開発フローは以下のようになります。

開発者がコードを書く(Pushする)だけで、裏側で CI/CD パイプラインが動き、ユーザーには高速なエッジネットワーク経由でコンテンツが届きます。


5. Vercel CLI の活用(検証用)

実務でのデプロイは Git 連携が基本ですが、手元の検証には Vercel CLI も便利です。

# インストール
npm install -g vercel

# ログイン
vercel login

# Preview デプロイ(確認用URLの発行)
# ※ vercel deploy と同義
vercel

# Production デプロイ(本番公開)
# ※ vercel deploy --prod と同義
vercel --prod

コマンドを実行すると、標準出力に Deployment URL が表示され、開発中のコードを一時的な URL で即座に確認できます。


6. まとめ

Vercel × Next.js (App Router) の組み合わせは、2026年の Web 開発において「最も開発者体験が良い」選択肢の一つです。

  • Git 連携による自動デプロイ で運用コストをゼロに。
  • Route Handlers でバックエンド処理も手軽に実装。
  • Preview 環境 でレビュー品質を向上。

インフラ構築に時間をかけず、サービスの本質的な価値づくりに集中しましょう!
Happy Coding! 😄


よくある質問

VercelのHobbyプラン(無料枠)は商用利用できる?

Vercelの定義する「商用」は、そのプロジェクトに関わる誰か(自分自身に加え、有償の従業員や業務委託先も含む)が金銭的利益を得る場合を広く指します。決済導線や広告の有無だけでなく、受託案件の検証や将来の収益化を見込んだMVPなども対象になり得るため、無償の個人学習目的以外は基本的にHobby対象外と考えておくのが安全です。

判断に迷う場合は自己判断せず、Vercel公式のPricingページや利用規約、あるいはVercelサポートに直接確認することをおすすめします。料金体系や線引きはVercel側の方針変更が入りやすい部分でもあります。

ローカルでは動くのにVercelでビルドが失敗するのはなぜ?

主な原因は次の3つです。(1) macOS/Windows特有の、大文字小文字を区別しないファイルシステムでのimportパスの大文字小文字ミス、(2) .env.local には定義したがVercel側のプロジェクト設定には登録していない環境変数、(3) ローカルと異なるNode.jsのバージョン。

まずはVercelのビルドログでエラーメッセージを確認し、上記3つの観点(ファイルパスの大文字小文字/環境変数の有無/Node.jsバージョン)で切り分けると原因にたどり着きやすくなります。Node.jsのバージョンはpackage.jsonenginesフィールドか、プロジェクト設定の「Node.js Version」で指定・確認できます。

環境変数(.env.local)を設定したのに本番やPreviewに反映されないのはなぜ?

.env.localはローカル開発専用のファイルで、Vercelには自動でアップロードされないためです。本番(Production)やPreview環境で使う環境変数は、Vercelのプロジェクト設定(Settings → Environment Variables)で環境ごとに個別に登録する必要があります。

登録時にProduction/Preview/Developmentのどの環境に適用するかを選べるので、意図した環境にチェックが入っているか確認してください。また、環境変数を追加・変更した後は再デプロイしないと反映されない点にも注意が必要です。

Next.js 15以降でRoute HandlerのGETがキャッシュされないのはなぜ?

Next.js 14以前はGET Route Handlerが既定でキャッシュされる仕様でしたが、Next.js 15以降は既定で動的(非キャッシュ)扱いに変更されたためです。

明示的にキャッシュ・再検証したい場合は、ルートファイル内でexport const dynamic = 'force-static'と書けば常にキャッシュ、export const revalidate = 60のように書けば指定秒数ごとに再検証する挙動にできます。Next.jsのキャッシュ戦略は今後のバージョンでも変更される可能性があるため、実装時は必ずNext.js公式ドキュメントの最新のCachingページで挙動を確認してください。

独自ドメインをVercelプロジェクトに設定するにはどうすればいい?

以下の手順で設定します。

  1. Vercelのプロジェクト画面で「Settings → Domains」を開く
  2. 独自ドメインを入力して追加する
  3. 画面の案内に従って、DNS管理画面側にレコード(Aレコード・CNAME、またはVercelのネームサーバーへの委任のいずれか)を設定する
  4. DNSの反映(数分〜数時間程度)を待つと、Vercel側で自動的に検証が完了する

反映されない場合は、設定したレコードの種類やTTLに誤りがないかを確認してください。ドメインを他社レジストラ(お名前.com、Cloudflareなど)で管理している場合は、そのレジストラ側の管理画面で設定します。


次に読む

デプロイまで一通り動かせたら、次は実際に動いているAI自動化の例を覗いてみるのもおすすめです。問い合わせ対応の削減時間を自動算出する無料のAI診断フォームを公開していて、登録不要・1分程度で結果を確認できます。


この記事を書いた人✏️@YushiYamamoto
ITPRODX.com代表 / AIアーキテクト
Next.js / TypeScript / n8nを活用した自律型アーキテクチャ設計を専門としています。
日々の自動化の検証結果や、ビジネス側の視点(ROI等)に関するより深い考察は、以下の公式サイトおよびnoteで発信しています。

120
80
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
120
80

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?