
AWSを活用したマルチテナントSaaSの設計と実践~実践編~
AWS SBTハンズオンイベントに参加してきました
普段は東京で活動している私ですが、以前SaaS関連のイベントでお会いしたAWSの櫻谷さんが参加予定であることをConpassで見つけ、「週末だし、京都に行ってみようかな」という軽い気持ちで、AWS主催のSBTハンズオンイベントに参加してきました。
SBTのハンズオンイベントはこれまで開催されておらず、非常に貴重な体験となりました。

AWS SBTとは
SBTとは SaaS Builder Toolkit の略称で、Service Provider が User Onboarding、認証、Metrics など SaaS 事業者が共通で必要であろう Component を切り出し、Control Planeとしてデプロイできるようにしたものです。
詳細に関しては、Github、AWSの資料や書籍があるため、参照してください。
また、現在AWS SBTは開発段階のものでり、stableではないため破壊的変更が発生する可能性があるため、ご注意してください。
1. 環境構築
今回のハンズオンでは、まずSageMaker Studio Code Editor を用いた環境構築から始まりました。
昨年より、新規アカウントでのCloud9の利用に制限がかかっているため、その代替としてSageMaker Studioを活用しているようです。構築時、default VPCに問題があり少し手間取りましたが、AWSのスタッフの方にサポートいただき、問題なく完了しました。
参考: SageMaker Studio Code Editor
2. AWS CDK
次に、AWS CDK(Cloud Development Kit) を使用し、Lambda関数とDynamoDBを用いたシンプルなユーザー情報管理アプリを構築しました。
CDKはTypeScriptベースで、リソースの定義やポリシーの設定が簡単に行える点が魅力です。Terraformとの比較でいえば、cdktfもありますが、私が試したときは最新のTerraformバージョンに未対応(例:Bedrockの構築不可)であったため、AWSのサービス構築においてはCDKが実用的だと感じました。
構築コードは事前に用意されていたため、デプロイはスムーズに完了しました。
3. SaaSリファレンスアーキテクチャをデプロイ
次に、AWSが提供する「saas-reference-architecture-ecs」をデプロイし、Control Planeの挙動を体験しました。デプロイには約40分を要するため、その間に構成アーキテクチャの説明がありました。
Token Vending Machine
SBTの中でも注目すべき機能が「Token Vending Machine」です。これは、動的にスコープを制御し、特定のテナントにのみリソースアクセスを許可する仕組みです。
この機構を利用することで、マルチテナントSaaSのセキュリティとスケーラビリティが向上します。ハンズオンでは設定まで至りませんでしたが、今後自社でも試してみたいと思います。
サービスのTier設計
今回のサンプルSaaSは、Basic / Advanced / Premium の3つのTierに分かれており、それぞれのTierごとにECSなどのAWSリソースがテナント専用に分離されます。
現実のSaaSプロダクトではこのような綺麗な分離は難しいケースも多いですが、構造の理解には非常に有用な例でした。
4. 環境の削除とコスト注意点
環境の削除も構築と同様に40分ほどかかりました。利用コストは1日あたり約1,000円程度のため、個人でSBTを試す場合は費用にご注意ください。
削除時には、S3バケットの中身を先に削除しないと、CloudFormationでのスタック削除がエラーになります。該当のS3バケットは、CloudFormationのイベントログから特定可能です。
感想:AWS SBTが切り拓くSaaSの未来
ここ数ヶ月、生成AIやMCP(Modular Cloud Platform)といった新しい技術の登場により、SaaSのビジネスモデルが変化していくと強く感じています。
AWS SBTのように、SaaS構築のハードルを下げるツールが普及すれば、企業間のSaaS提供だけでなく、社内向けSaaSやチーム単位でのサービス開発も現実的になります。こうした内製SaaSがAPIベースで部署間連携を促進する未来に、大きな可能性を感じました。
最後に:AWS関連イベントに今後も注目
今回のようなAWS主催のハンズオンイベントは、最新のサービスやアーキテクチャを体験する絶好の機会です。AWS SBTやCDKをはじめ、今後もAWSがSaaS開発をどう支援していくのか注目していきたいと思います。