Skip to Content
Day 2: キャンプ当日デプロイ前の確認事項

デプロイ前の確認事項

作ったアプリを公開する前に、セキュリティとインフラの2点を確認しましょう。


セキュリティチェック

アプリを外部に公開する場合、セキュリティの確認は必須です。Claude Code にセキュリティ監査を依頼しましょう。

Claude Code に伝えるプロンプト例:

このアプリケーション全体のセキュリティ監査を行ってください。 以下の観点でチェックし、見つかった問題を Critical / High / Medium / Low のランク別に一覧にしてください。 - 認証・認可の不備 - 入力値のバリデーション不足(XSS, SQLインジェクションなど) - APIキーやシークレットのハードコード - CORS設定の問題 - 依存パッケージの既知の脆弱性 - その他 OWASP Top 10 に該当する項目

結果が出たら:

  1. Critical / High のものから優先的に対処する
  2. 「この問題を修正してください」と Claude Code に伝えれば、修正コードを提案してくれる
  3. 時間がなければ、Critical だけでも必ず対処する
  4. Medium / Low は公開後に改善しても問題ない場合が多い

よくある指摘と対処:

指摘例対処
APIキーがソースコードに直書き環境変数(.env)に移動し、.gitignore に追加
ユーザー入力をそのまま表示サニタイズ処理を追加(XSS対策)
エラーメッセージにスタックトレース表示本番環境ではユーザー向けのメッセージのみ表示
認証なしでAPIにアクセス可能認証ミドルウェアを追加

リポジトリの整理

GitHub にコードを公開する前に、不要なファイルや機密情報が含まれていないか確認しましょう。

.gitignore の確認

以下のファイルが GitHub に上がっていないことを確認してください。

このプロジェクトの .gitignore を確認してください。 .env ファイル、APIキー、node_modules、ビルド成果物が Git の追跡対象から除外されているかチェックしてください。 もし不足があれば修正してください。

特に注意するファイル:

  • .env / .env.local — APIキーやシークレットが入っている
  • node_modules/ — 依存パッケージ(サイズが巨大)
  • .next/ / dist/ / build/ — ビルド成果物

既に Git にコミットしてしまった場合は、Claude Code に「.envファイルをGitの履歴から削除して」と伝えましょう。

README の作成

後から見返す自分のためにも、最低限の README を書いておきましょう。

このプロジェクトの README.md を作成してください。 以下を含めてください: - プロジェクトの概要(何をするアプリか) - セットアップ手順(npm install、環境変数の設定など) - 起動方法

公開前の品質チェック

エラーハンドリング

本番環境で真っ白な画面やスタックトレースが表示されないよう確認しましょう。

このアプリのエラーハンドリングを確認してください。 - APIエラー時にユーザーに分かりやすいメッセージを表示しているか - 本番環境でスタックトレースが露出していないか - 予期しないエラーが発生した場合のフォールバック画面があるか

レスポンシブ対応

デモで見せる際にも重要です。スマホやタブレットで表示が崩れていないか確認しましょう。

このアプリのレスポンシブ対応を確認してください。 モバイル(375px)、タブレット(768px)、デスクトップ(1280px)の 各画面幅で表示に問題がないかチェックしてください。

ライセンスの確認

使用しているライブラリのライセンスを確認しましょう。特に商用利用や社内利用の場合は重要です。

このプロジェクトで使用しているパッケージのライセンスを一覧にしてください。 商用利用に制限があるものがあれば教えてください。

主なライセンスと意味:

ライセンス商用利用注意点
MITOKほぼ制約なし。最も一般的
Apache 2.0OK特許権の付与あり
GPL要注意派生物も GPL で公開する必要がある
AGPL要注意サーバーサイドで使う場合もソース公開が必要

デプロイ先の選定

アプリの種類に応じて、適切なデプロイ先を選びましょう。

アプリの種類おすすめのデプロイ先備考
静的サイト / SPAVercel, Cloudflare Pages無料枠で十分。Vercel は private repo の場合 Pro プラン(有料)が必要
フルスタック(Next.js等)Vercel, RailwayVercel は Next.js との相性が良い
バックエンドAPIRailway, Render無料枠あり。本格運用なら GCP / AWS
データベースありSupabase, PlanetScaleBaaS を使えばサーバー管理不要

デプロイ時の注意点:

  • 環境変数の設定: ローカルの .env の値を、デプロイ先の環境変数設定画面で登録する
  • ビルドの確認: npm run build がローカルで成功することを確認してからデプロイする
  • ドメイン: 各サービスが自動的にURLを発行してくれる(独自ドメインは後から設定可能)

Claude Code にデプロイを手伝ってもらうプロンプト例:

このアプリを Vercel にデプロイしたいです。 必要な設定ファイルの確認と、デプロイ手順を教えてください。

プラットフォーム別ガイド

Vercel

Next.js との相性が最も良く、ゼロコンフィグでデプロイできます。

向いているアプリ: Next.js / React のフロントエンド、フルスタックアプリ

データベースが必要な場合:

  • Vercel Postgres (powered by Neon) — Vercel ダッシュボードから直接作成でき、環境変数も自動設定される。最も手軽
  • Supabase — PostgreSQL + 認証 + リアルタイム機能がセット。無料枠が充実(500MB)
  • PlanetScale — MySQL ベースのサーバーレスDB。ブランチ機能でスキーマ変更が安全

デプロイ手順:

  1. GitHub にリポジトリを push
  2. vercel.com  でリポジトリを import
  3. 環境変数を設定
  4. Deploy をクリック

注意: Hobby プラン(無料)は public repo のみ。private repo の場合は Pro プラン(月$20)が必要。

Cloudflare Pages

静的サイトやエッジで動作する Web アプリに最適。無料枠が非常に充実しています。

向いているアプリ: 静的サイト、SPA、軽量な Web アプリ

データベースが必要な場合:

  • Cloudflare D1 — Cloudflare のエッジで動作する SQLite ベースの DB。同じエコシステム内で完結するため設定が簡単。無料枠あり
  • Turso — エッジ対応の SQLite(libSQL)。Cloudflare Workers との相性が良い
  • Supabase — 外部サービスとして接続。REST API 経由でアクセス

デプロイ手順:

  1. GitHub にリポジトリを push
  2. Cloudflare ダッシュボード  → Pages → 「Create a project」
  3. リポジトリを接続し、ビルド設定を入力
  4. Deploy をクリック

Railway

バックエンド API やデータベースを含むアプリに最適。Docker 対応で柔軟。

向いているアプリ: バックエンド API、フルスタックアプリ、DB が必要なアプリ

データベースが必要な場合:

  • Railway 内蔵の PostgreSQL / MySQL / Redis — ワンクリックで追加可能。アプリと同じプロジェクト内で管理でき、接続情報も自動設定される
  • 外部 DB を使う必要がほとんどない

デプロイ手順:

  1. railway.app  で GitHub 連携
  2. リポジトリを選択
  3. 必要なら「+ New」からデータベースを追加
  4. 環境変数を設定して自動デプロイ

注意: 無料クレジット(月$5分)を超えると課金。Hobby プランは月$5。

Render

シンプルな構成で、Heroku からの移行先として人気。

向いているアプリ: バックエンド API、静的サイト、定期実行ジョブ

データベースが必要な場合:

  • Render PostgreSQL — ダッシュボードから作成。無料枠あり(90日間、256MB)
  • Supabase / Neon — 長期利用なら外部の無料 DB サービスを併用

デプロイ手順:

  1. render.com  で GitHub 連携
  2. 「New +」→ Web Service(API)or Static Site
  3. ビルドコマンドと起動コマンドを設定
  4. 環境変数を設定してデプロイ

Google Cloud (GCP)

エンタープライズ向けの本格的なクラウド基盤。Always Free 枠もあり、小規模から大規模まで対応できます。

向いているアプリ: 本格的な業務システム、大規模アプリ、機械学習を含むアプリ

主なデプロイ先:

  • Cloud Run — コンテナをサーバーレスで実行。Docker イメージを渡すだけで自動スケール。最もおすすめ
  • App Engine — PaaS。コードを push するだけでデプロイ。Node.js / Python 等に対応
  • Firebase Hosting — 静的サイト・SPA 向け。CDN 配信で高速

データベースが必要な場合:

  • Cloud SQL (PostgreSQL / MySQL) — マネージド RDB。本格運用向け。Always Free 枠はないが信頼性が高い
  • Firestore — NoSQL ドキュメントDB。無料枠が充実(1GB ストレージ、50,000 読み取り/日)。Firebase と統合しやすい
  • AlloyDB — PostgreSQL 互換の高性能 DB。大規模データ向け

デプロイ手順(Cloud Run の場合):

  1. Google Cloud Console  でプロジェクトを作成
  2. gcloud CLI をインストール(Claude Code に gcloud CLIをインストールして と伝えればOK)
  3. Dockerfile を用意(Claude Code に作成を依頼できる)
  4. gcloud run deploy でデプロイ

注意: Always Free 枠(Cloud Run: 月200万リクエスト、Firestore: 1GB)があるが、設定によっては課金が発生する。必ず予算アラートを設定すること。

Last updated on