スポンサーリンク

Webアプリケーションの全体構造 Webアプリケーション開発

Web3層構造とは?メリット、MVCとの違い、AWSで構築するには?

投稿日:2021年3月11日 更新日:

Web3層構造とは?

Web3層構造とは、Webアプリケーション(Webシステム)を構築するときの物理的なサーバーの構造です。

1つの物理的なサーバー(筐体)にWebサーバー、アプリケーションサーバ-、DBサーバーの3つの機能を持たせるのではなくて、1つの物理的なサーバーに1つの機能を割り当てる要する構成です。

Web3層構造の図

各層の役割とソフトウェアを表にまとめました。

WebサーバーアプリケーションサーバーDBサーバー
役割HTTPリクエストの受付とレスポンスの返却。
静的コンテンツ(HTML/CSS/JavaScript/画像/動画...)を配信する。
アプリケーション(Java/SpringBoot)・動的処理を実行する。データベース機能を提供する。
ソフトウェア名・Apache HTTP Server
・Nginx
・IIS(MicroSoft製)
・Tomcat/Jetty/GlassFish(Java)
・Puma/Unicorn(Ruby)
・mod_php(PHP) *1
・mod_wsgi(Python) *1
・MySQL
・PostgreSQL
・Oracle
・Windows SQL Server
Web3層構造における各層の役割とソフトウェア

*1について・・・PHPとPythonはアプリケーションサーバーを用意する必要はありません。WebサーバーのApacheに、拡張モジュールであるmod_phpやmod_wsgiをインストールすることで動的処理を実行できるようになります。

代表的なWebサーバーソフト

Webサーバーとして使用されるソフトウェアはオープンソースのApachとNginxがほぼ占有しています。マイクロソフトのお客さんは、IISを使用することがあるようです。

市場シェアソフトウェア名ベンダー
50%Apache HTTP Server(オープンソース)Apacheソフトウェア財団
35%Nginx(オープンソース)Nginx社
15%IISMicroSoft社
Webサーバーソフトのシェア

代表的なDBサーバーソフト

DBサーバーソフトはいわゆるRDBMSです。

市場シェアソフトウェア名ベンダー
MySQL(オープンソース)Oracle
PostgreSQL(オープンソース)
Oracle databaseOracle
SQL ServerMicroSoft社
DBサーバーソフトのシェア

Web3層構造のメリット・デメリットは?

なぜ、Webアプリケーションを3層構造にしておくか、なぜ、そうする必要があるのかと言うと、層に分割しておくメリットがあるからです。

メリット

・層を分けることで、サーバーの負荷分散ができ、処理の高速化と故障しにくさが期待できる。

・層を分けることで、故障範囲を限定でき、サーバーの取り替えが簡単になる。特定の層だけ故障したら、その層だけを取り替えれば済むので楽になります。

・層を分けることで、冗長化(複数台構成)がしやすくなり、大量リクエストに対する対策がとりやすくなる。

デメリット

・層を分けることで、物理サーバーを複数用意する必要があり、コスト(お金)がかかる。

Web3層構造とMVCフレームワークの違いは?

Web3層構造は、作成するWebシステム全体のサーバー構造の話です。

MVCフレームワークは、3層の真ん中、アプリケーションサーバーでアプリケーションを構築するときのモジュール構成(クラス構成)の話です。

Web3層構造をAWSクラウドで構築するには?

AWSでWeb3層構造を作るには、次のようなサービスを組み合わせれば良い。

WebサーバーアプリケーションサーバーDBサーバー
AWSのサービス名Amazon EC2Amazon EC2Amazon RDS
概要LinuxコマンドでApacheまたはnginxをインストールする。・LinuxコマンドでJava(JDK)をインストールする。
・SpringBootの場合は組み込みTomcatを使用する。
SpringBootでない場合はTomcatをインストールして、Javaプロジェクトの.warを配置する。
RDSは好きなRDBMSを選択すれば良い。
AWSでWeb3層構造を作る

Udemyのハンズオン動画講座でSpringBootのスキルを磨く!

スポンサーリンク

-Webアプリケーションの全体構造, Webアプリケーション開発

Copyright© 【Spring Hack】 , 2022 All Rights Reserved Powered by AFFINGER5.