🥎
【イベントレポート】マルチテナントSaaSアーキテクチャの構築
公開
2025-02-20
文章量
約4198字

Yard 編集部
Yardの編集部が、テック業界の最新トレンドや知見について発信します。
目次
イベント概要
登壇者・モデレーター
講演者: 櫻谷 広人 氏(Amazon Web Services Japan 合同会社)
モデレーター: 小笹 佑京 氏(株式会社アンチパターン 代表取締役)
基調講演:櫻谷氏が語る「マルチテナントSaaSアーキテクチャの要点」
1. 書籍の特徴
2. SaaSとは何か? マルチテナントとは何か?
3. コントロールプレーン & アプリケーションプレーン
4. デプロイモデル:サイロ vs. プール
5. オンボーディングとアイデンティティ
6. テナント分離とセキュリティ
7. データパーティショニング
8. 運用監視・オブザーバビリティ
9. 生成AIやアプリを顧客オンプレに一部配置するサーバ(エッジ)配布型のSaaS
10. まとめ
視聴者Q&Aパネル:モデレーション by 小笹氏
1. ノイジーネイバー対策
2. JWT カスタムクレームへの情報量はどこまで?
3. 「シングルテナント」呼称の扱い
4. マルチテナントにおけるデータベースの選択肢(RDBかNoSQLか)
イベントを通じての学び・まとめ
イベント概要
- イベント名マルチテナントSaaSアーキテクチャの構築 - Forkwell Library #79
- 開催日時2025年1月21日(火)19:30〜21:00(オンライン)
- 主催 / 運営Forkwell
- テーマ・背景「複数のユーザー企業が同一のインフラ・アプリケーションを共有しつつ、統一された体験を提供する」 — マルチテナントアーキテクチャは、SaaS プロダクト開発で不可欠な技術要素。一方で、可用性やセキュリティ、運用効率などで独自の考慮事項が必要になり、多くのエンジニアがその構築パターンやベストプラクティスを模索している。本イベントでは、AWSのリファレンスアーキテクチャパターンなどを基にまとめられた書籍『マルチテナントSaaSアーキテクチャの構築 ― 原則、ベストプラクティス、AWSアーキテクチャパターン』を取り上げ、訳者の 櫻谷 広人 氏 がエッセンスを紹介。さらに株式会社アンチパターン 代表取締役 小笹 佑京 氏 をモデレーターに迎え、ディスカッション形式で深掘りした。
登壇者・モデレーター
講演者: 櫻谷 広人 氏(Amazon Web Services Japan 合同会社)
- AWSのパートナーソリューションアーキテクトとして、ソフトウェアベンダーやSaaS事業者の技術支援を担当。
- 訳書に『マルチテナントSaaSアーキテクチャの構築』があり、AWSのマルチテナントリファレンスアーキテクチャ周辺にも精通。
モデレーター: 小笹 佑京 氏(株式会社アンチパターン 代表取締役)
- BtoB向けSaaSを“作るためのSaaS”を提供するなど、SaaSプラットフォーム事業を展開。
- 過去にAWSイベントで海外著者の講演を実際に聞くなど、SaaSアーキテクチャ知見を多数保有。
基調講演:櫻谷氏が語る「マルチテナントSaaSアーキテクチャの要点」
1. 書籍の特徴
- 本書タイトル:『マルチテナントSaaSアーキテクチャの構築 ― 原則、ベストプラクティス、AWSアーキテクチャパターン』
- 表紙の動物が「大耳キツネ」 として有名(オライリーの動物本ならでは)。
- 全17章 構成のボリューム。1章~2章・17章あたりを読むと全体像が把握しやすい。
2. SaaSとは何か? マルチテナントとは何か?
- SaaSは ビジネスモデル であり、特定の技術スタイルを指すわけではない。
- 従来のパッケージ販売とは異なり、サービスとしてソフトウェアを提供 する形態。
- 「なぜSaaS化するのか?」= ビジネスのスケール を追求するためが本質的目的。
- マルチテナント は、複数テナントを1つのリソース/アプリで共有 するモデル。その一方で、中央管理 (コントロールプレーン) によりテナント毎の利用状況や差分をまとめて管理する。
3. コントロールプレーン & アプリケーションプレーン
- SaaSアーキテクチャの大きな特徴:
- コントロールプレーン (テナント導入/ユーザー管理/課金などを包括)
- アプリケーションプレーン (実際のプロダクト機能・ビジネスロジック)
- コントロールプレーンでオンボーディングやテナントID管理を自動化することで、SaaS特有の拡張性やセルフサインアップを実現。
4. デプロイモデル:サイロ vs. プール
- 従来「シングルテナント」「マルチテナント」と呼ばれていたものを、本書では「サイロ (専用リソース) と「プール (共有リソース)」と表現。
- サイロ… テナント毎に専用インフラを切り分け → セキュリティ高い & ノイジーネイバー問題なし。但しコスト高く運用効率も下がりやすい。
- プール… テナントでリソースを共有 → 運用効率・コスト削減ができるが、ノイジーネイバーやセキュリティ分離の懸念。
- ハイブリッド (一部サイロ・一部プール) やセルベースアーキテクチャの考え方も。
- 組織のSaaS拡大に伴って サイロ→プール or プール→サイロ の移行も考え得るため、進化的なアプローチが重要。
5. オンボーディングとアイデンティティ
- オンボーディング:テナントをシステムに導入し、セルフサインアップ等で即時に利用開始できるかが“SaaS体験”に直結。
- アイデンティティ:ユーザーIDだけでなく「テナント情報」を含むトークン (JWTなど) を各マイクロサービス間で安全に受け渡す。
- テナントメタデータ (ティア、ロールなど) をカスタムクレームに含む手法が一般的。
6. テナント分離とセキュリティ
- マルチテナント下で最も重要: 誤って他社(他テナント)データにアクセスしない ための分離。
- DBテーブルやS3オブジェクトを分割/混在させるパターンで、ローレベルセキュリティやIAMポリシーを活用する。
- ノイジーネイバー (1テナントの高負荷が他へ影響) を防ぐために、必要に応じてサイロ化/ティアリング/スロットリング/キュー導入など多層的に対策。
7. データパーティショニング
- RDB、NoSQL、オブジェクトストレージなど、テナントのデータをどう切り分けるかは一大テーマ。
- RDB:テーブルを共有 (プール) → カラムでテナントID管理 or スキーマ分割、など。
- NoSQL:DynamoDBのパーティションキーをテナントIDにする & IAMでアクセス制御。
- S3:バケット共有でもPrefixやタグ付けでテナント識別する等。
8. 運用監視・オブザーバビリティ
- ログやメトリクスにテナントIDを紐付けて収集しないと、問題発生時にどのテナントが影響しているか把握できない。
- 運用フェーズでテナントごとの利用傾向やリソース消費を可視化すれば、ノイジーネイバー対策や将来的なプール→サイロの切り替え判断にも役立つ。
9. 生成AIやアプリを顧客オンプレに一部配置するサーバ(エッジ)配布型のSaaS
- 著者が“SaaS-everywhere” (“SaaS-eua” と呼ぶ) として定義。
- エッジコンピューティングやハイブリッド環境をマルチテナントに組み合わせる先進領域の紹介章もある。
10. まとめ
- SaaSはビジネスモデル である。アーキテクトが必要なことは、テナントを中心に“サービス”設計を行うこと。
- 「コントロールプレーン + アプリケーションプレーン」 が大きなポイントで、さらにデプロイモデル (サイロvsプール) を適切に決める。
- あらゆる観点でテナントIDを一貫して取り扱う → セルフサインアップ、ログ/メトリクス、セキュリティ、課金などがスマートに実現。
- 書籍後半では移行戦略/生成AIとの組み合わせや先進事例にも踏み込み、全方位的にマルチテナントのベストプラクティスを学べる。
視聴者Q&Aパネル:モデレーション by 小笹氏
講演後、フォークウェルのチャットやスライドから寄せられた質問に対して、櫻谷氏・小笹氏が丁寧に回答。いくつか印象的な質疑をピックアップ。
1. ノイジーネイバー対策
- 質問:「ノイジーネイバー対策、どんな手法を優先するべき?」
- 櫻谷氏:
- 負荷をかけるテナントをまず可視化・把握が必須(テナントID付きメトリクス)。
- スロットリング(レート制限) やキューイングなど非同期化で対応。
- もしくはハイブリッドに“サイロ切り出し”すればリソース完全分離できる。
- 小笹氏:
- 「最初はプール型で開始→利用状況を見てサイロ化」も一般的。
- テナント活動データの計測を怠ると対策判断が難しいので、オブザーバビリティを徹底することが重要。
2. JWT カスタムクレームへの情報量はどこまで?
- 質問:「JWTトークンにテナント情報を色々持たせることは多いけど、どこまで持たせてよいか?」
- 櫻谷氏:
- ロール(管理者か一般か)など、アプリの認可判定に必須な情報はクレームに含める例が多い。
- 大きすぎるトークンはパフォーマンスに影響があるため、あくまで実装に必要な最小限に抑える。
3. 「シングルテナント」呼称の扱い
- 質問:「シングルテナントなSaaSアーキテクチャって呼び方、よく聞きますが?」
- 櫻谷氏:
- 本書では「サイロモデル」と呼ぶことを推奨。
- すべてのSaaSは“コントロールプレーン”が共通であるため、マルチテナント的な性質を持つ。
- 「シングルテナントSaaS」は用語が紛らわしいので避けたい。
4. マルチテナントにおけるデータベースの選択肢(RDBかNoSQLか)
- 質問:「マルチテナントでRDBを共有するパターン(プール)は、PostgreSQLのRow Level Securityなどを使う? 他例は?」
- 櫻谷氏:
- RDBならばPostgreSQLのRow Level Securityが実装の一例。
- DynamoDBではIAMポリシーでパーティションキー(テナントID)単位のアクセス制御が実現しやすい。
- いずれも“誤実装”によるクロステナント侵害を防ぐ多層防御が肝要。
イベントを通じての学び・まとめ
- SaaS開発は“テナント”をどこまで中心に据えられるか
- アプリ設計、運用監視、セキュリティ、請求など、あらゆる領域でテナントIDがキーとなる。
- 開発者が煩雑にならないよう「コントロールプレーン + テナントコンテキスト + JWT」などの手法で隠蔽を図る。
- デプロイモデル(Silo vs Pool)の選択は多次元で柔軟に
- プール方式はコスト効率が高い反面、ノイジーネイバー対応を多層的に考慮する必要あり。
- 大規模テナントや厳格セキュリティを求めるユーザーにはサイロで対応する等、ハイブリッド構成がベター。
- セルフサインアップ&オンボーディングの自動化
- SaaS体験の鍵。導入リードタイムを最小化し、新規テナントをスムーズに取り込む。
- 購入フローや契約プラン(ティアリング)との連携も合わせて検討を。
- 生成AIやエッジ分散など先進的な話題も
- 新しいトレンドとの組み合わせ事例にも触れているため、今後のSaaS進化を見据えたフレームワークを得られる。
イベントは参加者から「テナント運用に関する課題を整理できた」「ノイジーネイバー対策やオンボーディング自動化など、すぐに使えるノウハウが得られた」などの声が多数上がり、マルチテナントSaaSの原則と実践を結びつける有意義な勉強会となった。
Yardでは、テック領域に特化したスポット相談サービスを提供しています。
興味がある方は、初回の無料スポット相談をお申し込みください。
また、資料請求やお問い合わせもお待ちしております。テック領域の知見を獲得し、事業成長を一緒に実現していきましょう。