アイデアから本番運用までのマルチテナントSaaS基盤
データ、権限、設定を明確に分離しながら、単一のプロダクトで複数の顧客環境を支えました。
- 顧客タイプ
- 初期段階のB2B SaaSプロダクト
- 業界 / 背景
- 複数顧客環境を支えるプロダクト設計
- 主な機能
- テナント分離 · ロールベースアクセス · 設定可能な機能
課題
顧客ごとのフォークを作らず、一つの基盤で複数顧客へ提供する必要がありました。テナントのデータ、設定、権限、機能アクセスは成長後も分離されなければなりません。
難しさ
テナント境界は認証、クエリ、バックグラウンド処理、分析、管理機能のすべてに関わります。一層の弱い境界が全体の分離を損なう可能性があります。
取り組み方
テナント解決をアプリケーションの明示的な責務にしました。共有サービスが権限、メディア、分析、AI機能を担い、設定とアクセスルールはテナント単位に保ちました。
アーキテクチャ / システム設計
WebアプリはAPIでテナントを確定し、その後に共有サービスが分離されたデータと設定へアクセスします。
- Webアプリ
- アプリケーションAPI
- テナント解決
- 業務サービス
- 分離されたデータと設定
主な機能
- テナント分離
- ロールベースアクセス
- 設定可能な機能
- サブスクリプション対応境界
エンジニアリング判断
- 業務ロジックより先にテナント文脈を解決する。
- 共有ロジックとテナント設定を分ける。
- 管理アクセスにも同じ分離保証を適用する。
成果
- 複数顧客環境を一つの基盤で支援
- 顧客別フォークを避けた再利用可能な設計
- SaaS成長に向けた明確な土台
この経験が示すこと
SaaSの拡張性は、後からインフラを足すことではなく、最初から製品とデータの境界を設計することから始まります。