【第5回】デプロイと収益化編:AWS/VercelへのデプロイとStripe連携
はじめに:あなたのサービスを、世界に公開する日
第4回まで、本当にお疲れ様でした。私たちは、独自の知識を持ち、外部ツールを使いこなすAIエージェントのバックエンドと、快適なチャットUIを持つフロントエンドを開発してきました。ローカル環境では、もうあなたのアプリケーションは完璧に動作しているはずです。
シリーズ最終回となる今回は、このアプリケーションに命を吹き込む最後の、そして最もエキサイティングなステップです。開発したサービスを世界中に公開(デプロイ)し、収益化の仕組み(サブスクリプション決済)を組み込んでいきます。
具体的には、以下のモダンなサーバーレス構成を採用します。
- フロントエンド (Next.js): Vercelにデプロイ
- バックエンド (FastAPI): AWS Lambdaにデプロイ
- 決済: Stripeと連携
この最終回を乗り越えれば、あなたは単なる開発者ではなく、自らの手でサービスを収益化できる「プロダクト開発者」へと進化を遂げます。さあ、始めましょう。
1. フロントエンドのデプロイ:Vercelで世界に公開(所要時間5分)
Next.jsで開発されたフロントエンドのデプロイは、開発元であるVercelを使えば驚くほど簡単です。
- GitHubにリポジトリを作成: フロントエンドのコードをGitHubにプッシュします。
- Vercelにサインアップ: GitHubアカウントでサインアップします。
- プロジェクトのインポート: Vercelのダッシュボードから、先ほど作成したGitHubリポジトリをインポートします。
- 環境変数の設定: バックエンドAPIのURLなど、必要な環境変数をVercelのプロジェクト設定画面で入力します。
- デプロイ!: インポートが完了すると、Vercelは自動でビルドとデプロイを開始します。数分後には、
https://your-project-name.vercel.app
のようなURLであなたのアプリケーションが世界中に公開されます。
これだけです。Vercelは、GitHubのmainブランチにプッシュがあるたびに、自動で再デプロイを行ってくれます。
2. バックエンドのデプロイ:Serverless FrameworkでAWS Lambdaへ
FastAPIで構築したバックエンドは、AWS Lambdaにデプロイします。リクエストに応じて起動するため、コストを最小限に抑えられます。ここでは、設定ファイルベースでインフラを管理できるServerless Frameworkを利用します。
Step 1: Serverless Frameworkのセットアップ
# Serverless Frameworkをインストール
npm install -g serverless
# AWSの認証情報を設定 (IAMユーザーの作成と設定が必要です)
serverless config credentials --provider aws --key YOUR_ACCESS_KEY --secret YOUR_SECRET_KEY
Step 2: serverless.yml
の作成
プロジェクトのルートに、Lambdaの構成を定義するserverless.yml
を作成します。
# serverless.yml
service: llm-rag-api
frameworkVersion: '3'
provider:
name: aws
runtime: python3.11
region: ap-northeast-1 # 東京リージョン
functions:
main:
handler: main.handler # main.pyのappインスタンスをhandlerとして指定
url: true # Lambda Function URLを有効にする
events:
- httpApi: '*',
plugins:
- serverless-python-requirements
- serverless-wsgi
custom:
wsgi:
app: main.app
Step 3: デプロイ
準備が整ったら、コマンド一発でデプロイします。
sls deploy
デプロイが完了すると、ターミナルにAPIのエンドポイントURLが出力されます。このURLを、Vercelの環境変数に設定すれば、フロントエンドとバックエンドの連携は完了です。
3. Stripe連携:サブスクリプション決済を組み込む
最後に、収益化の要であるStripe決済を組み込みます。
- Stripeで商品と価格を登録:
- Stripeのダッシュボードにログインし、「商品」メニューから新しい商品を作成します。
- 「価格設定モデル」で「標準の価格設定(サブスクリプション)」を選択し、月額料金(例: 980円/月)を設定します。作成された価格ID(
price_...
)を控えておきます。
- バックエンドの実装:
- 第4回で作成したバックエンドに、Stripe Checkoutセッションを作成するエンドポイントと、決済完了を通知するWebhookエンドポイントを実装します。(コードは第4回の記事を参照)
- フロントエンドの実装:
- ユーザーが「登録」ボタンをクリックしたら、バックエンドの
/api/create-checkout-session
を呼び出し、返されたURLにリダイレクトさせます。
- ユーザーが「登録」ボタンをクリックしたら、バックエンドの
- Webhookの設定:
- Stripeのダッシュボードで、バックエンドに作成したWebhookエンドポイントのURLを登録します。これにより、決済が成功するとStripeからLambdaに通知が届き、ユーザーの権限を更新できます。
まとめ:あなたはもう「プロダクト開発者」だ
全5回にわたる長い旅、お疲れ様でした。このシリーズを通じて、あなたは単なるアイデアを、モダンな技術スタックを使って形にし、世界に公開し、そして収益化するまでの全工程を経験しました。
- 全体像を理解し、技術選定を行った(第1回)
- RAGによる知識を持つバックエンドを構築した(第2回)
- Vercel AI SDKで快適なフロントエンドを構築した(第3回)
- Function Callingで行動できるエージェントに進化した(第4回)
- サービスを世界に公開し、収益化の仕組みを実装した(今回)
あなたはもう、仕様書通りにコードを書くだけのエンジニアではありません。自らの手で価値を創造し、それをビジネスに変える力を持った「プロダクト開発者」です。
このシリーズで得た知識と経験を元に、ぜひあなたのオリジナルなアイデアを形にし、新たな挑戦を始めてみてください。あなたの成功を心から応援しています。
関連記事
– 【第4回】Function Calling実践編:外部APIと連携する自律型AIエージェント
– 副業で始める「SaaS開発」:アイデア検証からMVP構築、収益化までのロードマップ
コメント