Slide 1

Slide 1 text

AWS の「SaaS レンズ」を使って、堅牢でコスト効率の良いマルチテ ナント SaaS アプリケーションを設計しよう 2023/7/14 AWS事業本部コンサルティング部 岩浅貴大

Slide 2

Slide 2 text

自己紹介 ➢ ブログを毎日書いてます ➢ AWS Ambassador 2022 / 2023 ➢ AWS Top Engineer 2022 / 2023 ➢ AWS All Certifications Engineer 2022 / 2023 ➢ AWS Community Builder - Serverless ➢ Microsoft MVP for Azure クラスメソッド株式会社 AWS事業本部コンサルティング部 AWSソリューションアーキテクト 岩浅 貴大(いわさ) .NET → Azure → AWS

Slide 3

Slide 3 text

アジェンダ - 20分 ❏ SaaS の設計・開発・運用は大変 ❏ SaaS レンズ ❏ SaaS レンズ使ってみてわかったこと

Slide 4

Slide 4 text

SaaS の設計・開発・運用は大変

Slide 5

Slide 5 text

SaaS の設計・開発・運用は大変 SaaS の要素

Slide 6

Slide 6 text

SaaS の要素 ❏ 提供形態 ■ すぐに使える ■ 支払い方法 ❏ テナント・分離戦略 ■ サイロモデル ■ プールモデル ❏ ビジネスモデル ■ 効率よく価値向上し続ける

Slide 7

Slide 7 text

SaaS の要素 ❏ 提供形態 ■ すぐに使える ■ 支払い方法 ❏ テナント・分離戦略 ■ サイロモデル ■ プールモデル ❏ ビジネスモデル ■ 効率よく価値向上し続ける

Slide 8

Slide 8 text

SaaS の要素 ❏ 提供形態 ■ すぐに使える ■ 支払い方法 ❏ テナント・分離戦略 ■ サイロモデル ■ プールモデル ❏ ビジネスモデル ■ 効率よく価値向上し続ける

Slide 9

Slide 9 text

SaaS の要素 ❏ 提供形態 ■ すぐに使える ■ 支払い方法 ❏ テナント・分離戦略 ■ サイロモデル ■ プールモデル ❏ ビジネスモデル ■ 効率よく価値向上し続ける

Slide 10

Slide 10 text

SaaS の設計・開発・運用は大変 マルチテナントで複雑になりやすい

Slide 11

Slide 11 text

マルチテナントで複雑になりやすい ● マルチテナント考慮しなきゃいけないこと多すぎ ○ セキュリティ大丈夫か ○ ノイジーネイバー対策 ○ 認証・認可 ● マルチテナントのせいで運用大変になりがち ○ リリースのリードタイムかかりすぎ ○ テナント単位での計測が出来てない ○ オンボーディングがボトルネックに

Slide 12

Slide 12 text

SaaS レンズ

Slide 13

Slide 13 text

AWS Well-Architected Framework のレンズ AWS Well-Architected Framework を特定のテクノロジや業界に拡張したもの https://aws.amazon.com/jp/architecture/well-architected/

Slide 14

Slide 14 text

Well-Architected SaaS レンズ ❏運用上の優秀性の柱(4) ❏セキュリティの柱(2) ❏信頼性の柱(3) ❏パフォーマンス効率の柱(3) ❏コスト最適化の柱(2) SaaS Lens AWS Well-Architected Framework https://docs.aws.amazon.com/ja_jp/wellarchitected/latest/saas-lens/wellarchitected-saas-lens.pdf

Slide 15

Slide 15 text

運用上の優秀性の柱 ● SaaS OPS 1: マルチテナント環境の運用状態をどのように効果的にモニタリングおよび管理していま すか? ● SaaS OPS 2: 新しいテナントはどのようにシステムにオンボードされますか? ● SaaS OPS 3: テナント固有のカスタマイズの必要性にどのように対応しますか? ● SaaS OPS 4: 個々のテナントの使用状況と消費傾向の分析に使用できるメトリクスデータをどのよう に取得し、特定していますか?

Slide 16

Slide 16 text

運用上の優秀性の柱 ● SaaS OPS 1: マルチテナント環境の運用状態をどのように効果的にモニタリングおよび管理していま すか? ● SaaS OPS 2: 新しいテナントはどのようにシステムにオンボードされますか? ● SaaS OPS 3: テナント固有のカスタマイズの必要性にどのように対応しますか? ● SaaS OPS 4: 個々のテナントの使用状況と消費傾向の分析に使用できるメトリクスデータをどのよう に取得し、特定していますか?

Slide 17

Slide 17 text

運用上の優秀性の柱 ● SaaS OPS 1: マルチテナント環境の運用状態をどのように効果的にモニタリングおよび管理していま すか? ● SaaS OPS 2: 新しいテナントはどのようにシステムにオンボードされますか? ● SaaS OPS 3: テナント固有のカスタマイズの必要性にどのように対応しますか? ● SaaS OPS 4: 個々のテナントの使用状況と消費傾向の分析に使用できるメトリクスデータをどのよう に取得し、特定していますか?

Slide 18

Slide 18 text

● SaaS SEC 1: テナントコンテキストをどのようにユーザーに関連付け、そのコンテキストを SaaS アー キテクチャ内で適用していますか? ● SaaS SEC 2: テナントリソースがクロステナントアクセスから保護されることをどのように確認していま すか? セキュリティの柱

Slide 19

Slide 19 text

● SaaS SEC 1: テナントコンテキストをどのようにユーザーに関連付け、そのコンテキストを SaaS アー キテクチャ内で適用していますか? ● SaaS SEC 2: テナントリソースがクロステナントアクセスから保護されることをどのように確認していま すか? セキュリティの柱

Slide 20

Slide 20 text

● SaaS SEC 1: テナントコンテキストをどのようにユーザーに関連付け、そのコンテキストを SaaS アー キテクチャ内で適用していますか? ● SaaS SEC 2: テナントリソースがクロステナントアクセスから保護されることをどのように確認していま すか? セキュリティの柱

Slide 21

Slide 21 text

信頼性の柱 ● SaaS 信頼性 1: 個々のテナントがシステム内の他のテナントの可用性に影響を与える可能性がある 負荷をかけることをどのように制限しますか? ● SaaS 信頼性 2: テナントの健全性をどのように積極的に検知および維持しますか? ● SaaS 信頼性 3: SaaS アプリケーションのマルチテナント機能をどのようにテストしていますか?

Slide 22

Slide 22 text

信頼性の柱 ● SaaS 信頼性 1: 個々のテナントがシステム内の他のテナントの可用性に影響を与える可能性がある 負荷をかけることをどのように制限しますか? ● SaaS 信頼性 2: テナントの健全性をどのように積極的に検知および維持しますか? ● SaaS 信頼性 3: SaaS アプリケーションのマルチテナント機能をどのようにテストしていますか?

Slide 23

Slide 23 text

パフォーマンス効率の柱 ● SaaS PERF 1: あるテナントが別のテナントの体験に悪影響を与えることを防ぐにはどうすればいいの でしょうか? ● SaaS PERF 2: インフラストラクチャリソースの消費とテナントのアクティビティやワークロードを調整す るにはどうしたらよいですか? ● SaaS PERF 3: テナントの階層やプランによって異なるパフォーマンスレベルを可能にするにはどうす ればよいですか?

Slide 24

Slide 24 text

パフォーマンス効率の柱 ● SaaS PERF 1: あるテナントが別のテナントの体験に悪影響を与えることを防ぐにはどうすればいいの でしょうか? ● SaaS PERF 2: インフラストラクチャリソースの消費とテナントのアクティビティやワークロードを調整す るにはどうしたらよいですか? ● SaaS PERF 3: テナントの階層やプランによって異なるパフォーマンスレベルを可能にするにはどうす ればよいですか?

Slide 25

Slide 25 text

コスト最適化の柱 ● SaaS COST 1: 個々のテナントのリソース消費はどのように測定されますか? ● SaaS COST 2: テナントの消費とインフラストラクチャのコストはどのように関連付けられますか?

Slide 26

Slide 26 text

コスト最適化の柱 ● SaaS COST 1: 個々のテナントのリソース消費はどのように測定されますか? ● SaaS COST 2: テナントの消費とインフラストラクチャのコストはどのように関連付けられますか?

Slide 27

Slide 27 text

コスト最適化の柱 ● SaaS COST 1: 個々のテナントのリソース消費はどのように測定されますか? ● SaaS COST 2: テナントの消費とインフラストラクチャのコストはどのように関連付けられますか?

Slide 28

Slide 28 text

堅牢でコスト効率の良い マルチテナント SaaS アプリケーションに 近づけることができる SaaS レンズが解決してくれること

Slide 29

Slide 29 text

SaaS レンズ使ってみてわかったこと

Slide 30

Slide 30 text

背景 ❏ お客様へ AWS 技術支援 ❏ ここ1 ~ 2 年は SaaS プロバイダーのお客様中心に ❏ SaaS レンズをベースに

Slide 31

Slide 31 text

SaaS レンズ 良い SaaS レンズ使ってみて

Slide 32

Slide 32 text

SaaS レンズ 良い ❏ 汎用的 ■ 全ての SaaS にとりあえず採用可能 ■ あくまでもベストプラクティス ■ AWS に限らず使える ❏ シンプルに観点が良い ❏ 対応例の情報も多い

Slide 33

Slide 33 text

ただし … SaaS レンズとうまく付き合う

Slide 34

Slide 34 text

SaaS レンズとうまく付き合う あくまでもベストプラクティス

Slide 35

Slide 35 text

SaaS レンズとうまく付き合う まず SaaS モデルの戦略を立てる

Slide 36

Slide 36 text

● 会社プロファイルごとのガイダンス ○ どこから始めたのか ○ どのドメインにいるのか ○ どのような競争圧力に直面しているのか ● フェーズごとのガイダンス ○ フェーズ1: 事業計画立案 ○ フェーズ2: 製品戦略/ロードマップ開発 ○ フェーズ3: 実用最小限のサービス ○ フェーズ4: ローンチ/市場開拓 まず SaaS モデルの戦略を立てる AWSホワイトペーパー SaaS ジャーニーフレームワーク https://d1.awsstatic.com/whitepapers/ja_JP/saas-journey-framework.pdf

Slide 37

Slide 37 text

まとめ 37

Slide 38

Slide 38 text

まとめ ● SaaS レンズを使ってベストプラクティスの観点でレビューしてみましょう ● 戦略を立てる段階であれば SaaS ジャーニーフレームワークも

Slide 39

Slide 39 text

まとめ ● SaaS レンズを使ってベストプラクティスの観点でレビューしてみましょう ● 戦略を立てる段階であれば SaaS ジャーニーフレームワークも 堅牢でコスト効率の良い マルチテナント SaaS アプリケーション 目指してください

Slide 40

Slide 40 text

参考資料 SaaS on AWS セッション https://d1.awsstatic.com/events/Summits/reinvent2022/SAS405_SaaS-microservices-deep-dive-Simplifying-multi-tenant-development.pdf

Slide 41

Slide 41 text

参考資料 AWSホワイトペーパー SaaS テナント分離戦略 https://d1.awsstatic.com/whitepapers/ja_JP/saas-tenant-isolation-strategies.pdf ● テナント分離の具体的な戦略を紹介 ○ 分離の基本概念 ○ サイロ分離の実装 ■ フルスタック分離 ■ ターゲティング分離 ○ プール分離の実装 ■ IAM ポリシーベース ■ アプリケーションでの適用 ■ プール分離の詳細の隠し方 ○ 分離の透過性

Slide 42

Slide 42 text

参考資料 AWSホワイトペーパー SaaS ストレージ戦略 https://docs.aws.amazon.com/ja_jp/whitepapers/latest/multi-tenant-saas-storage-strategies/multi-tenant-saas-storage-strategies.html ● データパーティショニングのガイドライン ○ マルチアカウント ○ サービスごと ■ DynamoDB ■ Amazon RDS ■ Amazon Redshift

Slide 43

Slide 43 text

参考資料 AWS SaaS Boost https://dev.classmethod.jp/articles/preview-aws-saas-boost/

Slide 44

Slide 44 text

No content