はじめに
皆さんこんにちは、パートナーソリューションアーキテクトの櫻谷です。「SaaS on AWS を成功に導くためのポイントとは ?」の連載も今回が最終回となります。これまでの連載をお読みいただいた方は、すでに AWS で SaaS を作る第一歩が踏み出せる状態になっているのではないでしょうか。
この記事では、まとめとして過去の連載を振り返りつつ、これから皆さんが歩むであろう今後の SaaS on AWS の道のりを描きます。
「SaaS の知識はついたけど実際に作り始めるとなると何から始めていいかわからない・・・」そんな方のガイドになれば幸いです。
builders.flash メールメンバー登録
builders.flash メールメンバー登録で、毎月の最新アップデート情報とともに、AWS を無料でお試しいただけるクレジットコードを受け取ることができます。
サービスが提供する価値から考える
本連載は開発者向けということもあり、あまり多くは触れてきませんでしたが、SaaS を作る上で最も重要かつ最初にやるべきことは、ビジネスプランニング (事業計画立案) です。
「ターゲットとするユーザーは誰か ? ユーザーはどんな課題を持っているか ? (= ペルソナの定義)」
「このサービスはどんな価値を提供できるか ?」
「市場における他社の製品と比べてどんな優位性があるか ?」
「いつまでにどれくらいの顧客 / 売上を獲得して、どのような成長モデルを描くか ?」
アーキテクチャについて検討を始める前に、まずこれらの要点が文書化され、プロジェクトチームまたは会社全体で共通認識が取れていることを確認しましょう。
SaaS Journey Framework
では、次のステージに進むためにはどのような点をどこまで考慮できていれば十分と言えるのでしょうか ? AWS は、これらの検討を進める上で役立つ SaaS Journey Framework というホワイトペーパーを公開しています。
このホワイトペーパーでは、SaaS 化の道のりを 4 つのフェーズ
事業計画立案
製品戦略およびロードマップ開発
実用最小限のサービス (MVS)
ローンチ / 市場開拓 (Go-to-Market)
に分けて、それぞれ検討すべきポイントを質問ベースでリストアップしています。
組織間の壁を取り払い、プロダクトマネージャーだけでなく、営業やマーケティング、カスタマーサポート、開発者 / 運用者などステークホルダー全員を巻き込んでディスカッションを行い、チーム全体での共通認識を作っていきましょう。

設計 / 実装のロードマップ
さて、ビジネスプランが描けたところでいよいよアーキテクチャの設計に入っていきましょう。まずは テナント分離戦略 (第 2 回) で紹介した考え方に基づいて、大枠となるデプロイモデルを決めていきます。

ロードマップ策定で検討すべきこと
ここで判断の軸になるのが、前述のビジネスプランニングのフェーズで定義したペルソナです。ターゲットとするユーザーがどんなセキュリティ、可用性、パフォーマンス要件を求めているのか、インフラコストはどこまで許容できるのか、どんなティアをサポートするのか、こういった観点があらかじめ整理できていれば、分離モデルの選定はそこまで難しくありません。上記の要件から自然と定まってきます。料金プランの設計については SaaS における料金プランとメータリング、ビリング (第 9 回) にヒントがあります。
分離モデルが決まったら、同様にデータパーティショニングについても検討を進めます。AWS はさまざまなデータベース / ストレージサービスを提供しており、それぞれで取れる戦略は異なります。データ要件から使用するサービスを先に決める、または採用したいパーティショニングのパターンから候補を絞り込んでサービスを選定する、どちらの方法を取ることもできますが、やはり重要なのはユーザーの要件やサービスが提供する体験です。データパーティショニング (第 6 回) の記事では、コンプライアンス、パフォーマンス、コストの 3 つの観点に着目していますが、自社のワークロードに合わせて何を一番重視するべきかプランニングの段階で整理しておきましょう。
さて、大枠が決まったところでアプリケーションの開発に入っていくわけですが、まず最初にほとんどの SaaS で共通している部分、かつユーザーが最初に触れるサービスの入口となる認証 / 認可について考えていきましょう。SaaS における "アイデンティティ" の考え方については SaaS on AWS における認証認可の実装パターンとは ? (第 4 回) をご覧ください。JWT (JSON Web Token) をベースにした統一した仕組みを用いることで、複雑な実装のコストやミスを減らすことができます。また、この JWT を活用したテナントコンテキストの伝達の仕組みを作ることで、動的なポリシー生成によるテナント分離 (第 3 回) のガードレールを設けることもできるようになります。これは、SaaS 開発において特に注意を払う必要があるクロステナントアクセスの防止に役立ちます。
次に、運用についても考えておきましょう。スケールする SaaS ビジネスを構築するためには オンボーディング (第 5 回) の自動化も重要です。付加価値を生まない作業をなるべくオフロードすることで、サービスエクスペリエンスの改善に集中できます。より芯を捉えた改善を行うためには、データドリブンな意思決定が不可欠です。システムのパフォーマンス、ビジネス KPI など各種 メトリクスを収集して可視化 (第 7 回) しましょう。価格戦略や提供するプラン (ティアモデル) を含めたビジネスモデルの最適化を行うためには、コスト関連の分析 (第 8 回) も忘れずに行なってください。
各トピックの詳細については、過去の連載記事をご覧ください。また、AWS SaaS Factory Insights Hub では、これらの設計のヒントとなるブログやウェビナーなどのリソースを公開しています。ビジネス / 技術問わず、AWS が持つ SaaS のベストプラクティスのコンテンツポータルとしてご活用ください。
継続的な改善
さきほどサービスエクスペリエンスの改善について触れましたが、ではインフラストラクチャはどのように改善すればよいでしょうか ?
構築したワークロードが AWS のベストプラクティスに沿っているかどうかは、AWS Well-Architected フレームワーク を使って評価することができます。これは、6 つの柱 (優れた運用効率、セキュリティ、信頼性、パフォーマンス効率、コストの最適化、持続可能性) に基づいて多角的にアーキテクチャを検証する仕組みですが、追加で SaaS 特有の考慮点を補完した SaaS レンズ による検証が行えます。例えば運用では「SaaS OPS 3 : テナント固有のカスタマイズの必要性にどのように対応しますか ?」、パフォーマンスでは「SaaS PERF 1 : あるテナントが別のテナントの体験に悪影響を与えることを防ぐにはどうすればいいのでしょうか?」といったベストプラクティスがあり、SaaS においてよくある課題や見落としがちなポイントのガイドとして活用することができます。
このフレームワークは、いつでも利用可能です。一回限りではなく、設計段階、リリース前の検証、リリース後の定期的なチェックといった形で、繰り返し見直していただくことをおすすめします。

Amazon AppStream 2.0
アプリケーションがコンテナ対応していない場合はどうすればよいでしょうか ?
コンテナ化や Web ベースのアプリケーションに書き換える工数が取れない場合は、 Amazon AppStream 2.0 を通じた配信モデルを構築することで、市場投入までの時間を大幅に短縮できます。これは本連載で紹介してきた SaaS とは形態が異なりますが、ユーザーが得られる本質的な体験は変わりません。ユーザーは使い慣れた Web ブラウザを通じて、AppStream 2.0 からストリーミングされる Windows または Linux のデスクトップアプリケーションにアクセスすることができます。ビジネス上の理由から一刻も早い市場投入が必要だがアプリケーション改修の工数が取れない、そういったケースではこちらの方法が適しているかもしれません。
どのような移行のプランを選択すればよいかは、企業の状況によって様々です。今後のビジネスの成長戦略や市場の動向を鑑みて、慎重に検討していきましょう。ぜひ担当の AWS のソリューションアーキテクトにも相談してみてください。
まとめ
AWS では、数多くのお客様の SaaS ソリューションが稼働しています。本連載で紹介してきたベストプラクティスや考え方は、これらの SaaS の開発 / 運用を支援する中で得られた知見がベースとなっています。実際の経験に基づくナレッジを活用することで、よくある課題や落とし穴を回避し、実装のコストを削減することができます。AWS が提供するマネージドサービスの活用もその一部です。
これらをうまく使って、継続的なユーザー体験の改善に注力できるスケーラブルな SaaS を構築してみましょう ! 本連載はこれで最終回となりますが、引き続き AWS ブログ 等で SaaS に関する情報をお届けしていきますのでお楽しみに !
筆者プロフィール
櫻谷 広人
アマゾン ウェブ サービス ジャパン合同会社
パートナーソリューションアーキテクト
大学 4 年から独学でプログラミングを習得。新卒で SIer に入社して Web アプリケーションの受託開発案件を中心にバックエンドエンジニアとして働いた後、フリーランスとして複数のスタートアップで開発を支援。その後、toC 向けのアプリを提供するスタートアップで執行役員 CTO を務める。現在は SaaS 担当のパートナーソリューションアーキテクトとして、主に ISV のお客様の SaaS 移行を支援。

Did you find what you were looking for today?
Let us know so we can improve the quality of the content on our pages