🔰 講座06

作ったWebアプリをインターネットに公開して独自ドメインで運用できるようになる

⏱ 想定学習時間 15時間
📋 前提条件 講座04・05修了・GitHubアカウント
🛤 パス A・B共通
この講座でできるようになること
Vercel 自動デプロイの全体フロー
💻 コード修正
ローカル
🌐 git push
GitHub
⚡ 自動ビルド
Vercel(約30秒)
✅ 本番公開
https://xxx.vercel.app
1

Phase 1: Vercel アカウント作成と GitHub 連携

⏱ 約2時間
1-1

STEP 1-1: Vercel アカウントのサインアップ

Vercel はフロントエンドの Web アプリを無料で公開できるサービスです。GitHub と連携すると、コードを push するだけで自動的に最新版が公開される仕組みになります。

【Windows 版】

サインアップ手順
  1. ブラウザで https://vercel.com を開く
  2. 右上の「Sign Up」をクリック
  3. 「Continue with GitHub」を選択(GitHub アカウントと連携するのが最もスムーズ)
  4. GitHub の認証画面が表示されたら「Authorize Vercel」をクリック
  5. プランは「Hobby(無料)」を選択して続行
  6. 名前・用途を入力してアカウント作成を完了する

【Mac 版】

手順は Windows 版と同一。ブラウザは Safari でも動作しますが、Chrome または Firefox を推奨します。

▲ Vercel
username ▼
Overview
GitHubアカウントと連携済み。
「Add New... → Project」からリポジトリをインポート
Hobby Plan(無料)で利用中

▲ Vercel のダッシュボード初期画面。GitHub 連携後にリポジトリをインポートする

⚠️ エラーが出た場合

GitHub との連携が失敗する場合

  • GitHub にログインした状態で Vercel のサインアップを行っているか確認する
  • ブラウザのポップアップブロックが有効になっている場合は無効にする
  • 別のブラウザで試す
  • 失敗する場合は「Continue with Email」でサインアップし、後から GitHub を連携する(アカウント設定 → Integrations → GitHub)
1-2

STEP 1-2: GitHub リポジトリへのアクセス権限設定

Vercel が GitHub のリポジトリにアクセスできるよう権限を設定します。「全部許可」よりも「必要なリポジトリだけ許可」のほうが安全です。

【Windows 版】

権限設定手順
  1. Vercel ダッシュボードに入ったら「Add New... → Project」をクリック
  2. 「Import Git Repository」セクションで GitHub アイコンをクリック
  3. 「Adjust GitHub App Permissions」から権限設定画面を開く
  4. 推奨: 「Only select repositories」で対象のリポジトリのみ選択する
  5. 「Save」をクリックして設定を保存

【Mac 版】

手順は Windows 版と同一。

⚠️ エラーが出た場合

リポジトリが一覧に表示されない場合

  • GitHub の組織(Organization)配下のリポジトリの場合、組織の Vercel アプリ承認が必要
  • GitHub の「Settings → Applications → Authorized OAuth Apps」で Vercel が存在するか確認
  • Vercel 側で「Configure GitHub App」を再クリックして権限を再設定する
2

Phase 2: デプロイ方法の選択

⏱ 約3時間
2-1

STEP 2-1: 方法A — ドラッグ&ドロップでデプロイ(GitHub なしの場合)

GitHub リポジトリがない場合、またはシンプルに試したい場合はこの方法でデプロイします。手動更新になるため、コードを修正するたびに再度ビルドとアップロードが必要です。

【Windows 版】

ドラッグ&ドロップ デプロイ手順
  1. ローカルでアプリのビルドを実行する:npm run build
  2. dist フォルダが作成されたことをエクスプローラーで確認する
  3. Vercel ダッシュボードで「Add New... → Project」をクリック
  4. 「Deploy without a Git repository」エリアを探す
  5. エクスプローラーで dist フォルダを選択し、Vercel のアップロードエリアにドラッグ&ドロップ
  6. デプロイが完了すると公開 URL が表示される

【Mac 版】

  1. ターミナルで npm run build を実行
  2. Finder で dist フォルダを見つけてドラッグ&ドロップ
⚠️ エラーが出た場合

npm run build が失敗する場合

  • package.jsonbuild スクリプトが存在するか確認する
  • node_modules が存在しない場合は npm install を先に実行する
  • エラーメッセージをコピーして Cursor または Claude.ai に貼り付けて修正を依頼する
2-2

STEP 2-2: 方法B — GitHub リポジトリ連携(自動デプロイ)

GitHub にリポジトリがある場合はこの方法を使います。一度設定すると、git push するだけで自動的に Vercel にデプロイされます。これが「継続的デプロイ(CD)」と呼ばれる仕組みです。

【Windows 版】

GitHub 連携デプロイ手順
  1. Vercel ダッシュボードで「Add New... → Project」をクリック
  2. 権限設定したリポジトリが一覧に表示される
  3. 対象リポジトリの「Import」をクリック
  4. プロジェクト設定画面を確認(次の STEP 2-3 で詳細確認)
  5. 「Deploy」をクリック
  6. ビルドログが流れ、完了すると公開 URL が表示される
  7. 以降は git push origin main するだけで自動デプロイされる

【Mac 版】

手順は Windows 版と同一。

▲ Vercel
username ▼
Overview
🌐 my-first-app
✅ Ready
https://my-first-app.vercel.app
最終デプロイ: 2分前 · main ブランチ
Domains: my-first-app.vercel.app, (+ 独自ドメイン追加可)

▲ Vercel のプロジェクトダッシュボード。「Ready」が表示されれば公開成功

⚠️ エラーが出た場合

デプロイが自動で始まらない場合

  • Vercel と GitHub の連携が正しく設定されているか確認(STEP 1-2)
  • Vercel ダッシュボードのプロジェクト設定「Git」タブで連携リポジトリと対象ブランチを確認
  • デフォルトは main ブランチ。master を使っている場合は設定を変更する
2-3

STEP 2-3: Vercel のビルド設定確認

Vite で作成したプロジェクトのビルド設定を確認します。Vercel は多くの場合 Vite プロジェクトを自動検出しますが、念のため確認してください。

Vercel のプロジェクト設定(Settings → General → Build & Development Settings)で以下を確認:

項目設定値
Framework PresetVite
Build Commandnpm run build
Output Directorydist
Install Commandnpm install(デフォルトのまま)
dist フォルダとは

dist は Vite のビルドで生成される出力フォルダ名です。React の create-react-app では build という名前ですが、Vite では dist がデフォルトです。

⚠️ エラーが出た場合

ビルドは成功するがページが真っ白になる場合

  • Output Directory が dist に設定されているか確認する
  • vite.config.jsbase オプションが設定されている場合は / になっているか確認する
  • React Router を使っている場合は vercel.json が必要な場合がある(STEP 5-2 参照)
3

Phase 3: 環境変数の設定

⏱ 約2時間
3-1

STEP 3-1: ダッシュボードでの環境変数設定手順

API キーなどの秘密情報はコードに直接書かずに「環境変数」として管理します。Vite のアプリでフロントエンドから使う環境変数は VITE_ というプレフィックスが必要です。

【Windows 版 / Mac 版 共通】

環境変数の設定手順
  1. Vercel ダッシュボードでプロジェクトを選択
  2. 「Settings」タブ → 「Environment Variables」をクリック
  3. 環境変数を追加する:
    • Key: 変数名(例: VITE_API_KEY
    • Value: 実際の値(例: API キーの文字列)
    • Environments: Production / Preview / Development から選択
  4. 「Save」をクリック
  5. 必ず再デプロイを行う(STEP 3-2 参照)
Vite の環境変数の参照方法

コード内では import.meta.env.VITE_API_KEY で参照できます。process.env.変数名 は Vite では動作しません(Next.js の書き方)。

⚠️ エラーが出た場合

環境変数が undefined になる場合

  • 変数名が VITE_ で始まっているか確認する(Vite の仕様)
  • 設定後に再デプロイしているか確認する(環境変数はデプロイ時に読み込まれる)
  • コード内の参照が import.meta.env.VITE_変数名 になっているか確認する
3-2

STEP 3-2: 設定後に必ず再デプロイが必要な理由と手順

環境変数を追加・変更しても、既存のデプロイには反映されません。環境変数はビルド時(コンパイル時)に埋め込まれるため、変数を変えたら必ずビルドをやり直す必要があります。

方法1: Vercel ダッシュボードから再デプロイ

ダッシュボードからの再デプロイ手順
  1. Vercel ダッシュボードでプロジェクトを選択
  2. 「Deployments」タブを開く
  3. 最新のデプロイの右側「...」メニューをクリック
  4. 「Redeploy」を選択
  5. 「Use existing Build Cache」のチェックを外して「Redeploy」をクリック

方法2: 空のコミットを push(方法 B の場合)

Git Bash / ターミナル — 空コミットで再デプロイ Windows / Mac 共通
git commit --allow-empty -m "redeploy: update environment variables"
git push origin main
⚠️ エラーが出た場合

再デプロイ後も環境変数が反映されない場合は、ブラウザのキャッシュをクリアして(Ctrl+Shift+R / Cmd+Shift+R)再度確認してください。

3-3

STEP 3-3: Production / Preview / Development の使い分け

Vercel では環境変数を3つのスコープに分けて管理できます。最初のうちはすべての環境に同じ値を設定して問題ありません。

スコープ対応するデプロイ用途の例
Productionmain ブランチのデプロイ本番の API キー
PreviewPR やその他ブランチのデプロイテスト用 API キー・テスト用 DB
Developmentvercel dev コマンド実行時ローカル開発用
⚠️ エラーが出た場合

本番環境でのみ API キーが動かない場合、環境変数の「Environments」設定で「Production」にチェックが入っているか確認してください。

4

Phase 4: 独自ドメインの接続(オプション)

⏱ 約3時間
このフェーズはオプションです

*.vercel.app の URL で十分な場合はスキップできます。独自ドメインは年間 1,000〜3,000 円程度の費用が発生します。

4-1

STEP 4-1: ドメイン取得先の選び方

ドメインは「インターネット上の住所」です。yourapp.vercel.app の代わりに yourapp.com のような自分だけの URL が持てます。

サービス特徴URL
お名前.com国内最大手・日本語サポート充実onamae.com
Xserver ドメイン管理画面わかりやすいxdomain.ne.jp
Cloudflare Registrar最安値水準・DNS 設定が強力cloudflare.com
ドメイン選びのポイント
  • .com / .jp / .net などの一般的な TLD を選ぶ
  • ドメイン名は短く覚えやすいもの
  • 更新料金も確認する(初年度が安くても更新が高いサービスがある)
⚠️ エラーが出た場合

ドメイン取得自体はサービスの指示に従って進めてください。購入後は STEP 4-2 の DNS 設定に進んでください。

4-2

STEP 4-2: A レコードと CNAME の設定方法

ドメインを取得したら、Vercel のサーバーに DNS で接続します。A レコードは IP アドレスを指定するもの、CNAME は別のドメイン名を指定するものです。

【Vercel 側の作業】

Vercel 側の手順
  1. Vercel ダッシュボード → プロジェクト → 「Settings」→「Domains」
  2. 「Add」ボタンをクリックしてドメイン名を入力(例: yourapp.com
  3. Vercel が表示する DNS 設定値を確認する

【お名前.com での DNS 設定】

  1. お名前.com にログイン → 「ドメイン設定」→「DNS レコード設定」
  2. 以下のレコードを追加する:
タイプホスト名
A@(または空欄)76.76.21.21(Vercel が指定する値)
CNAMEwwwcname.vercel-dns.com
⚠️ エラーが出た場合

DNS レコードを設定したが Vercel に反映されない場合

  • DNS 反映には最大 72 時間かかる場合がある(通常は 1〜2 時間)
  • お名前.com では「ネームサーバーの変更」と「DNS レコード設定」を混同しないよう注意(ネームサーバーは変更不要)
4-3

STEP 4-3: DNS 反映の確認(whatsmydns.net の使い方)

【Windows 版 / Mac 版 共通】

DNS 確認手順
  1. ブラウザで https://www.whatsmydns.net を開く
  2. 設定したドメイン(例: yourapp.com)を入力
  3. タイプを「A」に設定して「Search」をクリック
  4. 大部分が 76.76.21.21(Vercel のアドレス)になっていれば反映完了
DNS 反映のしくみ

DNS の反映は「世界中の DNS サーバーに情報が広まるのを待つ」作業です。全世界で緑(一致)になっていれば安心です。

⚠️ エラーが出た場合

ほとんどの地域で緑(一致)になっているのに一部が赤い場合は、まだ伝播が進んでいる途中です。数時間待ってから再確認してください。

4-4

STEP 4-4: www あり/なしの統一設定

yourapp.comwww.yourapp.com 両方にアクセスできるようにして、片方にリダイレクトします。

【Windows 版 / Mac 版 共通】

www統一設定手順
  1. Vercel ダッシュボード → 「Settings」→「Domains」
  2. yourapp.comwww.yourapp.com の両方を追加する
  3. どちらかを「Primary」(主ドメイン)に設定する
  4. Vercel が自動的にリダイレクト設定を行う
推奨

一般的には www なし(yourapp.com)をプライマリにすることが多いです。

⚠️ エラーが出た場合

www なしでアクセスするとエラーになる場合

A レコードにルートドメイン(@)のレコードが設定されているか確認してください。一部の DNS サービスはルートドメインに CNAME を設定できないため、A レコードを使用します。

5

Phase 5: 運用管理の基本

⏱ 約3時間
5-1

STEP 5-1: デプロイ履歴の確認とロールバック方法

問題が発生したときに以前の状態に戻せるよう、ロールバック方法を覚えておきましょう。ロールバックはコードを変更せずに Vercel 側の「どのビルドを公開するか」を切り替えるだけです。

【Windows 版 / Mac 版 共通】

ロールバック手順
  1. Vercel ダッシュボード → プロジェクトを選択
  2. 「Deployments」タブをクリック
  3. 過去のデプロイ一覧が表示される(日時・ブランチ・ステータスが確認できる)
  4. 戻したいデプロイを見つけてクリック
  5. 「Promote to Production」でそのデプロイを現在の本番環境に昇格させる
▲ Vercel
Deployments
● Production main・feat: ダークモード追加 2分前
● 旧バージョン main・style: ヘッダー修正 1時間前 ... ▼
右の「...」→「Promote to Production」でロールバック可

▲ Vercel のデプロイ履歴。旧バージョンに「Promote to Production」でロールバックできる

⚠️ エラーが出た場合

「Promote to Production」ボタンが表示されない場合

  • 無料プラン(Hobby)でも利用可能
  • 既に本番に設定されているデプロイには表示されない
  • ページをリロードしてから再試行する
5-2

STEP 5-2: ビルドログの見方(エラーが出たときにどこを見るか)

ビルドログは下に行くほど新しい情報です。エラーは一番最後のほうに表示されることが多いので、まず最下部を確認しましょう。

【Windows 版 / Mac 版 共通】

ビルドログの確認手順
  1. Vercel ダッシュボード → 「Deployments」タブ
  2. 失敗したデプロイ(赤い「Error」表示)をクリック
  3. 「Build Logs」タブをクリック
  4. ログを下にスクロールして Error: または npm ERR! が含まれる行を探す
  5. エラーメッセージをコピーして Cursor または Claude.ai に貼り付けて修正を依頼する
エラーメッセージの特徴原因
Module not foundパッケージがインストールされていない
npm ERR! code ENOENTpackage.json が見つからない
Type error:TypeScript の型エラー
'変数名' is not defined環境変数が設定されていない
⚠️ エラーが出た場合

ビルドログが長すぎる場合は、Error または Failed という文字を含む行前後 20 行程度をコピーして AI に貼り付けてください。

5-3

STEP 5-3: Spend Management の設定(Proプラン・有料)

無料プランのため通常は不要

Hobby プランは無料のためこの設定は不要です。将来 Pro プランにアップグレードした際に確認してください。

Vercel Pro プランを使用している場合、意図しない高額請求を防ぐために月間の上限金額を設定できます。

設定手順(Pro プランのみ)
  1. Vercel ダッシュボード → 「Settings」→「Billing」→「Spend Management」
  2. 月間の上限金額を設定する
  3. 上限に達した場合の動作(停止 or 通知のみ)を選択する
  4. メール通知先を確認する
⚠️ エラーが出た場合

Hobby プランでは「Spend Management」の設定項目が表示されません。表示されない場合は無料プランのままなので問題ありません。

6

Phase 6: より高度なデプロイ環境(Google Cloud Run)の判断基準

⏱ 参考情報
6-1

STEP 6-1: Vercel では対応できないケースと Cloud Run の使い分け

Vercel は静的サイトおよびサーバーレス関数のホスティングに特化しています。以下のケースでは Vercel だけでは対応が難しい場合があります。

ケースVercelCloud Run
静的サイト・SPA(React/Vite)✅ 最適可能だが過剰
サーバーレス関数(短時間処理)✅ 最適可能
常時起動の API サーバー❌ 不向き✅ 最適
API キーをサーバーで完全秘匿△ 限定的✅ 最適
Docker コンテナのデプロイ❌ 非対応✅ 最適
Node.js Express / FastAPI△ 制限あり✅ 最適
費用(低トラフィック時)✅ 無料✅ ほぼ無料
Cloud Run が必要か判断するチェックリスト
  • バックエンド API サーバー(Express.js, FastAPI など)を本番で動かしたい
  • API キーをフロントエンドのコードに一切含めたくない
  • Dockerfile や Docker イメージを使いたい
  • 既存の Docker コンテナを本番にデプロイしたい

上記に1つも当てはまらない場合は Vercel で十分です。

Cloud Run への移行の詳細手順は 講座06応用編(Cloud Run) を参照してください。

⚠️ どちらを選ぶか迷った場合

迷ったらまず Vercel でデプロイしてください。Cloud Run は中〜上級者向けの内容です。Vercel で対応できる場合は、まず Vercel での運用を続けることを推奨します。

修了条件チェックリスト