サービスに関連する技術紹介
サスメドのサービス構成
サスメドでは、主に3つのサービスを開発しています。
-
治療用アプリ:不眠症治療アプリ
-
臨床試験/治験プラットフォーム:Susmed System
-
自動分析サービス:Awesome Intelligence
これらのサービスを実現するために、下記のような開発を積極的に行なっています。
-
マネージドサービスをフル活用した運用省力化したIT基盤
-
データ改竄を限りなく不可能とするブロックチェーン基盤
-
設定に従い様々な通知や権限やデータを扱えるWebアプリ
-
設定に従い様々なアンケートが自動生成できるスマホアプリ
-
臨床試験/治験用の特殊なスマホの入力コンポーネント
-
治療のための行動変容を促せるアプリデザイン設計
-
・・・etc
ホームページでは、その一部を紹介させていただきます。

事例1:自動分析サービス"Awesome Intelligence"のIT基盤構成
自動分析サービスは、csvファイルをアップロードし、予測したい変数を選択するだけで、データ分析が実現できます。分析後は、分析結果のパワーポイントや作成された予測モデルのダウンロードができます。また、予測したいcsvファイルをアップロードすることで、予測結果をダウンロードすることもできます。
本サービスは、大きく下記の2つのシステムに分かれています。
-
エンドユーザが主に利用するWebシステム
-
非同期に分析を行う分析ジョブシステム
各システムはAWS上に構築し、ポリシーとして可能な限り運用負荷を下げ、マネージドサービスを利用するものとしています。サスメドでは、他のシステムでも同様にマネージドサービスを活用しており、マネージドサービスに掛かるコストを許容して運用コストを下げるようにしています。これによりエンジニアが開発に集中できる時間を最大化し、少数精鋭での開発を実現しています。
自動分析サービス"Awesome Intelligence"のアーキテクチャは下記のようになっています。

本システムのエンドユーザは管理用のWebシステムにログインし分析したいデータをアップロードすれば、自動的に分析が開始されます。
分析は非同期で実行され、分析が終わるとWebシステムにおいて分析結果がダウンロードできるようになります。
-
エンドユーザがアップロードしたデータ、及び分析結果は暗号化してS3に保持。
-
ユーザ管理や分析タスクなどその他のデータはDynamoDBに保持。DynamoDBではキャパシティモードとしてオンデマンドを採用し、コスト最適化及びスケーリングに関わる運用を省く。
-
静的コンテンツはS3経由でCloudFrontから配信。
-
APIサーバとしてFargateを採用し、ALB経由でコンテナが処理。インスタンスレベルの管理は省き、スケーリングを簡略化。
-
認証基盤にはCognitoを採用。
Webシステム
Webシステムにおいて依頼された分析は本システムで処理されます。
分析を行うハイスペックなEC2インスタンスをオンデマンドで起動して、そこで実際の分析を行います。
具体的には下記のような手順となっています。
-
分析の依頼を受け取るとStepFunctionsを起動し、その1stepとしてLambdaがEC2instanceを起動。
-
EC2インスタンスのスペックは、分析対象ファイルから推定。
-
EC2インスタンスがタスクを実行。必要な情報はDynamoから読み取り、データはS3からダウンロード。
-
EC2インスタンスがタスクを実行中、StepFunctionsが終了待ちのloopに入る。
-
EC2インスタンスがタスクを終了後、結果をDynamoDBに書き込み、分析レポートをS3にアップロード。
-
Webシステムから結果のファイルをダウンロードできるようになる。
分析ジョブシステム
上記システムのAWSへの構築は、全てTerraformを用いてコードビルドしています。サスメドはこのシステムのビルドに限らず、全てにおいて手作業を極力なくすことで、運用の省力化と品質の担保を同時に実現しています。また、dev/stg/prd環境や弊社内部利用の環境の構築も同じコードで実現しており、同じ構成を確実に保っています。
事例2:タイトル未定(スマホアプリ関連)
coming soon...
事例3:タイトル未定(臨床試験/治験プラットフォーム関連)
coming soon...