Web開発 2026年8月28日

1 何を作るか|Vercel が引き受ける範囲と、引き受けない範囲

問い合わせフォームと管理画面を Next.js + Vercel で作る全7章の第1章。完成形の全体像と、Vercel が担当するホスティング・実行環境・配信の範囲、そして自前では持たないデータベースの扱いを最初に切り分けます。

難易度前提知識ゼロでも読めます所要時間約 25 分種別学習コース

このレッスンでわかること

このコースでは、問い合わせフォームと、その受信を確認する管理画面を Next.js で作り、Vercel に公開するところまでを7章で通します。

  • 7章を終えたときに何が動いているのかがわかる
  • Vercel が引き受ける範囲と、引き受けない範囲がわかる
  • 同じ題材を扱う Cloudflare 入門コースとの違いがわかる

このレッスンではコードを書きません。先に地図を持ってから手を動かします。

作るもの

題材は2つの画面です。

画面誰が使うか認証やること
問い合わせフォーム誰でもなし名前・メール・本文・添付ファイル1点を送る
管理画面自分やチームだけあり受信一覧を見る。対応済みフラグを更新する

小さく見えますが、Web アプリの必要要素はひととおり入っています。

  • フォームの送信をサーバー側で受ける(第4章)
  • 送信内容を保存する(第5章)
  • ファイルを保存して、後から取り出す(第5章)
  • 一部の画面だけを守る(第6章)
  • 独自ドメインで公開し、費用と挙動を監視する(第7章)

各章の終わりには必ず「動く状態」が残ります。第3章を終えた時点で、すでに URL を人に見せられる状態になります。

Vercel とは何を引き受けるサービスか

Vercel は、フロントエンドのコードを Git に push したら、ビルドして世界中に配信し、サーバー側の処理も動かすプラットフォームです。Next.js を開発している会社が運営しています。

引き受ける範囲を、このコースで使うものだけに絞って並べます。

領域Vercel の担当本コースでの登場
ビルドとデプロイGit 連携。push ごとにビルドして配置する第3章
配信(CDN)静的アセットとキャッシュの配信第3章・第7章
サーバー側の実行環境Vercel Functions。API やフォーム処理を動かす第4章
ファイル保存Vercel Blob第5章
設定値の配布Global Config第5章で触れる程度
URL へのアクセス制限Deployment Protection第6章
ドメインと証明書独自ドメイン・SSL の自動発行第7章
監視Observability・Speed Insights第7章

引き受けないもの

ここが最初に押さえるべき点です。

Vercel は汎用のデータベースを自社では持っていません。

自社で提供しているストレージは Vercel Blob(ファイル置き場)と Global Config(低遅延で読み出す小さな設定値)の2つだけです。テーブルを作って行を検索するような一般的なデータベースは、Marketplace 経由で外部サービス(Neon / Upstash / Supabase など)をつなぐ設計になっています。

これは機能不足ではなく、方針です。第5章で実際に手を動かしながら、この設計の利点と面倒な点の両方を扱います。

もうひとつ引き受けないものがあります。

Vercel は「アプリのユーザー登録・ログイン」を提供しません。

第6章で使う Deployment Protection は、デプロイされた URL に誰がアクセスできるかを絞る仕組みであって、アプリのユーザー認証ではありません。この違いは混同しやすいので、第6章で1章ぶん使って扱います。

Cloudflare 入門コースとの違い

このサイトには、まったく同じ題材を Cloudflare で作る入門コースがあります。読み比べると、同じ課題に対する解き方の違いが見えます。

課題Cloudflare 入門コースこのコース
コードを動かすWorkersVercel Functions(Next.js の Route Handlers / Server Actions 経由)
データを保存するD1(同じ会社の SQL データベース)Marketplace の外部データベース
ファイルを保存するR2Vercel Blob
管理画面を守るCloudflare AccessDeployment Protection
デプロイWrangler(CLI 中心)Git 連携中心。CLI も併用

大きな違いは2つです。

1. データ層を自社で持っているかどうか。 Cloudflare は D1 も R2 も自社製品なので、設定が1か所にまとまります。Vercel は外部サービスを挟むぶん手数が増えますが、選択肢は広がります。

2. フレームワークとの距離。 Vercel は Next.js の開発元なので、Next.js の機能(Server Actions、ISR、画像最適化)がそのまま動くことが前提になっています。Next.js で作ると決まっているなら、この距離の近さがそのまま速さになります。

このサイトでは Cloudflare を主経路として案内しています。このコースは副経路です。すでに Next.js を書いている、あるいはこれから Next.js で作ると決めている場合は、こちらから入るほうが素直です。

なお、第6章で扱うとおり、一般ユーザーのログイン機能が要件に入るなら、Supabase 入門コースの構成のほうが素直です。

実例:この題材でリクエストがどう流れるか

第4章以降で作るものを、リクエストの流れとして先に見ておきます。

[訪問者] --- フォーム送信 --->
  Vercel CDN
    └─ Vercel Functions(Route Handler / Server Action)
         ├─ 添付ファイル → Vercel Blob
         └─ 送信内容    → 外部データベース(Marketplace 経由)

[運営者] --- /admin へアクセス --->
  Deployment Protection(ここで弾かれる or 通る)
    └─ Vercel Functions → 外部データベースを読む

**注目してほしいのは、/admin の手前に置かれた Deployment Protection です。**アプリのコードが動く前の段階でアクセスを判定します。だからアプリ側にログイン画面を書かずに済む反面、「アプリのユーザーごとに見せる範囲を変える」ようなことはできません。

用意しておくもの

第2章までに揃っていると進めやすいものです。

必要なもの備考
Node.jsNext.js が要求するバージョンは第2章で確認します
GitHub アカウントGit 連携デプロイに使います
Vercel アカウントGitHub アカウントでサインアップできます
ターミナルnpm コマンドが実行できれば十分です

料金については、**このコースの範囲は個人利用の Hobby プランで完結するように組み立てます。**プランごとの差が効いてくるのは第6章(保護方式)と第7章(費用)です。そこで具体的な数字を扱います。

手順と画面の記述は 2026-08 時点のものです。Vercel のダッシュボードは更新が早いため、ボタンの位置や文言が変わっている場合は、本文の「何をしたいのか」を手がかりに読み替えてください。

やってみよう

コードはまだ書きません。判断だけ先に済ませます。

  1. 完成形を言葉にする:このコースで作るものを、3行で自分の言葉で書き出してください。「誰が」「何を送り」「誰が見るか」の3点が入っていれば十分です
  2. データ層を意識する:上の表で「Vercel が引き受けないもの」を確認し、データベースだけは外部サービスになるという点をメモしておいてください。第5章でここが効いてきます
  3. アカウントを作る:GitHub アカウントで Vercel にサインアップします。第2章ですぐ使います
  4. 他コースを覗くCloudflare 入門コースの第1章だけ読んでみてください。同じ題材の別解を先に見ておくと、このコースの選択が「なぜそうしているか」が理解しやすくなります

まとめ

  • 作るのは問い合わせフォームと管理画面。7章それぞれの終わりに動く状態が残る
  • Vercel が引き受けるのはビルド・配信・サーバー側の実行環境・ファイル保存・URL の保護・ドメイン・監視
  • **Vercel は汎用データベースを自社で持たない。**自社ストレージは Vercel Blob と Global Config だけで、データベースは Marketplace 経由の外部サービス
  • Deployment Protection は URL へのアクセス制限であって、アプリのユーザー認証ではない(第6章で詳述)
  • Cloudflare 入門コースとの違いは、データ層を自社で持つかと、フレームワークとの距離の2点
  • 一般ユーザーのログインが要件なら、Supabase 入門コースの構成のほうが素直

理解度チェック

Q1. このコースで扱う「Vercel が自社で提供しているストレージ」はどれでしょう?

  1. リレーショナルデータベースとファイル置き場の両方
  2. Vercel Blob(ファイル置き場)と Global Config(設定値)の2つ
  3. ストレージは一切提供していない
  4. Marketplace 経由でしか使えない
答えを見る

正解:2

Vercel が自社で持つストレージは Vercel Blob と Global Config です。テーブルを作って行を検索する汎用データベースは自社では提供せず、Marketplace パートナー(Neon / Upstash / Supabase など)に委ねる設計になっています。第5章で実際につなぎます。

Q2. 第6章で使う Deployment Protection について、正しい説明はどれでしょう?

  1. アプリにログイン画面を追加する機能
  2. デプロイされた URL へのアクセスを絞る機能
  3. データベースの行ごとにアクセス権を設定する機能
  4. 攻撃トラフィックを自動的に遮断する機能
答えを見る

正解:2

Deployment Protection は、アプリのコードが動く手前で「その URL にアクセスしてよいか」を判定する仕組みです。アプリのユーザー認証ではないため、一般ユーザーごとに見せる範囲を変えるような用途には使えません。この区別は第6章で詳しく扱います。

参考リンク