本稿では、2つの強力なアクセラレーター、AWS向けSaaS Builder Toolkitと SourceFuseのARC を活用して、マルチテナントの遠隔医療SaaSアプリケーションを構築した方法を探ります。. アーキテクチャと実装の詳細を掘り下げ、これらのツールが開発プロセスを合理化し、SaaSのニーズに対応するスケーラブルでセキュアなソリューションを提供できることを示します。
SaaSの概要と課題
SaaS(Software-as-a-Service) は、組織が摩擦の少ないサービス中心のモデルでソリューションを提供し、顧客とプロバイダー双方にとっての価値を最大化するビジネスおよびソフトウェア配信モデルです。成長、リーチ、イノベーションを促進するビジネス戦略の柱として、アジリティと運用効率に依存しています。
現代の典型的な SaaSアプリケーション は、クラウド上でホストされ、ウェブブラウザまたは専用アプリケーションを介してインターネット経由で顧客にアクセスされます。ソフトウェアをローカルにインストールして保守する代わりに、ユーザーはオンデマンドでアプリケーションにアクセスして使用でき、多くの場合、使用量や機能に基づいてサブスクリプション料金を支払います。このクラウドベースの配信アプローチは、企業がソフトウェアを消費および利用する方法に革命をもたらし、初期費用の削減、自動更新、インターネット接続があれば事実上どこからでもアクセスできるなど、多くのメリットを提供します。
この SaaSモデル は業界全体で採用が進み、複雑なインストールやメンテナンスなしでエンタープライズグレードのソフトウェアを活用できるよう支援しています。しかし、SaaSアプリケーションの構築と管理にはいくつかの課題があります。
主要な課題の1つは、マルチテナンシーをサポートする必要があることです。は、アプリケーションの単一インスタンスが複数の顧客(テナント)にサービスを提供し、それぞれが独自のデータ、構成、プランを持つことです。テナントのデータとリソース間の安全な分離を確保することは、プライバシーとコンプライアンスを維持するために不可欠です。
もう1つの重要な課題はスケーラビリティです。. 顧客ベースが拡大するにつれて、SaaSプロバイダーは、新規顧客(テナント)のリクエストに応じてリソースを自動的にプロビジョニングおよびデプロビジョニングできる、堅牢で柔軟なアーキテクチャを導入する必要があります。
さらに、SaaSプロバイダーは、デプロイ、更新、およびメンテナンスに関連する課題に対処する必要があります。. 複数のテナントにわたってサービスを中断したりデータ整合性を損なうことなくアプリケーションの更新やパッチをデプロイすることは、複雑なタスクです。自動化と堅牢なデプロイ戦略は、ダウンタイムを最小限に抑え、シームレスな顧客体験を確保するために非常に重要です。
これらの課題を克服し、SaaSソリューションを成功させるには、SaaSプロバイダーは、マルチテナントアプリケーションの開発、デプロイ、および管理を合理化する包括的なツールとフレームワークのスイートを必要とします。ここで、次のようなソリューションが役立ちます。 AWS向けSaaS Builder Toolkitと SourceFuseのARCフレームワーク が登場し、SaaSアプリケーションの独自の要件に対処するための強力な機能を提供します。
AWS向けSaaSビルダーツールキット
AWS向けSaaS Builder Toolkitは オープンソースプロジェクト です。 は、AWSパートナーと提携して開発され、AWS上でのマルチテナントSaaSアプリケーションの開発とデプロイを加速します。これはAWS Cloud Development Kit (CDK)上に構築されており、コントロールプレーンとアプリケーションプレーンの明確な責任を特定し、コード化することで、SaaSアプリケーションを構築するための構造化されたアプローチを提供します。

コントロールプレーンは、テナントのオンボーディング、オフボーディング、ユーザー管理、請求、メトリクスなど、SaaSアプリケーションのマルチテナント側面を管理する責任を負います。一方、アプリケーションプレーンは、SaaSアプリケーション自体のコア機能に焦点を当てます。AWS向けSaaS Builder Toolkitは、これら2つのプレーン間の明確な関心事の分離を確立し、サーバーレスイベントバスであるAmazon EventBridgeを介した通信フレームワークを提供します。
AWS向けSaaS Builder Toolkitは、コントロールプレーンとアプリケーションプレーン間で交換されるメッセージのインターフェースを定義し、マルチテナントSaaSアプリケーション開発に対する一貫した標準化されたアプローチを保証します。
AWS向けSaaS Builder Toolkitには、テナントのプロビジョニングやデプロビジョニングなど、一般的なSaaSワークフローを支援するユーティリティと抽象化も含まれています。これらのユーティリティは、開発者がコントロールプレーンからのイベントに対応し、テナント固有のリソースと構成を管理するために必要な機能を迅速かつ簡単に実装できるように設計されています。
これにより、SaaSプロバイダーは、AWS上でマルチテナントSaaSアプリケーションを構築するためのベストプラクティスアプローチから恩恵を受けることができます。同時に、特定の要件に合わせてフレームワークをカスタマイズおよび拡張する柔軟性を維持できます。
SourceFuseのARCフレームワーク
ARCは、SourceFuseが提供するオープンソースの高速アプリケーション開発フレームワークであり、最新のクラウドネイティブエンタープライズアプリケーションの開発を加速するように設計されています。これは、事前に構築されたマイクロサービスのカタログと、プライベートクラウドとパブリッククラウドの両方へのデプロイのための標準化された参照アーキテクチャを活用する包括的なソリューションを提供します。

この ARCフレームワーク は、Infrastructure as Code (IaC)、API (バックエンド)、UI (フロントエンド)の3つの主要なブランチで構成されており、それぞれがクラウドネイティブアプリケーションを容易かつ効率的に構築およびデプロイする上で重要な役割を果たします。
- インフラストラクチャ: ARCのIaCブランチは、アプリケーションをデプロイするために必要な基盤となるインフラストラクチャの管理とプロビジョニングに焦点を当てています。再利用可能なTerraformモジュールを使用することで、開発者はインフラストラクチャの要件を定義し、プライベートクラウドとパブリッククラウドの両方に一貫してデプロイできます。このブランチは、アプリケーション基盤のスケーラビリティ、回復力、およびセキュリティを保証します。
- バックエンド: ARCのAPIブランチは、アプリケーションのバックエンド機能を強化する再利用可能なマイクロサービスとコンポーネントのコレクションを提供します。認証、支払い、監査ログなどのこれらのマイクロサービスは、堅牢なLoopBackフレームワーク上に構築されており、開発時間の短縮と生産性の向上を目的としています。ARC APIは、高速アプリケーション開発と事前構築済みサービスのシームレスな統合を可能にします。
- フロントエンド: ARCのUIブランチは、最新でレスポンシブなユーザーインターフェースを構築するための事前構成済みボイラープレートとコンポーネントを提供します。開発者がAngularまたはReactのどちらを好むかにかかわらず、ARC UIはフロントエンド開発を開始するための強固な基盤を提供します。検索、ナビゲーション、フォーム要素などの再利用可能なコンポーネントを使用することで、開発者はUI開発を加速し、魅力的なユーザーエクスペリエンスを提供できます。
ARCスタックを活用することで、開発者は反復的で時間のかかるタスクのオーバーヘッドなしに、革新的な機能とビジネスロジックの構築に集中できます。標準化された参照アーキテクチャと再利用可能なコンポーネントの豊富なエコシステムにより、ARCは開発者がクラウドネイティブエンタープライズアプリケーションを迅速、効率的、かつスケーラブルに構築することを可能にします。
ARCのオープンソースの性質は、コラボレーションを促進し、コミュニティの貢献を奨励します。これにより、開発者は高速アプリケーション開発、シームレスな統合、比類のない生産性の可能性を解き放つことができます。
遠隔医療アプリケーション:ショーケース
概念実証(PoC)として、AWS向けSaaS Builder ToolkitとSourceFuse ARCフレームワークを組み合わせる力を示すために、遠隔医療SaaSアプリケーションを構築しました。AWS向けSaaS Builder ToolkitとARCの両方を利用するという決定は、両ソリューションの強みを活用し、スケーラブルなマルチテナントSaaSアプリケーションの迅速な開発を可能にする必要性によって推進されました。

このサンプルアプリケーションは、医療提供者と患者が仮想相談のためにリモートで接続するためのプラットフォームを提供します。
コントロールプレーン側では、テナント(この場合は個々の医療機関やクリニックを表す)を管理するためのSaaS管理ポータルを組み込みました。SaaS管理者は、新しいテナントをオンボーディングし、サブスクリプションプランに基づいて異なるティアに割り当て、各テナントに必要なリソースをAWS上に自動的にプロビジョニングできます。
遠隔医療アプリケーションのデプロイは、AWS CDKを活用してインフラストラクチャのプロビジョニングと管理を合理化するサーバーレスアプローチに従います。このサーバーレスアーキテクチャは、スケーラビリティ、コスト効率、および運用オーバーヘッドの削減を保証します。
アーキテクチャと実装の詳細
遠隔医療アプリケーションは関心事の分離の原則に従っており、AWS向けSaaS Builder Toolkitがマルチテナント管理を担当するコントロールプレーンとして機能し、SourceFuse ARCフレームワークがアプリケーションのコア機能を処理するアプリケーションプレーンとして機能します。

上記のアーキテクチャは、AWS向けSaaS Builder Toolkitを搭載したコントロールプレーンと、SourceFuseのARCを使用して構築されたアプリケーションプレーンの2つの主要コンポーネントで構成されています。コントロールプレーンはテナントとそのライフサイクルを管理する責任を負い、アプリケーションプレーンは遠隔医療アプリケーションのコア機能を処理します。
コントロールプレーンには、ARC UIのReactボイラープレートを使用して構築されたSaaS管理Webアプリが含まれており、SaaSプロバイダーがテナントを追加および管理できます。テナント情報はAmazon DynamoDBに保存されます。
アプリケーションプレーンでは、遠隔医療SaaSアプリはARC UIのAngularボイラープレートを使用して構築され、認証サービス、通知サービス、ビデオ会議サービスなど、さまざまな事前構築済みARCバックエンドサービスを活用しています。これらのサービスはAWS Lambda関数としてデプロイされます。
アーキテクチャには、データ分離とスケーラビリティを確保するために、各バックエンドサービス用の個別のデータベースも含まれています。Amazon Aurora Serverlessは、需要に基づいてデータベースリソースを自動的にスケーリングするために使用され、コスト効率とパフォーマンスのメリットを提供します。
コントロールプレーンとアプリケーションプレーン間の通信は、Amazon EventBridgeによって促進されます。テナントがオンボーディングまたはオフボーディングされると、コントロールプレーンはEventBridgeにイベントを公開し、これによりアプリケーションプレーンで対応するテナント操作ワークフローがトリガーされます。これらのワークフローは、AWS Step Functionsによってオーケストレーションされ、AWS CodeBuildプロセスをトリガーし、選択されたティア(Basic、Standard、Premium)に基づいてテナント固有のリソースをプロビジョニングまたはデプロビジョニングする責任を負います。
このPoCでは、Basic、Standard、Premiumの3つのテナントティアを実装しました。各ティアは異なるリソースプロビジョニング戦略に対応しています。
- Basicティア:Basicティアのテナントは、共有のコンピューティングリソースとデータベースを利用するプールされたインフラストラクチャを共有します。
- Standardティア:Standardティアのテナントは専用のデータベースを持ちますが、コンピューティングリソースとフロントエンドのデプロイはテナント間で共有されます。
- Premiumティア:Premiumティアのテナントは、専用のコンピューティングリソース、データベース、およびフロントエンドのデプロイを備えた完全に分離された環境を享受し、他のテナントからの完全な分離を保証します。

このSaaSソリューションの技術的な詳細についてさらに知るには、 私たちの GitHubリポジトリ をご覧ください。
AWS向けSaaS Builder ToolkitとSourceFuse ARCフレームワークの組み合わせにより、両ソリューションの事前構築済みコンポーネンスとベストプラクティスを活用し、堅牢なマルチテナントアーキテクチャを持つ遠隔医療アプリケーションを迅速に構築およびデプロイできました。
利点とメリット
AWS向けSaaS Builder ToolkitとSourceFuseのARCフレームワークの組み合わせは、マルチテナントSaaSアプリケーションの構築とデプロイに多くの利点をもたらします。両ソリューションの強みを活用することで、SaaSプロバイダーは開発サイクルを加速し、スケーラビリティを確保し、アーキテクチャ上のオーバーヘッドの大部分を削減できます。
開発の加速: ARCフレームワークを使用する主な利点の1つは、事前構築済みのマイクロサービスと、プラグアンドプレイメカニズムを備えたアプリのあらゆる部分に対応する多くのコンポーネントを活用できることです。そして、AWS向けSaaS Builder Toolkitは、テナントのオンボーディングやオフボーディングなど、マルチテナントの側面を管理するための標準化されたコントロールプレーンを提供します。
これらを活用することで、開発チームはコア機能の構築と維持に必要な時間と労力を大幅に削減できます。
ベストプラクティスとアーキテクチャ標準への準拠: AWS向けSaaS Builder ToolkitとARCフレームワークはどちらも、業界のベストプラクティスとアーキテクチャ標準に基づいて構築されています。SaaS Builder Toolkitは、コントロールプレーンとアプリケーションプレーンを分離する原則に従い、明確な関心事の分離を確保し、スケーラビリティと保守性を促進します。
同様に、ARCフレームワークは、開発に対する標準化された一貫したアプローチを推進します。ARCのコードスキャフォールディング/生成、標準化されたモジュール、アーキテクチャのための自動化ツールは、ベストプラクティスに従うのにさらに役立ちます。
スケーラビリティとコスト効率: AWS向けSaaS Builder ToolkitとARCフレームワークの両方がサポートするサーバーレスアーキテクチャは、PoCアプリでも示されているように、スケーラビリティとコスト効率を可能にします。Lambda、API Gateway、Aurora ServerlessなどのAWSサービスを活用することで、アプリケーションは需要に基づいてリソースを自動的にスケーリングし、オーバーヘッドを最小限に抑え、運用コストを削減できます。
シームレスな統合と拡張性:AWS向けSaaS Builder ToolkitとARCフレームワークは拡張性を念頭に置いて設計されており、開発者は必要に応じて機能をカスタマイズおよび拡張できます。
SaaSプロバイダーは、この拡張性を活用して、サードパーティサービスを統合したり、カスタムビジネスロジックを組み込んだり、特定の要件に合わせてソリューションを変更したりできます。
結論
マルチテナントSaaSアプリケーションの開発には、効率的なテナント管理、スケーラビリティ、リソース分離の必要性など、独自の課題があります。AWS向けSaaS Builder ToolkitとSourceFuseのARCフレームワークを組み合わせることで、組織は開発プロセスを加速しながらこれらの課題に対処できます。
AWS向けSaaS Builder Toolkitは、テナントのオンボーディング、オフボーディング、ユーザー管理など、マルチテナントの側面を管理するための堅牢なコントロールプレーンを提供します。一方、ARCフレームワークは、クラウドネイティブアプリケーションを構築するための再利用可能なコンポーネントの包括的なセットと標準化された参照アーキテクチャを提供します。これらのソリューションを組み合わせることで、スケーラブルでセキュア、かつ費用対効果の高いSaaSアプリケーションの迅速な開発が可能になります。
両方のツールに組み込まれた事前構築済みコンポーネント、ベストプラクティス、およびアーキテクチャ標準を活用することで、開発チームは、一般的な機能のために車輪を再発明するのではなく、革新的な機能とビジネスロジックの提供に集中できます。
以下のリソースを探索して、高速SaaSアプリケーション開発の世界に飛び込むことをお勧めします。
- AWS向けSaaS Builder Toolkit • GitHubリポジトリ - オープンソースのAWS向けSaaS Builder Toolkitプロジェクトにアクセスし、貢献し、最新の開発状況を把握してください。
- SourceFuseのARC • ドキュメント - ARCフレームワーク、そのコンポーネント、および開始方法について詳しく学びましょう。
- AWSでSaaSを構築 - AWSでSaaSソリューションを構築するためのガイダンス、パターン、リソースを提供する資料を見つけてください。
遠隔医療SaaS PoCは、サーバーレス環境でAWS向けSaaS Builder ToolkitとARCフレームワークを組み合わせる力を示しましたが、もう1つの探求分野は、 ARC SaaS EKSソリューション であり、SourceFuseによって構築された、マルチテナントSaaSアプリケーションのデプロイと管理に対するコンテナベースのアプローチを提供します。