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

SaaS アーキテクチャ概要

ryurock
February 20, 2024

SaaS アーキテクチャ概要

SaaS をアーキテクトをするにあたって、どのような事を考えればよいのか?をまとめました。

このスライドでまとめているのは

SaaS とは、ビジネスモデル x 技術であることを理解する

SaaS アーキテクトでどのように SaaS を作っていくのか?を考える

SaaS KPI でどのように SaaS が成長しているか?の指標を考える

の3つを説明しています。

ryurock

February 20, 2024
Tweet

More Decks by ryurock

Other Decks in Programming

Transcript

  1. 自己紹介 Click 2 木村 竜介 (@ryurock) SRE アーキテクチャ 高校卒業後、クライミングにハマりフリー ターをしながら海外クライミングに明け暮れ

    る。その後、システムエンジニアとして様々 な業務に従事。ここ7年ほどは SRE 領域を主 戦場としている。 システムリアーキテクトや SRE チームの立ち 上げ等、ハード(技術)とソフト(組織)の両軸か ら戦略を考える事を得意としている。
  2. Agenda 3 ➔ SaaS とは? ◆ ビジネスモデル x 技術であることを理解する ➔

    SaaS アーキテクト ◆ どのように SaaS を作っていくか?を考える ➔ SaaS KPI ◆ どのように SaaS が成長しているか?の指標を考える
  3. 01 SaaS とは? Click 5 サービスプロバイダー(提供主)がソフトウェ ア(サービス)をユーザーまたは、企業に提供 する。 SaaS の一般的な提供方法は、

    サブスクリプションや従量課金形式で 提供される SaaS とは、従量課金・サブスクリプションを実現するため のビジネス x 技術をかけ合わせたサービスを提供する事
  4. Click 6 安定的に利用したい分を適切な価格で 顧客に提供することが SaaS としての一つのゴール 開発者 SaaS のプランを柔軟に開発ができるよ うにアーキテクトをする

    料金 プラン例 Free Business Enterprise 基本的なサービ スを無料で提供 プラスαで機能を 提供 お客様向けにカ スタマイズ 無料 xx 円 / 月 xx 円 / 月 機能 A 利用可能 利用可能 利用可能 機能 B x 利用可能/xx 件 利用可能 機能 C x x サブスクリプション 01 SaaS とは? PdM SaaS のプランを柔軟に拡張できるよう にサービスをデザインする Sales SaaS ビジネスモデルとして販売する
  5. Click 10 どのタイミングで料金プランと機能が必要か? Business プラスαで機 能を提供 xx 円 / 月

    機能 A 利用可能 Free Business 基本的なサー ビスを無料で 提供 プラスαで 機能を提供 無料 xx 円 / 月 機能 A 利用可能 利用可能 機能 B x xx 円 / 月 02 SaaS ビジネスモデルの料金プランの遷移
  6. 03 提供する SaaS の分析 Click 12 提供する SaaS を分析して誰にどのように届けるか?を理解 する

    ユーザーとターゲット企業の分析 • 対象のユーザー(広告部門の人向け、セールス部門の人向け、経理部門の人向け、etc..)は? • セールスターゲット(toC 向けの企業、toB向けの企業、ヘルスケア向けの企業、etc..)の企業は? 利用サービスのデータ特性 • テナント単位でどのようなデータが入るか? • 1 テナントあたりのデータ経年劣化はどのくらいか? その他の特性 • 提供 SaaS の特性
  7. 04 提供する SaaS のユーザー分析 Click 14 対象テナントの販売迄のフローを分析する ユーザーとテナント特性 ターゲット業種 A

    ターゲット業種 B ターゲット業種 C ターゲット 部門 A ターゲット 部門 B ターゲット 部門 C ターゲット 部門 A ターゲット 部門 B ターゲット 部門 C ターゲット 部門 A ターゲット 部門 B ターゲット 部門 C 決済者 管理者 執行者 どの部門、どんな人に販売するのか?
  8. Click 15 テナントの境界線を設計する テナントの境界線 ターゲット企業 A マーケティング部門 営業部門 経理部門 カスタマーサクセス部

    門 テナント テナント テナント テナント テナントの 分離パターン 04 提供する SaaS のユーザー分析 テナント テナント
  9. Click 16 対象テナントの利用プロセスを分析する 対象テナントの利用プロセス ターゲット業種 A マーケティング部門 どの部門に利用してもらって、どのように使うか? インサイド セールス部門

    営業部門 販路 拡大 リード獲 得 リード育 成 有望リー ド アポイン ト 訪問 商談 カスタマーサクセス 部門 オンボーディング カスタマーサポート コンサルティング カスタマーサクセス 参考: レベニューモデル 04 提供する SaaS のユーザー分析
  10. Click 18 競合のサービスとの違いを分析する 競合サービス A 競合サービス B 自社サービス 競合のサービス特性 対象マーケットの業種に特化

    05 競合 サービスの分析 対象 SaaS の コア機能 1 対象 SaaS の コア機能 2 対象 SaaS の コア機能 3 機能が弱い 機能が豊富 機能が弱い 対象マーケットの業種に特化 機能が豊富 機能が豊富 機能が豊富 機能が弱い
  11. 06 SaaS のデータ分析 Click 20 対象テナント単位のデータ特性を分析する 前提 • 1 テナントあたりの想定ユーザーは

    xx 人 • 1 ユーザーあたりのコアデータは想定 xx 件 / 日の活動量と想定する 1 テナントあたりの活動量データ推移 (中央値) Day Month Year 3 Years 活動量データ 100 3,000 36,000 108,000 1 ユーザーあたりの活動量データ推移 (中央値) Day Month Year 3 Years 活動量データ 30 900 10,800 32,400
  12. SaaS アーキテクト Click 23 SaaS アーキテクト概要 参考: AWS ホワイトペーパー コントロールプレーンとアプリ

    ケーションプレーン テナント 戦略 物理パーティショニングと データパーティショニング 認証・認可 全体テナントの 認証と認可 Billing 請求と課金メータリング サービス レベル サービスの安定性 オン ボーディング テナントの オンボーディング Control Plane (全体のテナント制御) Tenant Provisioning Application Plane (Serviceの制御) Service A Service B Service C
  13. Click 26 シングルテナント シングルテナントとは? • 1テナント= 1 Infrastructureの構成 • セキュリティ要件が厳しい業種や売

    値が高くても個別カスタマイズを望 む顧客が多い場合に有効 デメリット • インフラ単位で別れるのでインフラ コストが高い • Tenant = インフラなので Tenat 数が 増えるとインフラの運用が大変 01 SaaS アーキテクト -テナント戦略- テナントの物理パーティショニング
  14. Click 27 マルチテナント 共有インスタンスとは? • Nテナント1 Infrastructureの構成 • インフラのコストとメンテナンスコ ストを小さく抑えられる

    デメリット • Tenant が相乗り構成なので、セキュ リティインシデントを気をつけなけ ればならない • ノイジーネイバーなテナントがいる 場合、共有インスタンスが不安定に なりやすい 01 SaaS アーキテクト -テナント戦略- テナントの物理パーティショニング
  15. Click 28 ノイジーネイバー ノイジーネイバーとは? Tenant C が大量操作 or 大量データ処理を 行い、インフラリソースが枯渇して、サー

    ビス全体が不安定になる。 Tenant A,B に障害が波及してしまう 01 SaaS アーキテクト -テナント戦略- テナントの物理パーティショニング
  16. Click 29 どの物理レイヤーで専有・共有を区切るか? Network 分離 • DNS または、LB 層で分離 App

    Server 分離 • Application Server で分離 Database 分離 • DB インスタンス単位 or Database 分離 or Table 単位で分離 01 SaaS アーキテクト -テナント戦略- テナントの物理パーティショニング
  17. Click 30 「まとめ」 テナントの物理レイヤーの境界線を考える ポイント • 1 テナントあたりのデータ経年劣化量で分離パターンを選択する ◦ 基本はマルチテナントで

    Enterprise プランがある場合はシングルテナントのハイブリッドを考える • SaaS のインフラコストは要注意 ◦ インフラコストが利益率を圧迫させる要因になる • 共有化をすればするほど、インフラレイヤーはシンプルになるが、複雑さは Application Layer で吸収することに なる • テナントターゲットのセキュリティ要件を考慮して、どのレイヤーで物理パーティショニングをするか?を考える ◦ Database はインスタンス分離しないと対象の顧客のセキュリティ要件を満たせない等 01 SaaS アーキテクト -テナント戦略- テナントの物理パーティショニング
  18. 02 SaaS アーキテクト -テナント戦略- テナントのデータパーティショニング Click 32 テナントのデータパーティショニング DB インスタンス分離

    1 テナント = 1 DB インスタンス データベース分離 1 テナント = 1 データベース テーブル分離 1 テナント = サービスのテーブル郡 (N テーブル) 分離モデル 主な考慮事項 リソースアクセス スコープ 自身以外のテナントアクセスの制御 Migration 戦略 テナントのスキーマ更新戦略 パフォーマンス ノイジーネイバーによるスパイク インフラコスト 1 テナントあたりの単価を考える Row Level Security 分離 行単位でテナントを分離する
  19. Click 34 DB インスタンス分離 DB インスタンス分離とは? • DB インスタンス単位でテナントを分 離する

    • スケーリングがテナント単位で調整 できる • セキュリティ面も堅牢 デメリット • インフラコストが高い • migration 適用時にインスタンス単 位で行う必要がある 02 SaaS アーキテクト -テナント戦略- テナントのデータパーティショニング
  20. Click 35 データベース分離 データベース分離とは? • Database 単位でテナントを分離する • 接続先単位で分離できる デメリット

    • migration 適用時にデータベース単位で 行う必要がある • コネクションプールがうまく使えず DB 接続コストが大きい 02 SaaS アーキテクト -テナント戦略- テナントのデータパーティショニング
  21. Click 36 テーブル分離 テーブル分離とは? • テナント単位でテーブルを分離する デメリット • ORM 等でモデルを生成する場合に実

    装が複雑になる可能性が高い • セキュリティが弱くなる 02 SaaS アーキテクト -テナント戦略- テナントのデータパーティショニング
  22. Click 37 Row Level Security 分離 Row Level Security 分離とは?

    テーブルの行でテナントを分離する • SQL の WHERE 句にテナント ID を含める • テナント ID でパーティションを分ける • DB のサポートしている RLS 機能を使う デメリット SQL の WHERE 句にテナント ID を含める • 柔軟な対応はしやすいが、アプリケーションレイ ヤーでミスが起こりやすい テナント ID でパーティションを分ける • Migration 時のパーティションの調整が必要 DB のサポートしている RLS 機能を使う • テナントプロビジョニングの際にアカウント周り で自動化が必要 02 SaaS アーキテクト -テナント戦略- テナントのデータパーティショニング
  23. Click 39 Migration 戦略 Migration 戦略 大抵の ORM はDB インスタンス単位、デー

    タベース単位でしか migration できない。 DB インスタンス分離、データベース分離の 戦略の場合、migration 戦略が 重要になる。 参考:Row Level Securityはマルチテナントの銀の弾丸になりうるのか migration migration 02 SaaS アーキテクト -テナント戦略- テナントのデータパーティショニング
  24. Click 40 ノイジーネイバーによるスパイク 02 SaaS アーキテクト -テナント戦略- テナントのデータパーティショニング パフォーマンスとの闘い DB

    インスタンス分離戦略の場合は、 スケーリングをテナント単位でチューニン グし易いがそれ以外の場合、ノイジーネイ バーによるデータベースのスパイクをどう 制御するか?がポイントになる。 アプリケーションレイヤーによる Rate Limit 制御も考える。
  25. Click 41 インフラコスト 02 SaaS アーキテクト -テナント戦略- テナントのデータパーティショニング 1 テナントあたりの単価を考える

    SaaSの売上原価に含まれるのは、主にサー バー費用とカスタマーサクセスの人件費。 DB インスタンスは高額になりやすい。 原価が高いとプライシングに反映をしなく てはならないので、注意が必要。 DB インスタンス 分離 データベース 分離 テーブル 分離 Low Level Security 分離 コスト 高 中 低 低 インフラ単価 xx 円 / 月 xx 円 / 月 xx 円 / 月 xx 円 / 月 DB 単価 xx 円 / 月 xx 円 / 月 xx 円 / 月 xx 円 / 月 テナント単価 xx 円 / 月 xx 円 / 月 xx 円 / 月 xx 円 / 月
  26. 03 SaaS アーキテクト -認証・認可- Click 43 SaaS の認証・認可 User Identity

    と テナント Identity 2 つの認証と認可 セキュリティ 漏洩時の考え方 SSO マルチプロダクトにむけてのシングルサインオン 単一障害点 止まると全てが停止する
  27. 04 SaaS アーキテクト -請求と課金メータリング- Click 50 API コール数による課金メータリング API Gateway

    課金メータリング 料金 Free Business 機能 A xx ¥ /xx 件 xx ¥ /xx 件 機能 B xx ¥ /xx 件 xx ¥ /xx 件 機能 C xx ¥ /xx 件 xx ¥ /xx 件 テナント メソッド タイムスタンプ テナント A POST /xxxx 2024-01-01 10:00:00 テナント B POST /xxxx 2024-01-02 10:00:00 テナント C PATCH /xxxx 2024-01-01 21:00:00 テナント A GET /xxxx 2024-01-10 17:00:00 API Gateway でメータリング LB Layer またはゲートウェイ層で 課金をメータリングする
  28. 04 SaaS アーキテクト -請求と課金メータリング- Click 51 テーブル分析による集計の課金メータリング テーブル分析 課金メータリング 料金

    Free Business 機能 A xx ¥ /xx 件 xx ¥ /xx 件 機能 B xx ¥ /xx 件 xx ¥ /xx 件 機能 C xx ¥ /xx 件 xx ¥ /xx 件 テナント Column A タイムスタンプ テナント A xxxxx 2024-01-01 10:00:00 テナント B xxxxx 2024-01-02 10:00:00 テナント C xxxxx 2024-01-01 21:00:00 テナント A xxxxx 2024-01-10 17:00:00 DB でメータリング データの利用履歴から 課金をメータリングをする
  29. 04 SaaS アーキテクト -請求と課金メータリング- Click 52 使用量をユーザーに伝える 請求 請求担当が間に入ると 割引対応等がし易いが、

    請求の運用コストが高くなる。 自動請求は、請求の運用コストが 低いが割引対応等をシステムで 考えないと弱くなる。 請求担当 自動請求 OR Organization
  30. Click 54 Service Level (サービスレベル) Service Level Agreement - SLA

    - (サービス水準合意) サービス提供者とユーザーの間で結ばれるサービス水準に関する合意。サービスレベル契約と言われることもある。 サービスの特定の要素 (品質、可用性、責任) について、サービス提供者とユーザーの間で合意する。 サービスレベルの基準に達していない場合は、ユーザーまたは契約者に金銭的保証が発生する場合がある。 05 SaaS アーキテクト -SaaS が継続して稼働できる状態にする- Service Level Objectives - SLO - (サービスレベル目標) サービス提供者側が目標としているサービスレベルの目標。 サービス提供者側が自身で定めている目標である。
  31. Click 55 日本でもSaaS の利用が増え SLA,SLOが一般化してきている 経済産業省 SaaS 向けガイドライン SLA と

    SLOの策定タイミング まずは、SLO から策定して運用して、運用結果を 計測しながら、 SLA を策定する。 05 SaaS アーキテクト -SaaS が継続して稼働できる状態にする-
  32. Click 56 Service Level Objectives - SLO - (サービスレベル目標) SLA

    と SLOの策定タイミング SLO の項目を満たす為にシステムの可用性や効率 性等を計測する。 目標に達していない場合は、カイゼンを行う。 SLO ユーザーにとって重要な機能や 事象について記載する SLI - SLO の 具体的な 項目 - 可用性 (システムが継続して稼働できる状態) 効率性 (適切な応答時間であるか?) 等など 05 SaaS アーキテクト -SaaS が継続して稼働できる状態にする-
  33. Click 58 サービスの不安定さは、カスタマーサクセスのコスト増大や KPI の指標に影響する 経営指標や売上原価に影響する カスタマーサクセスは、SaaS の売上原価に 計上されることが多い。 また

    SaaS の重要な指標として扱われる LTV やチャーンレートにも影響する。 05 SaaS アーキテクト -SaaS が継続して稼働できる状態にする- サービスが 不安定 カスタマーサクセス のコストの増大 LTV (顧客生涯価値) チャーンレート (解約率)
  34. Click 61 受注迄の成功率のカギは、無償サービス開始の提供が素早く できるかが重要 テナントプロビジョニング テナント戦略に応じたクラウドの設定と アプリケーションの設定を行う。 06 SaaS アーキテクト

    -テナントプロビジョニング- インサイド セールス部門 営業部門 商談 有望リード SQL - Sales Accepted Lead - ユーザー テナント プロビジョニング お試しで サービスを利用 カスタマーサクセス 部門 ユーザー 無償サービス を開始 ユーザー 利用開始 受注 有償サービス に切替
  35. Click 62 テナントプロビジョニング ポイント インフラの設定が必要な場合は、 IaC による高度な自動化。 DB の設定が必要な場合は、DB の

    マイグレーションの自動化。 06 SaaS アーキテクト -オンボーディング- テナント プロビジョニング 必要な クラウドを 調達 必要な データを 設定 ハード ウェア データ ベース ネット ワーク アプリケー ションの設定
  36. 01 SaaS KPI -評価指標- Click 65 財務観点の代表的な評価指標 PSR Price Sales

    Ratio 時価総額を年間売上高で割った数値 DCF 法 Discounted Cash Flow 企業が生み出すキャッシュフローに注目して 企業価値を算出する方法 FCF Free Cash Flow 会社が本業で稼ぎ出したお金から、事業維持 のために必要な設備投資などの 支出を差し引いたキャッシュフロー 評価指標 ポイント 売上高規模で評価が変わりやすい
  37. 01 SaaS KPI -評価指標- Click 66 SaaS のコスト構造 サーバー費用 カスタマーサクセス

    人件費 売上原価 販管費 主な項目 S&M セールス & マーケティング R&D リサーチ & デベロップメン ト 主な項目 G&A ジェネラル & アドミニ ストレイティブ インサイドセー ルス & 営業部門 マーケティング 部門 開発部門 経理・総務部門 製品・サービスなどを 生み出すために 直接必要とされた経費 販売費及び一般管理費は、企業が事業活動をするなか、 販売業務や管理業務で発生した経費のこと カスタマーサクセス 部門 開発部門
  38. 01 SaaS KPI -評価指標- Click 67 SaaS の「成長性」を計測する代表的な KPI MRR

    Monthly Recurring Revenue 月間経常収益 毎月決まって得られるひと月分の収益を表す KPI ARR Annual Recurring Revenue 年間経常収益 毎年決まって得られる1年分の収益を表す KPI ARPU Average Revenue Per User 1 ユーザーあたりの平均売上金額を表す KPI 評価指標 ポイント ユーザーの獲得数を増やすか平均売上を伸 ばすと MRR と ARR は増える
  39. 01 SaaS KPI -評価指標- Click 68 SaaS の「効率性」を計測する代表的な KPI LTV

    Life Time Value ユーザーが契約を開始してから終了するまで の期間に得られる利益を表す KPI CAC Customer Acquisition Cost 顧客獲得費用 新規ユーザーまたは 1 社獲得するために かかった費用を意味するKPI ユニットエコノミクス LTV / CAC によって算出できる KPI SaaSビジネスにおける理想的な ユニットエコノミクスの値は3以上 評価指標 ポイント 新規ユーザーを早く獲得できて、 LTV が初期から高い状態がベスト
  40. 01 SaaS KPI -評価指標- Click 69 SaaS の「継続性」を計測する代表的な KPI チャーンレート

    解約率 顧客数全体や収益全体に対する 解約の割合を表す KPI AU Active Users 期間のうちに1回以上利用があったユー ザーを指す KPI NPS Net Promoter Score 「サービスを他者にどの程度勧めたい か」 という推奨度から顧客ロイヤリティを 定量的に表す KPI 評価指標 CES Customer Effort Score 顧客努力指標 顧客が製品・サービスを利用するために 要した時間や労力を表す KPI TtV Time to Value 顧客がサービスの利用を開始してから、 その価値を実感するまでにかかる時間を 表す KPI
  41. 01 SaaS KPI -評価指標- Click 70 SaaS とは様々な KPI を色々な部門が

    目標を目指して絡み合っている 企業価値 成長性 効率性 KPI 継続性 インサイド セールス部門 営業部門 カスタマーサクセス 部門 開発部門 部門 マーケティング 部門 経理・総務部門
  42. SaaS とは? Click 72 SaaS とは? ビジネスモデル x 技術であることを理解する。 技術だけでも成功しないし、ビジネスだけでも成功しない。

    SaaS アーキテクトとは? SaaS の特性に合わせたアーキテクトをどう作っていくのか?の戦略と今どうなっているのか?とどうし ていくのか?を考える SaaS KPI とは? 様々な部門が 「企業価値」、「継続性」、「成長性」、「効率性」で KPI を定めカイゼンをしていく。
  43. 参考文献 Click 73 • 保存版【SaaSの重要KPIまとめ】SaaSの主要指標を解説 • SaaS on AWS を成功に導くためのポイントとは

    ? 第 1 回 • THE MODEL(ザ・モデル)とは?要約と概要、導入事例を解説 • SaaS におけるマルチテナント分離モデル • マルチテナントにおけるテナント増加時のデータベース分離の体験談例(仮) • 経済産業省 SaaS向けSLAガイドライン • SaaSビジネスのコスト構造ってどう考える?原価率・販管費率の改善方法も含めて解説