SaaS アーキテクチャ例
マルチテナント型 SaaS の典型的なクラウドアーキテクチャ構成と、認証・決済・スケーリングの実装パターンを解説します。
SaaS アーキテクチャの概要
SaaS(Software as a Service)は、複数のテナント(顧客企業)が同一のアプリケーションインフラを共有するマルチテナントモデルが主流です。各テナントのデータは論理的または物理的に分離され、テナントごとのプラン管理・課金・利用制限が必要です。
典型的な SaaS アーキテクチャ構成
CloudFront が静的アセットをキャッシュ配信。Next.js(App Router)を ECS Fargate でホストし、SSR + CSR のハイブリッドレンダリングを実現。WAF を CloudFront に適用し DDoS 対策・Bot 防御を行う。
ALB(Application Load Balancer)が HTTPS リクエストを受け付け、ECS タスクへルーティング。パスベースルーティングで API と Web フロントを分離できる。
Next.js API Routes または独立した Node.js/Python サービスが業務ロジックを処理。Prisma ORM で DB 操作、Redis で セッション・レート制限・キャッシュを管理。SQS で非同期ジョブをワーカーへ委譲。
Aurora Serverless v2(PostgreSQL)が主 DB。pgvector 拡張でベクトル検索も対応。ElastiCache(Redis)でホットデータをキャッシュし DB 負荷を軽減。S3 に添付ファイル・レポートを保存。
Cognito User Pool で認証(JWT トークン)。Stripe で月額課金・請求管理・Webhook。Resend でトランザクションメール送信。CloudWatch + Datadog で可観測性を確保。
主要コンポーネントの解説
Next.js(App Router)+ Tailwind CSS + shadcn/ui が現代的な選択。CloudFront で全世界へ低レイテンシ配信。マルチテナントの場合、サブドメイン(tenant.saas.com)またはパス(saas.com/tenant)でテナントを識別する。
RESTful API または GraphQL で設計。JWT(Cognito トークン)で認証し、テナント ID をリクエストコンテキストに保持してデータアクセスを制限する。Rate Limiting(Redis)で API 乱用を防止。
Aurora Serverless v2 は負荷に応じて ACU が自動スケール。最小 ACU=0.5 に設定することで低負荷時のコストを最小化。Prisma ORM でタイプセーフな DB アクセスと自動マイグレーションを実現。
Stripe Checkout + Webhook で課金フローを自動化。Webhook 受信は HMAC-SHA256 署名検証必須。メール送信は Resend(or SendGrid)で信頼性を確保。SQS FIFO キューで重複処理を防止した非同期ジョブ実行。
マルチテナント設計の考慮点
| モデル | 特徴 | 適用場面 |
|---|---|---|
| Shared DB | 全テナントで同一 DB・テーブル共有(tenant_id カラムで分離) | コスト重視・テナント数が多い場合 |
| Separate Schema | 同一 DB 内でスキーマを分離(PostgreSQL の schema 機能) | 中規模・バランス型 |
| Isolated DB | テナントごとに独立した DB インスタンス | エンタープライズ・コンプライアンス要件が厳しい場合 |
プランごとの使用量上限(月次クレジット・ストレージ容量・API 呼び出し数)は Redis または DB で管理し、超過時は HTTP 429 を返してブロックする。上限に近づいたらメール通知でアップグレードを促す。
クラウド別実装例
- • CloudFront + WAF
- • ECS Fargate(Next.js)
- • ALB
- • Aurora Serverless v2
- • ElastiCache(Redis)
- • SQS FIFO + ECS Worker
- • Cognito User Pool
- • S3 + Secrets Manager
- • Azure CDN + Front Door
- • Azure Container Apps
- • Application Gateway
- • Azure Database for PostgreSQL
- • Azure Cache for Redis
- • Service Bus + ACA Worker
- • Azure AD B2C
- • Blob Storage + Key Vault
- • Cloud CDN + Cloud Armor
- • Cloud Run(Next.js)
- • Cloud Load Balancing
- • Cloud SQL(PostgreSQL)
- • Memorystore(Redis)
- • Cloud Tasks + Cloud Run
- • Identity Platform
- • GCS + Secret Manager
ArchitectAI でクラウドアーキテクチャ設計を自動化しましょう
無料で始める(10クレジット)