記事一覧に戻る
AI・DX

マルチテナントSaaSの設計と実装|アーキテクチャの選び方

2026年3月8日 約6分で読めます
この記事でわかること
  • マルチテナントの3つの分離レベルと選び方
  • DB分離型(テナントごとに別DB)の特徴
  • スキーマ分離型(同一DB、別スキーマ)の特徴
  • 行レベル分離型(同一テーブル、tenant_id列)の特徴
  • セキュリティ設計(テナント間のデータ隔離)
  • パフォーマンス設計(ノイジーネイバー問題と対策)
  • マイグレーション戦略とスケーリング

マルチテナントの3つの分離レベル

マルチテナントアーキテクチャはSaaS開発の根幹をなす設計パターンです。1つのアプリケーションを複数の企業(テナント)が共有して利用するため、「テナント間のデータをどう分離するか」が最大の設計判断になります。

分離レベルは大きく3つ:DB分離型、スキーマ分離型、行レベル分離型です。セキュリティ要件、テナント数、運用コストのバランスで選択します。

パターン 構成 テナント間分離 コスト 運用負荷
DB分離型 テナントごとに別DB ◎(完全分離) 高い 高い
スキーマ分離型 同一DB、別スキーマ ○(論理分離)
行レベル分離型 同一テーブル、tenant_id △(要注意) 低い 低い

テナント数別の推奨パターン

テナント数 推奨パターン 理由
〜10社 DB分離型 管理可能な範囲、セキュリティ最高
10〜100社 スキーマ分離型 バランス良好
100社以上 行レベル分離型 スケーラビリティ最高

DB分離型(テナントごとに別DB)の特徴

テナントごとに完全に独立したデータベースを持つパターンです。エンタープライズ向けSaaSや、金融・医療など高いセキュリティ要件が求められる業界で採用されます。

メリット:

  • データの完全分離により、テナント間のデータ漏洩リスクがゼロ
  • テナントごとにバックアップ・リストアが可能
  • 特定テナントのパフォーマンス問題が他テナントに影響しない
  • テナント単位でのカスタマイズ(スキーマ変更等)が容易

デメリット:

  • テナント数が増えるとDB管理コストが線形に増加(10テナントで月額5〜10万円のDB費用)
  • マイグレーション(スキーマ変更)を全DBに適用する必要がある
  • テナント横断のレポート・分析が困難
💬
マルチテナント設計で最も多い失敗は「最初に行レベル分離で作ったが、エンタープライズ顧客のセキュリティ要件を満たせず、後からDB分離に移行する」ケースです。初期段階でターゲット顧客のセキュリティ要件をヒアリングしておくことが重要です。

スキーマ分離型(同一DB、別スキーマ)の特徴

1つのデータベース内で、テナントごとに別のスキーマ(名前空間)を作成するパターンです。PostgreSQLのスキーマ機能を活用するケースが多く見られます。

メリット:

  • DB分離型に近いセキュリティを確保しつつ、DBの管理コストを抑えられる
  • テナントごとのバックアップ・リストアが可能(pg_dump -n schema_name)
  • マイグレーションは全スキーマに一括適用可能(スクリプト化が前提)

デメリット:

  • テナント数が1,000を超えると、コネクションプール管理が複雑になる
  • テナント作成のたびにスキーマ生成+初期データ投入が必要
  • ORM(Eloquent, Prisma等)のマルチスキーマ対応に工夫が必要

行レベル分離型(同一テーブル、tenant_id列)の特徴

すべてのテナントのデータを同一テーブルに格納し、tenant_id列で区別するパターンです。最もシンプルで、SaaS開発の多くがこのパターンを採用しています。

メリット:

  • 実装がシンプル(全クエリにWHERE tenant_id = ?を追加するだけ)
  • テナント数の増加に対してスケーラブル(10万テナントでも対応可能)
  • 運用コストが最も低い(DB1つ、マイグレーション1回)

デメリット:

  • tenant_idの付け忘れによるデータ漏洩リスク(最大のリスク)
  • テナント単位のバックアップ・リストアが困難
  • 大規模テナントがDBを占有するノイジーネイバー問題

必須の対策:PostgreSQLのRLS(Row Level Security)を必ず有効にし、アプリケーション層とDB層の2重でテナント分離を実装してください。アプリケーション側のバグでtenant_idフィルタが漏れても、RLSが防御壁になります。

セキュリティ設計(テナント間のデータ隔離)

マルチテナントSaaSで最も重大なセキュリティインシデントは「テナントAのデータがテナントBに見えてしまう」ことです。以下の3層でデータ隔離を実装します。

  • RLS(Row Level Security): PostgreSQLのRLSでテナント間のデータ漏洩を防止。SET app.current_tenant = 'tenant_id' でセッションごとにテナントを設定し、ポリシーで自動フィルタリング
  • APIゲートウェイ: リクエストのJWTトークンからテナントIDを検証し、APIレイヤーでテナント横断アクセスをブロック
  • 監査ログ: テナント横断のデータアクセスを検知するアラートを設定。「テナントAのユーザーがテナントBのリソースにアクセスしようとした」ログを即座に検知

セキュリティテストとして、定期的にペネトレーションテストを実施し、テナント間のデータ漏洩がないことを確認してください。OWASP Top 10のA01(アクセス制御の不備)に該当するリスクです。

パフォーマンス設計(ノイジーネイバー問題)

ノイジーネイバー問題とは、1つのテナントが大量のリソースを消費し、他テナントのパフォーマンスに影響を与える問題です。行レベル分離型で特に顕著ですが、スキーマ分離型でも発生します。

対策 内容
レート制限 テナントごとのAPI呼出回数を制限
リソースクォータ テナントごとのDB容量・計算量を制限
自動スケーリング 負荷に応じてサーバーを自動増減
テナント分離 大規模テナントは専用インフラに移行

実装上のポイントとして、レート制限はRedisを使ったスライディングウィンドウ方式が効率的です。テナントごとに「1分間あたり100リクエスト」「1日あたり10,000リクエスト」などの制限を設定し、超過時は429(Too Many Requests)を返します。

マイグレーション戦略

マルチテナントSaaSのマイグレーション(スキーマ変更)は、分離パターンによって複雑さが大きく異なります。

行レベル分離型:通常のマイグレーションと同じ。1回の実行で全テナントに適用。最もシンプル。

スキーマ分離型:全スキーマに対してマイグレーションを順次実行するスクリプトが必要。並列実行でスピードアップ可能だが、途中で失敗した場合のロールバック戦略を事前に設計しておくこと。

DB分離型:全DBに対してマイグレーションを実行。Blue/Green デプロイメント方式で、旧バージョンと新バージョンを並行稼働させ、段階的に切り替えるのが安全です。

いずれのパターンでも、ダウンタイムゼロのマイグレーションを実現するために、カラム追加→データ移行→旧カラム削除の3段階デプロイを採用してください。

💬
マルチテナント設計は「後から変更するのが最も難しいアーキテクチャ決定」の1つです。MVP段階でも、ターゲット顧客のセキュリティ要件とスケール見通しを確認してから分離パターンを選んでください。FUNBREWではSaaSアーキテクチャ設計に関する無料相談を受け付けています。

あわせて読みたい

まとめ

マルチテナントSaaSの設計は、DB分離型・スキーマ分離型・行レベル分離型の3パターンから、テナント数・セキュリティ要件・運用コストに応じて選択します。

10社以下ならDB分離型、10〜100社ならスキーマ分離型、100社以上なら行レベル分離型が目安です。いずれのパターンでも、RLSの導入、APIレイヤーでのテナント検証、監査ログによる異常検知の3層セキュリティは必須です。

ノイジーネイバー問題にはレート制限とリソースクォータで対応し、大規模テナントは専用インフラへの移行も視野に入れてください。

マルチテナントSaaS設計のご相談は、お問い合わせからお気軽にどうぞ。FUNBREWでは無料相談を受け付けています。

よくある質問
マルチテナントSaaSの設計と実装について相談できますか?
はい、お気軽にご相談いただけます。FUNBREWでは、見積もり前にプロトタイプを作成し、完成イメージを確認しながら進める開発スタイルを提供しています。まずはお問い合わせフォームからご連絡ください。
開発期間はどのくらいかかりますか?
プロジェクトの規模によりますが、小規模で1〜3ヶ月、中規模で3〜6ヶ月、大規模で6ヶ月以上が目安です。まずはヒアリングで要件を整理し、具体的なスケジュールをご提案します。
開発後の保守・運用もお願いできますか?
はい、開発後の保守・運用サポートも提供しています。障害対応、機能追加、セキュリティアップデートなど、システムの安定稼働に必要なサポートを継続的に行います。

マルチテナントのご相談

お気軽にご相談ください。無料でアドバイスいたします。

この記事をシェア

マルチテナントのことならFUNBREWへ

要件整理から開発まで一貫して対応します。

最新情報をお届けします

IT活用のヒントやお役立ち情報を定期的にお届けします。

相談のハードル、下げました

まずは気軽にご相談ください

「まだ具体的に決まっていない」「とりあえず話を聞きたい」でも大丈夫。プロトタイプを見ながら、一緒にアイデアを形にしていきましょう。

相談無料 オンライン対応 1週間でプロトタイプ