Amazon Web Services ブログ
ヘルスケア・ライフサイエンスチーム プロトタイピング: AWS Amplifyを利用したモバイルアプリ開発
ヘルスケア・ライフサイエンス ソリューション部では、お客様の課題に対してAWSの技術支援やアーキテクティングを実施しておりますが、支援の一つとしてプロトタイピングを提供しています。今回は、塩野義製薬株式会社(データサイエンス室、デジタルインテリジェンス部)、シオノギデジタルサイエンス株式会社と行った、モバイルアプリ開発のプロトタイピングを報告致します。プロトタイピングでのクイックな開発を実現するにあたり、共同でリアルタイムにコーディング可能な統合開発環境(IDE)であるAWS Cloud9と、フロントエンドの実装から、認証、AI、データ登録・参照、Amazon S3に蓄積したログの分析といったバックエンド実装までをAWS Amplifyを利用することで2日間でアプリ開発を行いました。
プロトタイピングとは
我々は日々の活動の中で、お客様から以下のようなお声をお聞きします。
- 解決したい課題に対する開発時間が十分に確保できない
- 社内勉強会によりAWSの理解度は向上したが、AWSサービスを組合せた開発となるとハードルが高い
- アジャイルチーム立ち上げによる社内案件推進のため、AWSを利用した開発力向上を行いたい
このような課題に対して、技術支援、アーキテクティング、ハンズオンだけでは解決できない場合や、解決までのスピードが中・長期化してしまう場合があります。そこで、我々のチームでは上記に対する解決策として、プロトタイピングを提供しています。プロトタイピングでは数日、お客様とAWSのSolutions Architect (以下、SA)が共にコーディングとAWSのサービスを組み合わせてソリューションを作成するプログラムです。プロトタイピングの実施により、AWSの理解力・開発力向上は勿論のこと、スムーズな社内案件の着手・開発に繋げることが可能です。
なぜプロトタイピング実施に至ったのか ~Customer’s voice~
プロトタイピングを実施した最大の目的は、デジタルアジャイル「チーム」を組み、集合知での課題解決トレーニングを行うことでした。社内でDx推進を担う複数の機能が協力し、専門的知識を出し合いながら、ワンチームで一つの実用的課題に取り組むことで、アジャイルチームのビルディング、課題解決を体得することを期待し、実施に至りました。加えて、多彩なAWSのサービスの理解を深め、モバイルアプリ実装における勘所も習得できると考えました。また,データサイエンス室はシオノギ製薬ソフトボール部の解析支援を行っており、プロトタイピングでテーマとした体調管理アプリの製作は選手たちのデータ活用にも貢献できると考えたことも、実施に至った理由です。
どのようなモバイルアプリを開発したか
今回、モバイルアプリで以下の機能を実装したいとの事でした。
- データ入力と入力結果の可視化
- 外部APIの結果を可視化
- 画像と動画のクラウド格納と、画像内の物体の分析結果の表示
- Twitter情報をセンチメント分析した結果を蓄積し、そのデータを可視化
これらを実現するために、フロントエンドはAWS Cloud9を利用してコーディングし、バックエンドはAWS Amplifyで用意しているライブラリを利用して、必要なコンポーネントであるAWS Lambda (とAWS Lambda Layers), AWS AppSync, Amazon Cognito, Amazon DynamoDB, Amazon Rekognition, Amazon S3をDeployしました。アーキテクチャは以下になります。
認証はAuthentication、画像・動画のUploadにはStorage、画像分析にはPredictionsを利用し、それ以外のAPIコールはAWS AppSyncに集約する事で様々なデータソースに対してリアルタイム処理を行っています。Twitter情報の分析と蓄積に関しては、こちらのHands-on 2のソリューションをDeployし、Amazon Comprehend MedicalをAmazon Comprehendに変更して、センチメント分析した結果をAmazon S3に格納しています。
今回作成したモバイルアプリの特徴は、サーバレスプラットフォームの利用と、バックエンドを全てAWS Amplifyで構築している点です。前者については、AWSのサーバレスサービスを利用する事で、サーバやキャパシティのプロビジョニング、スケーリング、パッチ適用といった運用をAWSにオフロードする事ができ、ユーザーはアプリケーション開発に集中する事が可能です。また、サーバー単位ではなく、安定したスループットや実行時間に対する支払いとなるためコスト削減にもつながる点もメリットです。後者については、Amplifyフレームワークを利用して、Amplify CLIから要件に必要なリソースを以下のように簡単に作成する事ができ、DeployやUpdateに関してもamplify push
とamplify update
により速やかにAWS上にバックエンドを反映する事が可能です。
- Amazon Cognito (認証)
- Amazon DynamoDB (データ登録・参照)
- AWS AppSync (GraphQL API)
- Amazon Rekognition (画像分析)
- AWS Lambda (外部APIとAmazon Athena呼び出し用)
- AWS Lambda Layer (共通ライブラリ)
- Amazon S3に関しては作成済みの物を利用したため、マニュアルセットアップの手順を実施。
プロトタイピングの効果 ~Customer’s voice~
プロトタイピングで私達が得たものは以下です。
- 複数機能から構成されるアジャイルチームの経験
- 実用レベルのモバイルアプリ
- これまで扱ったことのないAWSサービスの用途と使用方法の知識
- 参加メンバー全体のAWS活用スキルの向上
参加したメンバーへ実施後アンケートを取った所、今回の取り組みを5点満点中4点以上で評価した参加者が約9割であったことからも、プロトタイピングの満足度が伺えました。今回のプロトタイピングの実施をきっかけに、自発的にAWSの理解度を深め、社内にイノベーションを起こすことが出来る人材が増えることを期待しています。
写真:開発中のプログラムを議論している塩野義製薬 データサイエンス室 宮澤昇吾さんと山下彩花さん
まとめ
このようにAWS Amplifyを利用する事でモバイルアプリを簡単に実装する事ができます。また、プロトタイピンにより様々なAWSサービスを組み合わせて実装・コーディングを行う事で、お客様はAWSの理解力を深め、開発スキルの向上が期待できます。ヘルスケア・ライフサイエンス ソリューション部では、課題解決に対するアプローチの一つとしてプロトタイピングが有用だと考え、提供しております。
著者について
小泉 秀徳 (Hidenori Koizumi)は、ヘルスケア・ライフサイエンスチームのソリューションアーキテクトです。生物学・化学のバックグラウンドを活かしたソリューション作成を得意としています。最近は、AWS Amplifyを利用したアプリ開発や、コンテナサービスを利用したソリューション開発を行っています。