IT

Webサーバとアプリケーションサーバの違いをわかりやすく解説します

こんにちは!ウマロです。

最近、WEBアプリケーションの仕組みについて勉強していまして、それ関係の書籍やサイトを漁っている初学者です!

今回は「Webサーバ」と「アプリケーションサーバ」(以下、APサーバ)について、備忘の意味を込めてわかりやすく解説したいと思います!

この記事を読めば以下のことが理解できます!

学習内容
  • サーバとは何かが分かる。
  • サーバが何で構成されているか分かる。
  • WebサーバとAPサーバの違い・役割が分かる。
  • Web3層構成について分かる。
  • Web3層構成のメリットが分かる。

ITインフラについて勉強されている方の参考になれば幸いです!

サーバとは?

ここでは、前提知識となる「サーバ」にどういった役割があるのかについて解説します。

そもそもサーバって何?

サーバは英語で書くと「server」と書きます。

訳すると「仕える人とか「給仕人」と言う意味です。

つまりサーバとは、現実の世界で例えるなら「サービスを提供するレストランのウェイター」というイメージです。

「お客の注文を受け取り、注文通りの料理を提供する。」
これを言い換えるなら、
ユーザのリクエスト(要求)を受け取り、正しいレスポンス(結果)を返す。
と言う役割を担っているのがサーバです。

サーバを構成するものは何?

では、サーバの中身はどうなっているのでしょうか?
サーバの中身は図で表すと以下のようになっています。

一番下にある「ハードウェア」は、私たちが実際目で見て触れるものです。(ゲームでいうとPS4とかSwitchとかですね)

また、その上に乗っている「OS」「ミドルウェア」「アプリケーション」には、私たちは手で触れることができません。

今回解説するWebサーバとAPサーバが位置しているのは「ミドルウェア」の部分となります。

ここで、解説から漏れてしまったアプリケーションとOSについて簡単に解説します。

【アプリケーション】
アプリケーションとは、人間がやりたいことをやろうとしたときに、動かすソフトウェアです。

【OS】
OSとはOperating System(オペレーティング・システム)の略です。
OSの役割は、コンピュータを操作するための基本的な機能を担うことです。



ミドルウェアとは?

ミドルウェアとは、その名の通り「アプリケーションとOSの中間的な処理を行う」ソフトウェアです。

「中間的な処理」と言われても、なんだかしっくりこない方が多いと思いますが、ここでは「ある機能に特化してOSとアプリケーションを補助するソフトウェア」という理解で十分です。

OSはサーバを動かす上で必須のものですが、あくまで基本機能しか持っておらず、業務で求められる機能までは備えていません。

しかし、ミドルウェアをインストールすることで特定の処理や複雑な動作が可能になります。
そして、ミドルウェアを構成しているのが、「Webサーバ」「APサーバ」「データベースサーバ」の3つとなります。

ミドルウェア分類
製品
WebApache HTTP Server, IIS, Nginx
APuCosminexus Application Server, JBoss, Tomcat, WebLogic Server, WebSphere Application Server
DBDB2, MariaDB, MySQL, Oracle Database, PostgreSQL, SQLServer

 

Web3層構成とは

現在、多くのWebサービスは、「Web3層構成」という設計で作られていることが多いです。
Web3層構成は、次の3つで構成されています。

  • Webサーバ(層)
  • APサーバ(層)
  • データベースサーバ(層)

これら3層の役割について解説します。

クライアント・サーバシステム

現在の企業における一般的なシステム構成は「クライアント・サーバシステム」と呼ばれます。

Think IT(シンクイット)より参照

上図のように、「クライアント」と「サーバ」のように役割が非対称になっており、クライアント端末に専用のアプリケーションをインストールしなくてもWebブラウザのみでシステムを利用できるという非常に便利なものです。

対称の役割を持つ端末が相互に通信することを「Peer to Peer(P2P)」と呼びます。

そして「Web3層構造」という部分が次に説明するWeb、AP、DBに特化した機能を持つサーバ群です。

Webサーバの役割

主に静的なコンテンツ(文章、画像、動画など時間や閲覧する人によって内容が変われないもの)を提供する役割のサーバです。

今ご覧になっているこのブログサイトも、誰が見ても同じ内容なので、「静的コンテンツ」と言えますね。

APサーバの役割

主に動的コンテンツ(リクエスト内容によって内容が変わるもの)や業務処理を提供するサーバ。このサーバ上にアプリケーションを実装することが多いです。

APサーバは、Webサーバから受けたリクエストを元にJavaやPHPなどで作成されたアプリケーション を実行して動的コンテンツを生成します。

また、必要であればDBサーバへリクエストを行い、返ってきたデータを加工して「動的コンテンツ」に埋め込みます。

DBサーバの役割

データを提供するサーバ。主にAPサーバからのリクエストに従ってデータを返します。性能を求められていることが多く、物理サーバも処理能力の高いものを使用しています。また、扱うデータ量が多いためストレージ装置に接続して領域を確保しています。

システムによってはWebサーバとAPサーバを1台に統合して一つのサーバ(WebAPサーバ)としたり、Webサーバがなかったりなど変則構成もありますが、基本的にはこの3層でクライアントからの処理に対応する構成をとります。

Web3層構成のメリットとは

ここではなぜWeb3層構成を取る必要があるのか解説します。
理由としてはいくつかあるのですが、代表的な3つをご紹介します

パフォーマンス面でメリットがある

ちょっと昔話をすると、APサーバがなかった時代は、先ほどの話のようにWebサーバがAPサーバの役割を担っていました。

WebサーバとDBサーバの2層構成だったわけですね。

しかし、これだとWebサーバに負荷がかかり処理が重くなってしまいました。要するに、頻繁に動作遅延が起きていたんです。

そこで、HTMLや画像などの静的なコンテンツは「Webサーバ」が処理し、動的なコンテンツは「APサーバ」が処理することで負荷を分散し、安定稼働を目指したわけですね。

保守性の面でメリットがある

Webシステムは基本的に「止まることが許されない」サービスです。

しかし、扱っているものは機械であるためいずれは故障します。また、プログラミングのエラーといった、ヒューマンエラーが起こることもあります。

なので、「システムが止まっても、すぐに復旧できることを前提にWebシステムを構築する必要があります。

3層構成にすることで、どの部分に障害あるのかすぐに判断ができますし、システム全体を全停止するのではなく、一部の機能の停止で済む場合もあります。

コスト面でメリットがある

1層構成の場合、故障や更新があった場合はそれらすべてを変更する必要があり、膨大なコストがかかります。

3層構成にすることで、それぞれの機能を分離し、変更できるため、更新コストを削減することができます。



まとめ

  • サーバとは、ユーザにサービスを提供してくれるものである。
  • サーバは、上から「アプリケーション」「ミドルウェア」「OS」「ハードウェア」の4つで構成されている。
  • Webサーバは静的コンテンツの処理を行い、APサーバは動的コンテンツの処理を行う。
  • Web3層構成は、「Webサーバ」「APサーバ」「データベースサーバ」から構成される。
  • Web3層構成にすることで、「パフォーマンスの向上」「保守のし易さ」「コスト削減」などのメリットがある。

以上が今回の学習のまとめとなります!

WebサーバやAPサーバについて理解できましたか?

普段何気なく利用しているWebサービスですが、仕組みを理解しておくのはインフラエンジニアを目指す方にとっては重要な知識となるので是非覚えておいてくださいね!

それでは、今回はここまで!!

ではでは~、♪( ´▽`)