Amazon Web Services ブログ

Amazon Neptuneを活用した薬剤検索ツールのプロトタイピング

昨今、ビジネスニーズの多様化に伴い、社内外でのアプリケーションのニーズも複雑化しており、従来の構成では要件やパフォーマンスを満たせない場合もあります。このようなニーズの多様化に伴い、データベースもユースケースに基づいて選択する必要があります。AWSでは、 Purpose-build databaseを用意しており、ユースケース別にデータベースタイプを選択できます。IQVIAサービシーズ ジャパン株式会社(Research & Development Solutions, Clinical Operations, Site Management Support, Centralized Monitoring)と実施したプロトタイピングでは、薬剤検索アプリケーションの特性から、対象データをグラフデータとして保存することで、アプリケーションニーズと高パフォーマンスを期待できると考え、Amazon Neptuneをデータベースとして採用しました。今回は、グラフデータベースである Amazon Neptune を活用したプロトタイピングをご紹介致します。

プロトタイピングの実施背景 ~Customer’s voice~

社内ではExcelやTibco Spotfireを活用した薬剤検索ツールを開発しておりましたが、複雑なリレーションや膨大なデータ量(92万レコード)により検索速度が優れず、実務運用に適しておりませんでした。さらに、開発に最適なソリューションを選択出来ておらず、操作性やユーザビリティが充分ではありませんでした。そこで、パフォーマンス改善やユーザーフレンドリーな画面構築のための最適なソリューション選定と実装を目的とし、今回のプロトタイピングを実施しました。

アーキテクチャ概要

各サービスはCommand Line Interface (CLI)を利用してデプロイしています。Amazon NeptuneはAWS CLIを利用してデプロイし、AWS LambdaAWS AppSyncなどのバックエンドはAmplify CLIを利用して設定やデプロイを行いました。フロントエンド実装には、Amplify UI ComponentsAmplify Librariesを利用して、Reactとバックエンドとの統合を行っています。アプリケーションのホスティングにもAmplify CLIを利用して、Amplify Consoleへホスティングしています。

グラフデータへのクエリにはGremlinを利用してAWS Lambdaからアクセスしています。

プロトタイピングの効果とユーザーの声 ~Customer’s Voice~

プロトタイピングにより、起動および検索速度の爆発的な向上とともに、ユーザーフレンドリーで操作性に優れた検索画面を実現することが出来ました。ユーザーからは、「検索速度が速く、検索結果をダウンロードできるのが便利。」「タブレットを使用した検索が可能で、出先で利用できて助かる。」といったコメントを頂くことが出来ました。

今後の展望 ~Customer’s Voice~

社内には多種多様で莫大なデータが点在しており、これを有効に活用したいという意見が多く存在しております。このようなニーズを叶えるべく、AWSの多様なサービス(S3やamplify等)を活用し、データレイクの実現から機械学習やWeb/モバイルアプリの実装を目指し、有効なデータ活用を行っていきたいと考えています。

まとめ

このようにユースケースに応じたデータベースを選択することで、検索速度の向上が期待できます。また、プロトタイピングによりAWSサービスを活用してユーザビリティに優れたアプリケーション実装を素早く行うことができます。今後もプロトタイピングによりお客様をサポートし、課題解決に寄与できればと考えております。


著者について

小泉 秀徳(Hidenori Koizumi)は、パブリックセクターのプロトタイピングソリューションアーキテクトです。理学のバックグラウンド(生物学、化学など)を活かした研究領域でのソリューション作成を得意としています。最近では、AWS AmplifyやAWS CDKでのアプリケーション開発を行っています。趣味は旅行と写真撮影です。