Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ビジネスの成長を加速するB2B SaaSのスケーリングアーキテクチャ / Scaling...

ビジネスの成長を加速するB2B SaaSのスケーリングアーキテクチャ / Scaling Architecture for B2B SaaS to Accelerate Business Growth

「アーキテクチャConference 2024」に於いて
2024/11/26
浜松町コンベンションホール & Hybird スタジオ

▼詳解記事
https://findy-tools.io/articles/archcon-antipattern/46

▼SaaSus Platform
https://saasus.io/

Yuki.Ozasa

January 30, 2025
Tweet

More Decks by Yuki.Ozasa

Other Decks in Technology

Transcript

  1. © 2024 Anti-Pattern Inc. All rights reserved. ビジネスの成長を加速する B2B SaaSのスケーリングアーキテクチャ

    株式会社アンチパターン 代表取締役 小笹佑京 アマゾン ウェブ サービスジャパン合同会社 パートナーソリューションアーキテクト 櫻谷広人
  2. © 2024 Anti-Pattern Inc. All rights reserved. 自己紹介 ソフトウェアエンジニア 兼

    CEO 兼 VPoE 小笹 佑京(Ozasa Yuki) 立教大学卒業後、2014年に株式会社イノベーションに入社。 B2BマーケティングオートメーションSaaSの開発業務に従事。 2018年より開発本部長。 2019年7月株式会社アンチパターンを創業。 B2B SaaS歴10年目に突入。 ▪主な登壇暦 ・AWS主催 モダンアプリケーション開発の新潮流 2023 ・Postman API Night Tokyo 2024 Spring ・JP_Stripes 東京 Vol.17 ・日本CTO協会主催 Developer eXperience Day 2024 2
  3. © 2024 Anti-Pattern Inc. All rights reserved. 今回のテーマとアジェンダ ビジネスの成長を加速する B2B

    SaaSのスケーリングアーキテクチャ • SaaSとは(アーキテクチャに影響を与える特徴について) • SaaSコントロールプレーン • SaaSアプリケーションプレーンとデ プロイメントモデル • まとめとおまけ 7
  4. © 2024 Anti-Pattern Inc. All rights reserved. SaaSとは SaaSに合わせて業務プロセスを変革することに価値がある ユーザー

    SaaS ベンダー ナレッジの提供 (Fit to Standard) 活用データの 提供 活用データの 分析 ナレッジを活かした 機能開発 SaaSとは、「ある業務に対するベストプラクティスを提供 するビジネスおよびソフトウェアデリバリーのモデル」 9
  5. © 2024 Anti-Pattern Inc. All rights reserved. SaaSの活用メリット 営業管理ソフト 会計ソフト

    労務ソフト 営業管理SaaS 会計SaaS 労務SaaS コスト & リスク コスト & リスク => 割り勘効果を得ている 自社開発 & パッケージソフト SaaS 利用 10
  6. © 2024 Anti-Pattern Inc. All rights reserved. SaaS提供事業者 SaaSを提供する上でのカバー範囲 従来型パッケージと比較して、SaaSの提供はカバー範囲が広い。

    アプリケーション開発者 作成 従来型パッケージ提供事業者 顧客企業 システム 構築担当者 システム 運用担当者 利用者 利用者 利用者 アプリケーション開発者 カスタマーサクセス SRE 利用者 顧客企業 利用者 顧客企業 利用者 顧客企業 ・・・・・・・・ アプリ開発 システム 構築・運用 利用 SaaS事業者は契約企業分全てのシステム構築・運用の責務を持つ。 そのためマルチテナントの構成を検討し実装/運用する必要がある。 従来型ソフトウェアは 各社でシステムを構築運用していた。 アプリ開発 システム 構築・運用 利用 11
  7. © 2024 Anti-Pattern Inc. All rights reserved. SaaS提供事業者 SaaSを提供する上でのカバー範囲 従来型パッケージと比較して、SaaSの提供はカバー範囲が広い。

    アプリケーション開発者 作成 従来型パッケージ提供事業者 顧客企業 システム 構築担当者 システム 運用担当者 利用者 利用者 利用者 アプリケーション開発者 カスタマーサクセス SRE 利用者 顧客企業 利用者 顧客企業 利用者 顧客企業 ・・・・・・・・ アプリ開発 システム 構築・運用 利用 SaaS事業者は契約企業分全てのシステム構築・運用の責務を持つ。 そのためマルチテナントの構成を検討し実装/運用する必要がある。 従来型ソフトウェアは 各社でシステムを構築運用していた。 アプリ開発 システム 構築・運用 利用 如何に効率的に スケールさせられるかが 事業成長の鍵を握る 12
  8. © 2024 Anti-Pattern Inc. All rights reserved. テナントとは テナントとは、SaaSを利用するユーザーの契約単位 テナント区画

    テナント区画 テナント区画 共有設備・資源 • 水道 • 電気 • ガス • 共同エントランス オフィス ビル SaaSにおけるテナントの単位は、提供するサービスの内容や顧客の利用方 法などにより、会社や部署、顧客のグループ一人ひとりなど、様々存在する 15
  9. © 2024 Anti-Pattern Inc. All rights reserved. スケールを支える技術要素 管理コンソール オンボーディング

    請求 ID 管理 テナント管理 監視 ユーザー管理 分析 デプロイ アプリケーションプレーン (顧客に価値を届ける機能群) コントロールプレーン (SaaSに必要な管理機能) デプロイメントモデル サイロ Model Architecture プール Model Architecture ブリッジ Model Architecture ハイブリッド Model Architecture 16
  10. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 自己紹介 櫻谷 広人 アマゾンウェブサービスジャパン パートナーソリューションアーキテクト ISV/SaaS の AWS パートナーを中心に技術 支援をしています。 好きな AWS サービス Amazon EventBridge AWS Step Functions 18
  11. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 私のパートでお話しすること • コントロールプレーンとは? ➢ なぜコントロールプレーンが必要か ➢ コントロールプレーンを構成する代表的な機能 ➢ 実装のベストプラクティス、ツール、リファレンス紹介 19
  12. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. SaaS は 2 つのパーツに分けられる コントロールプレーン 管理コンソール オンボーディング 請求 テナント管理 ID 管理 監視 デプロイ ユーザー管理 分析 マルチテナント マイクロサービス Web フロントエンド マルチテナント マイクロサービス マルチテナント マイクロサービス マルチテナント マイクロサービス アプリケーションプレーン バックエンドアプリケーション 複数のテナントにまたがって統一された管理体験を 提供するための基本的なコンポーネント群 API 20
  13. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. なぜコントロールプレーンが必要なのか テナントと ユーザ管理 分析とレポート スムーズな オンボーディング 売上の成長 SaaS とは、一言で言うとスケールビジネス サービスの改善 • 導入から価値実現までをスムーズに達成できるか? • 急激なテナントの増加に運用を含めて対応できるか? • サービス改善のための洞察が得られているか? • フィードバックを迅速に反映できる仕組みがあるか? etc. 21
  14. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. サービス中心のアプローチ 例)レストランにおけるサービス 機能 美味しい料理 サービス 店員さんの対応 ・注文対応 ・水汲みの気配り ・対応速度 顧客は料理のおいしさだけでなく、サービスも含めた レストランにおける全体的な体験に価値を見出す。 22
  15. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. SaaS におけるサービス体験 場所を問わないアクセス 継続的な機能追加 外部サービスとの連携 フィードバック体験 手厚いサポート体制 サービスの安定性 23
  16. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Q. コントロールプレーンはどの SaaS でも必要なものですか? 必要です。システムに「テナント」という概念が導入されると同時に、 それらを取り扱う仕組みを準備する必要があります。 Q. コントロールプレーンはいつ実装すればよいですか? サービスインの時点から用意しておいてください。ただし全ての機能を 最初から実装する必要はなく、オンボーディングなど重要度の高いものから 優先して取り組むことも可です。 よくある質問 24
  17. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. コントロールプレーンは SaaS 開発の第一歩 “アーキテクトやビルダーは、アプリケーションの マルチテナントの側面から SaaS の議論を始めたいと 思うことがよくありますが、SaaS アーキテクチャの 基礎はコントロールプレーンから始まります。 多くの点において、コントロールプレーンは強制的 な機能として働き、エンジニアは開発の初期段階 からテナントのさまざまな側面を考慮し、対応する ことが求められます。” Tod Golding, AWS 価格: 4,950 円 (税込) 発売日: 2025年1月17日 日本語版の発売が決定! 25
  18. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. コントロールプレーンの主な機能 コントロールプレーン 管理コンソール オンボーディング 請求 テナント管理 ID 管理 監視 デプロイ ユーザー管理 分析 マルチテナント マイクロサービス Web フロントエンド マルチテナント マイクロサービス マルチテナント マイクロサービス マルチテナント マイクロサービス アプリケーションプレーン バックエンドアプリケーション API 26
  19. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. オンボーディング テナント SaaS プロバイダー 管理画面 オンボーディング サービス テナントが SaaS を契約してから使い始めることができるようになるまでの エンドツーエンドのセットアップ作業 テナント管理 サービス LP ユーザー管理 サービス 請求管理 サービス プロビジョニング サービス 外部の請求 プロバイダー IdP テナント管理 データベース テナントの作成 ユーザーの作成 IdP の設定 請求の設定 テナントリソースの 作成 27
  20. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. テナント管理 テナントごとの情報、契約プラン、ステータスなどを一元管理 管理者による CRUD 操作やオンボーディング状況のトラッキングができる機能も テナント1 テナント 2 テナント 3 テナント n Tenant id Admin email tier status IdP URL tenant1 [email protected] Basic active https://auth.example.com tenant2 … Advanced onboarding … tenant3 … Premium inactive … 28
  21. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. ID 管理 (SaaS アイデンティティの構築) ユーザーアイデンティティ テナントアイデンティティ • テナント ID • 会社名 • ステータス • ティア (契約プラン) SaaS アイデンティティ • ユーザーとテナントに 関する情報を集約し、 IdP で中央管理する • トークンベースの認証で 複数サービス間での利用 をサポートする (ex. JSON Web Token) • テナントによって管理さ れている個別の IdP との 連携や、それに伴うサイ ンインフローの整備も 含まれる • 名前 • 電話番号 • メールアドレス • ロール { "sub": "jane", "email": "[email protected]", "tenant_id": "tenant1", "tenant_tier": "basic" } JWT 29
  22. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. SaaS アイデンティティを導入すると… IdP リダイレクト 3 Web サーバ ー 2 1 4 5 テナント 初回アクセス 認証成功 認証済み アクセス ➢ テナント管理サービスへの問い合わせ、データベースのクエリがなくなり処理が軽量に ➢ ヘッダーにトークンを載せるだけでサービス間での受け渡しが可能 バックエンドの 呼び出し HTTP ヘッダー Authorization: Bearer <Token> マイクロ サービス マイクロ サービス テナントのメタデータを 合わせて IdP に登録しておく 30
  23. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 請求 マルチテナント マイクロサービス Web フロントエンド マルチテナント マイクロサービス アプリケーションプレーン バックエンドアプリケーション 利用量の計測/送信 • リクエスト数 • データ量 • アクティブユーザー数 etc. テナント情報の連携 • アカウントの作成 • 請求先の登録 • 契約プランの設定 etc. オンボーディング サービス コントロールプレーン サードパーティの 請求プロバイダー 31
  24. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. デプロイ 注文サービス マイクロサービスベースのアプリケーション テナント1 テナント2 テナント3 商品サービス 注文サービス テナント4 商品サービス 共有テナント環境 専用テナント環境 注文サービス 商品サービス テナント5 AWS CodePipeline 一般的な CI/CD パイプライン+??? 32
  25. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • コントロールプレーンの機能は、比較的どの SaaS でも同じで共通化できる ex. オンボーディング、テナント管理、請求 • コントロールプレーン自体がビジネスの付加価値を生み出すわけではない。 実装されていて当たり前だが、実装されていないと大きく不利になる。 • どの技術でも実装できる ex. コンテナ/サーバーレス、Java/Python、同期/非同期 コントロールプレーンの実装を考える SaaS 開発のとても重要なパーツである一方で、 時間をかけて一からスクラッチで実装するものでもない 33
  26. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. コントロールプレーンの実装例: Amazon EKS オンボーディング サービス テナント プロビジョニング サービス アプリケーションプレーン Namespace: tenant2 Namespace: control-plane Namespace: tenant1 Namespace: pool Virtual Private Cloud (VPC) AWS アカウント AWS CodePipeline AWS CodeCommit AWS CodeBuild 共有アカウント、共有 VPC、EKS の場合 コントロールプレーン SaaS アプリケーション 34
  27. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. さまざまなリファレンスアーキテクチャ Amazon ECS Amazon EKS サーバーレス ➢ Amazon ECS SaaS ➢ Amazon EKS SaaS ➢ Serverless SaaS • SaaS は特定の技術スタックに縛られない • スケールする仕組みであるコントロールプレーンの構築が重要 35
  28. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. SaaS Builder Toolkit for AWS (SBT) とは • SaaS のベストプラクティスを実装するために使用できる開発者向けツールキット • AWS Cloud Development Kit (CDK) をベースに構成されている • 再利用可能なコンポーネントを使用して、AWS 上にコントロールプレーンの リソースを構築 • アプリケーションプレーンとの接続をサポートするライブラリも提供 • サードパーティの ISV 製品との連携も • オープンソース (Apache-2.0 ライセンス) GitHub: awslabs/sbt-aws 36
  29. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. SBT の全体像 API Admin console CLI Multi-tenant S3 (De)- provisioning User Tiering Billing Metrics ポイントソリューション TVM * Multi-tenant SQS Dashboard and more… SaaS application アプリケーションプレーン Core Utils Tenant management Metrics Tier management System user management Tenant user management Billing Onboarding コントロールプレーン * TVM: Token Vending Machine Amazon EventBridge * 開発中の機能を含む 37
  30. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. SBT コントロールプレーン Amazon API Gateway UserMgmt TenantDetails Amazon Cognito Amazon EventBridge Iauth Interface TenantMgmt CLI / API SaaS 管理者 TenantConfig Amazon CloudFront Amazon Simple Storage Service (Amazon S3) AWS WAF 管理画面 (オプション) AWS Lambda Amazon DynamoDB プロビジョニングなど 各種イベントを通知 アプリケーション プレーン 38
  31. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. コントロールプレーンの設定 import { CognitoAuth, ControlPlane } from '@cdklabs/sbt-aws'; import { Stack } from 'aws-cdk-lib'; import { Construct } from 'constructs'; export class ControlPlaneStack extends Stack { public readonly regApiGatewayUrl: string; public readonly eventBusArn: string; constructor(scope: Construct, id: string, props: any) { super(scope, id, props); const cognitoAuth = new CognitoAuth(this, 'CognitoAuth', { systemAdminRoleName: 'SystemAdmin’, systemAdminEmail: '[email protected]’, }); const controlPlane = new ControlPlane(this, 'ControlPlane', { auth: cognitoAuth, }); this.eventBusArn = controlPlane.eventManager.busArn; this.regApiGatewayUrl = controlPlane.controlPlaneAPIGatewayUrl; } } ※ IdP として Amazon Cognito を利用。IAuth インターフェースを実装していれば、任意の IdP に差し替え可能 39
  32. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. コントロールプレーンのデプロイ import * as cdk from 'aws-cdk-lib'; import { ControlPlaneStack } from '../lib/control-plane'; const app = new cdk.App(); const cp = new ControlPlaneStack(app, 'ControlPlaneStack', {}); npm run build cdk bootstrap cdk deploy ControlPlaneStack 40
  33. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. オンボーディングの流れ SaaS 管理者 Amazon API Gateway TenantDetails Amazon EventBridge TenantMgmt API POST /tenants テナント情報の保存 イベントの発行 { "source": "controlPlaneEventSource", "detail-type": "onboardingRequest", "detail": { "tenantId": "guid string", "tenantName": "tenant$RANDOM", "email": "[email protected]", "tier": "basic", "tenantStatus": "In progress" } } アプリケーション プレーン サブスクライブ 41
  34. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. アプリケーションプレーンの機能 • Core Utils ➢ ScriptJob: コントロールプレーンのテナントオンボーディングのワークフローで発生する、 プロビジョニング/デプロビジョニングのイベントをトリガーに任意のジョブを実行できる ユーティリティ コントロールプレーン プロビジョニング/デプロビジョニング イベント レスポンス EventBridge AWS Step Funcxtions AWS Step Functions AWS CodeBuild プロビジョニングワークフロー provisioning.sh AWS Step Funcxtions AWS Step Functions AWS CodeBuild デプロビジョニングワークフロー deprovisioning.sh テナント環境 リソースの作成/削除等 42
  35. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Token Vending Machine (トークン自動発行機) マルチテナント環境において、ランタイムでアプリケーションが使うクレデンシャルの スコープを動的に絞り込む技術/方法。 { "Effect": "Allow", "Action": [ "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:UpdateItem" ], "Resource": "arn:aws:dynamodb:*:*:table/product-table", "Condition": { "ForAllValues:StringEquals": { "dynamodb:LeadingKeys": [ "${aws:PrincipalTag/TenantId}" ] } } } 例: DynamoDB の RLS Condition の dynamodb:LeadingKeys を利用して、タ グベースでテナントが操作できるアイテムを 絞り込む ここでの課題は • どうやって動的なポリシーを適用するか? • テナントのコンテキストはどこから注入するか? 43
  36. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Token Vending Machine import { TokenVendingMachine } from "@aws/sbt-point-solutions-lib"; const tvm = new TokenVendingMachine(true); process.env.IAM_ROLE_ARN = /* IAM role to be assumed */ const response = tvm.assumeRole(jwt, 900) .then(async (creds: string) => { const client = new DynamoDBClient({ credentials: { accessKeyId: creds.AccessKeyId, secretAccessKey: creds.SecretAccessKey, sessionToken: creds.SessionToken}); }); https://github.com/awslabs/sbt-aws/blob/main/src/point- solutions/libraries/src/token-vending-machine/README.md 詳しい使い方はこちら 44
  37. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. サードパーティの ISV インテグレーション • API マネタイズ • 従量課金 • 請求および支払いの 自動化 GitHub: Moesif/sbt-aws-moesif 45
  38. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. ECS SaaS リファレンスアーキテクチャ on SBT GitHub: aws-samples/saas-reference-architecture-ecs 46
  39. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. © 2024 Anti-Pattern Inc. All rights reserved. SaaSアプリケーションプレーンと デプロイメントモデル
  40. © 2024 Anti-Pattern Inc. All rights reserved. スケールを支える技術要素 管理コンソール オンボーディング

    請求 ID 管理 テナント管理 監視 ユーザー管理 分析 デプロイ アプリケーションプレーン (顧客に価値を届ける機能群) コントロールプレーン (SaaSに必要な管理機能) デプロイメントモデル サイロ Model Architecture プール Model Architecture ブリッジ Model Architecture ハイブリッド Model Architecture 48
  41. © 2024 Anti-Pattern Inc. All rights reserved. SaaSデプロイメントモデル サーバ DB

    サーバ DB サーバ DB テナントA用 テナントB用 テナントC用 サイロ サイロモデルでも、コードベースは1つ (会社ごとのカスタマイズは行わない) 49
  42. © 2024 Anti-Pattern Inc. All rights reserved. SaaSデプロイメントモデル サーバ DB

    テナントA,B,C共有 プール 共用インフラでも適切な論理テナント分離を考える 50
  43. © 2024 Anti-Pattern Inc. All rights reserved. SaaSデプロイメントモデル DB サーバ

    DB DB テナントA用 テナントB用 テナントC用 ブリッジ 分離した部分を意識しないでよいプログラミングを心がける 51
  44. © 2024 Anti-Pattern Inc. All rights reserved. データ分離にも色々なパターンが存在(RDB編) テナント1 テナント2

    テナント3 テナント4 テナントID テナント5 テナント テナント テナント テナント テナント テナント テナント データベース分離 スキーマ(orテーブル)分離 行分離 セキュリティ要件と性能 運用負荷などのバランスで選定 52
  45. © 2024 Anti-Pattern Inc. All rights reserved. SaaSデプロイメントモデルごとの特徴 サイロ プール

    ブリッジ ・ユーザ認証 ・テナント識別 ・データベース切替 ・運用コスト ・複雑度 ・テナント分離 (主にセキュリティと性能) 不要な場合あり 不要 不要 大 小 高 必要 必要 不要 小 中 比較的小 必要 必要 必要 中 大 中 アプリケーションで 53
  46. © 2024 Anti-Pattern Inc. All rights reserved. SaaSアーキテクチャ アーキテクチャを検討する上で重要な要件 54

    ビジネス要件 テナント要件 技術要件 対象市場(想定テナント数) コンプライアンス セキュリティ 分離(隔離)性 可用性 認証基盤 ノイジーネイバー データ移行 ストレージ アジリティ プライシング チーム
  47. © 2024 Anti-Pattern Inc. All rights reserved. SaaSデプロイメントモデル サーバ DB

    サーバ DB サーバ DB テナントA用 テナントB用 テナントC用 サイロ サイロモデルでも、コードベースは1つ (会社ごとのカスタマイズは行わない) 55
  48. © 2024 Anti-Pattern Inc. All rights reserved. サイロモデルの運用 テナントA テナントB

    テナントC テナントD テナントE テナントF テナントZ テナントごとにリソースが存在するので、テナントごとの状況をモニタリングしやすい しかし、集積効果によるコストメリットが得られない上、運用コストがかかる 56
  49. © 2024 Anti-Pattern Inc. All rights reserved. SaaSデプロイメントモデル サーバ DB

    テナントA,B,C共有 プール 共用インフラでも適切な論理テナント分離を考える 57
  50. © 2024 Anti-Pattern Inc. All rights reserved. プールモデルの運用 ノイジーネイバー問題 複数のテナントで同一のシステムを利用する場合、

    特定のテナントの積極的な利用がシステムリソースを逼迫し、 その他のテナントに影響を与える問題。 図の引用元: https://learn.microsoft.com/en-us/azure/architecture/antipatterns/noisy-neighbor/noisy-neighbor 58
  51. © 2024 Anti-Pattern Inc. All rights reserved. ノイジーネイバーの検出: テナントごとのリソース使用量を可視化する。 リソース効率化:

    非同期化が可能なものはオフピーク時に実行。 タイムアウトや処理件数の上限を設け、高負荷にならないようにするなど。 テナントもしくはティアごとに制限: スロットリングやレートリミットを導入。 ティアによってエンドポイントを分けAPI Gatewayごと分けてしまうなど。 プールモデルの運用 59 図の引用元: https://learn.microsoft.com/en-us/azure/architecture/antipatterns/noisy-neighbor/noisy-neighbor
  52. © 2024 Anti-Pattern Inc. All rights reserved. ハイブリッドモデルの運用 ハイブリッドモデルの採択なども検討できる サーバ

    DB テナントA用 サーバ DB テナントB用 テナントC用 アドバンスドティア ベーシックティア 60
  53. © 2024 Anti-Pattern Inc. All rights reserved. SaaSデプロイメントモデル 61 デプロイメントモデルは、事業の成長や提供価値の変容に合わせて、

    継続的に変更を加えるものと捉えておくべき より発展的なアプローチとしての Mixed Mode デプロイメントモデル Order Order Product Invoice Shipping Queue Queue 図の引用元:https://www.youtube.com/watch?v=xlAXldBt7I0 テナント1 テナント2 テナント1 テナント2 テナント1 テナント2 ブリッジ プール ブリッジ プール
  54. © 2024 Anti-Pattern Inc. All rights reserved. SaaSデプロイメントモデル 62 テナント2,3用

    サービス群 テナント1用 サービス群 ルーティング テナント1 テナント2 テナント3 • ドメイン駆動型 • データ駆動型 などの方式を学び、「どの ようにテナントコンテキス トを引き回せる状態にする か」がデプロイメントモデ ルの柔軟性に影響がある。 要参照:https://aws.amazon.com/jp/blogs/news/tenant-routing-strategies-for-saas-applications-on-aws/ テナントのルーティング方式についても検討を進める必要がある
  55. © 2024 Anti-Pattern Inc. All rights reserved. SaaSデプロイメントモデル 生成AI活用のSaaSにおいてアカウントレベルのブリッジパターンなども見受けられるため、 デプロイメントレベルは今後も継続的に発展系が見られるはず

    テナント1 テナント2 テナントデータ 学習済み基盤モデル テナントデータ 学習済み基盤モデル 汎用基盤モデル Shared DB アプリ SaaSプロバイダAWSアカウント 顧客AWSアカウント 顧客AWSアカウント
  56. © 2024 Anti-Pattern Inc. All rights reserved. まとめ SaaSとは、 「ある業務に対するベストプラクティスを提供するビジネスお

    よびソフトウェアデリバリーのモデル」 SaaSコントロールプレーンは、 「SaaS開発の第一歩」 SaaSアプリケーションプレーンとデプロイメントモデルは、 「顧客に価値を届け続けるために変化していくもの」 65 正解が無いからこその、より一層楽しいSaaSライフを!
  57. © 2024 Anti-Pattern Inc. All rights reserved. プロダクトのご紹介 弊社がもつ SaaS

    開発のナレッジと米国における最先端のトレンドを取り入れ、 SaaS 開発 / 運用 / 販売を支援する SaaS を開発 / 提供 66 - SaaS Control place as a Service -
  58. © 2024 Anti-Pattern Inc. All rights reserved. コントロールプレーン アプリケーションプレーン 内製開発

    SaaSus Platformを活用することで、業務ナレッジにフォーカスした機能開発を実現 SaaSus Platformのご紹介 67 デプロイメントモデル サイロ Model Architecture プール Model Architecture ブリッジ Model Architecture ハイブリッド Model Architecture 管理コンソール オンボーディング 請求 ID 管理 テナント管理 監視 ユーザー管理 分析 デプロイ
  59. © 2024 Anti-Pattern Inc. All rights reserved. 企業情報 「日本のソフトウェアエンジニアを憧れの職業へ」を掲げるスタートアップ 企業概要

    会社名 株式会社アンチパターン (Anti-Pattern Inc.) 設立 2019年7月1日 代表者 小笹 佑京 (おざさ ゆうき) 所在地 東京都港区南青山3-15-9 MINOWA表参道3階 社員数 14名(2024年7月1日時点) 資本金 50,000千円 主要株主 小笹佑京 決算期 6月 公式WEB/SNS https://anti-pattern.co.jp / X : @antipatterninc 組織内製化診断から実行までを包括的に支援するサービス ソフトウェア開発内製化支援 様々な企業に対するソフトウェア開発の支援事業 アジャイルのアプローチでプロダクト価値を最大化 ソフトウェア開発支援 優秀なエンジニアと、高付加価値/高単価な案件を依頼 したい企業のマッチングサービス AWSエンジニア特化型マッチングサービス Webアプリケーションをテーマにソフトウェア開発を4年間かけて学びデ ジタルネイティブ人材を輩出 大学生向けプログラミング学習コミュニティ ソフトウェアエンジニアに必要な場を提供 エンジニア向け勉強会/交流会/セミナーなども実施 エンジニア特化型コミュニティスペース 実務シミュレーションによるエンジニアのスキル可視化、実力向上を図る。 実技型試験サービス AWSエンジニアのスキルチェックサービス 4
  60. © 2024 Anti-Pattern Inc. All rights reserved. SaaS企業の成長サイクル BizDevOps支援 Product

    Development プロダクト 作り Build an Organization 組織作り Financing 資金作り 顧客提供 価値の拡大 組織の拡大 投資の拡大 採用 /教育 5 ビジネスモデル
  61. © 2024 Anti-Pattern Inc. All rights reserved. AWS アドバンストティア サービスパートナー

    兼 SaaS コンピテンシーパートナー AWSアドバンストティア サービスパートナー認定の取得は、サービスパスと併せてソフトウェアパスにも参 加し、AWSによる認定ソフトウェアを所有するスタートアップ企業(2019年1月以降の創業)としては、 2023年8月時点では国内初の事例。 また、2024年6月には「SaaS コンピテンシー」の認定を取得。2024年11月時点で国内には2社しか認定保 持企業はおらず。 企業情報 6
  62. © 2024 Anti-Pattern Inc. All rights reserved. おまけ SaaSに特化したトピックを取り上げる ミートアップ企画を運営しております。

    AWS re:Inventに現地参加してきまし て、 帰国後にSaaS特化のre:Capイベントな ども企画しておりますので、是非グルー プにご参加ください。 71