#1.この記事の内容
Webアプリケーション開発に関して勉強した連載記事の1回目です.(連載の目次はこちら])
本記事では,実装するWebアプリケーションの構成について調べた内容を記載します.
#2.Webアプリケーションフレームワークの選定
本記事の執筆時点では主要なフレームワークが3種類あります.
今回はデータ分析や機械学習を扱いますので,Pythonで記述するDjangoを採用しました.
Webフレームワーク | 言語 |
---|---|
Ruby on Rails | Ruby |
Django | Python |
Laravel | PHP |
#3.Webサーバ構成
アプリケーションのフレームワークをDjangoに定めましたので,Djangoを前提にサーバやデータベースの構成を考えました.
Webアプリケーションの基本概念を参考にさせていただき,安定性や推奨されている点を優先し,下図の構成をとることとしました.
データベースは,データセットと機械学習モデルとの関連や,機械学習モデルのパラメータなど,多くのデータの関係性を加味する必要がある為,機能が豊富とされるPostgreSQLを採用することとしました.
WebページのデザインはBootstrap一択のようでしたので,これを採用します.Bootstrapを用いたCSSフレームワークが無料で公開されていましたが,まずはお勉強ということで,スクラッチで環境を構築してみます.
#4.仮想化
Webアプリケーションの実装を進めるにあたり,Webサーバの構築・起動が必要となりますが,パソコン毎に環境を整えるのはパソコンの移行やアップデート,環境の修正など大変なので,docker-composeを使用して仮想化します.
仮想化の対象は,「Webサーバ」「アプリケーションサーバ」「データベースサーバ」でこれらのDocker Imageをビルドし,コンテナ起動します.
#5.さいごに
本記事で,実装するアプリケーションサーバの構成について調べた内容を整理しました.
次回以降の記事で具体的な実装方法を記載します.
#6.関連リンク
- どれ使うべき?3大WebフレームワークRails・Django・Laravelを徹底比較してみた
- Webアプリケーションの基本概念
- [PostgreSQL vs MySQL: その違いとは](PostgreSQL vs MySQL: その違いとは)