※qiita初投稿です。。。
これらは全てミドルウェア?
- Webサーバー、APサーバー、DBサーバー、管理サーバーはいわゆるミドルウェアというもの。
- では、ミドルウェアとは?
- middleと名前のつく通り、アプリケーションとOSの中間的な処理を行うソフトウェアのこと。つまり、「ある機能に特化してOSとアプリケーションを補助するソフトウェア」との言い換えることができる。
- ミドルウェアが必要な理由。OSだけではダメ?
- OSはサーバーを動かす上で必須だが、基本機能しか持っていないため、業務で求められる機能は備えていない。
- 特定の機能を持つミドルウェアをインストールすることによって、OSにない部分の機能を補完できる。
- ミドルウェアの種類
- Web
- Apache HTTP Server
- AP
- Tomcat
- DB
- MySQL, Oracle, PostgresSQL
- バックアップ
- ジョブ管理
- 監視
- 高可用性クラスタ
- Web
クライアント・サーバシステムとWeb3層構造
- いつも使っているシステムの構成は、「クライアント・サーバーシステム」
- クライアントとサーバーで役割が違うのが特徴
- クライアント:データ入力
- サーバー:入力された値を処理、加工、出力
- Web3層構造が、Web、AP、DBに特化した機能を持つサーバー群
Webサーバー、APサーバー、DBサーバー、監視サーバー
Webサーバー
-
役割
クライアントからのリクエストに対して、
- 静的コンテンツを見せること
- HTMLの内容をそのまま表示
- APサーバに動的コンテンツを要求し、返ってきた結果を見せること
- DBに格納されている値を分析し、表示
- 特定の入力やボタンが押された場合、表示
- http://www.bfts.co.jp/aaa.html というリクエストが来たら、aaa.htmlの内容を表示する感じ。ここで、何かの処理が必要だった場合、APサーバーに問い合わせる。
- 静的コンテンツを見せること
APサーバー
- 役割
- Javaなどで作成されたアプリケーションを実行して動的コンテンツを作成する。
- 「1+1」の結果は?
- 必要であれば、DBサーバーにリクエストを飛ばし、帰ってきたデータを加工して「動的コンテンツ」に埋め込む。
- 先月の来客者の年代別人数は?
- Javaなどで作成されたアプリケーションを実行して動的コンテンツを作成する。
DBサーバー
- 役割
- APサーバのリクエストに従って「SQL」を実行し、データを取得、更新、削除する。
監視サーバー
- 役割
- サーバーやネットワーク等、周辺環境の状況を定期的にチェックして、正常に動作しているかをスクリプトや監視ツールを使ってチェックをする。
- 障害原因の早期特定や、予防につながる
- 常に安定稼働を求められるシステムにおいて必要な存在
参考:サーバー監視とは?目的やツールの選び方、自動化について解説 | オージス総研
最後に、、Web3層構造がなぜ採用されるのか
- セキュリティが高いため
- DBサーバーには、多くの顧客情報が格納されている。
- DBサーバーにたどり着くまでに、Webサーバー、APサーバーを経由するため、より堅牢な設計。
- 管理がしやすい
- アプリケーションで障害が起きているならAPサーバーを修正といった感じで修正が容易。
- 負荷が増え拡張が必要な場合も、どのサーバーを拡張すればいいのかを検討し、実行すればOK。
- デメリットも、、
- 各ミドルウェアを各サーバーにインストールする=ミドルウェアと同じ数のサーバーを購入、運用する必要がある。
- いくら3階層に分けたとはいえ、バグがあるとシステムを守ることはできない。
参考サイト:ミドルウェア(Web、AP、DB)について知ろう