アーキテクチャ例

SaaS アーキテクチャ例

マルチテナント型 SaaS の典型的なクラウドアーキテクチャ構成と、認証・決済・スケーリングの実装パターンを解説します。

SaaS アーキテクチャの概要

SaaS(Software as a Service)は、複数のテナント(顧客企業)が同一のアプリケーションインフラを共有するマルチテナントモデルが主流です。各テナントのデータは論理的または物理的に分離され、テナントごとのプラン管理・課金・利用制限が必要です。

フロントエンド(CDN + Next.js)
API Gateway / ロードバランサ
バックエンド API サーバー
データベース(Aurora / RDS)
キャッシュ(Redis / ElastiCache)
認証(Cognito / Auth0)
決済(Stripe)
メール(Resend / SES)
ストレージ(S3)

典型的な SaaS アーキテクチャ構成

CDN + フロントエンド

CloudFront が静的アセットをキャッシュ配信。Next.js(App Router)を ECS Fargate でホストし、SSR + CSR のハイブリッドレンダリングを実現。WAF を CloudFront に適用し DDoS 対策・Bot 防御を行う。

API Gateway / ロードバランサ

ALB(Application Load Balancer)が HTTPS リクエストを受け付け、ECS タスクへルーティング。パスベースルーティングで API と Web フロントを分離できる。

バックエンド API

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)でテナントを識別する。

API 層

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 を返してブロックする。上限に近づいたらメール通知でアップグレードを促す。

クラウド別実装例

AWS 構成例
  • • CloudFront + WAF
  • • ECS Fargate(Next.js)
  • • ALB
  • • Aurora Serverless v2
  • • ElastiCache(Redis)
  • • SQS FIFO + ECS Worker
  • • Cognito User Pool
  • • S3 + Secrets Manager
Azure 構成例
  • • 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
Google Cloud 構成例
  • • 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クレジット)