クラウドアプリケーション

AWS上の機械学習アーキテクチャ構築

AWS上でアプリケーションを開発する際の構築支援を行います。アプリケーションの目的や将来の拡張性をヒアリングした上で、最適なアーキテクチャを提案し、構築するための運用ノウハウをお伝えしながら一緒にシステムを構築します。

一般的なWebアプリケーション開発では、インフラ要件がアプリケーションの機能と密接に関わっていることが多くなっています。ストレージの管理は?データベースの規模、安定性は?アプリケーションのデプロイ方法は?その他、様々な特殊な要件についても対応することが可能です。

この例では、機械学習をバッチ処理で行うために、AWS BatchでGPUインスタンスを使用して、アプリケーションからPHP SDKを利用してジョブを実行しています。画像データはS3経由で取得するようにし、結果を再度S3に保存します。AWS BatchはAWS ECSを利用して自動的にインスタンスを起動してDocker上のアプリケーションをバッチ処理する仕組みですが、ECSのホストインスタンスのタイプに応じて様々な選択肢があります。GPUインスタンスがFargateタイプでは対応していないことから、ECS agentやNVIDIA driverをインストールしたホスト用のオリジナルAMIを作成して、その上でバッチ処理を動作させるようにしているため、機械学習フレームワークを柔軟に選択することが出来、カスタマイズ性が高まっています。

その他、Terraform Cloudを利用してIaCで構成を変更できるようになっているため、柔軟に要件変更に対応しています。アプリケーションのデプロイも、AWS CodePipelineやCodeBuildをGithubと連携して、ワンアクションで行えるようにしています。

このような、1から最適なアーキテクチャを作り上げるお手伝いだけでなく、作り上げたアーキテクチャのレビューや、アプリケーション開発上の業務効率化についてのコンサルティングなど、様々なご要望に柔軟に対応いたしますのでお気軽にお問い合わせください。

TOP