APサーバの役割とは?Webサーバとの違いをしっかり理解しよう!

APサーバとは

APサーバ(アプリケーションサーバ)の役割とは何でしょうか?

実は、WebエンジニアのなかにもAPサーバを知らない方はたくさんいます!

特にPHPしか触ったことがないエンジニアに非常に多いです。

PHPで作ったアプリケーションはAPサーバを必要としないので、知らなくて当然といえば当然。理由はのちほど。

キツネ

僕もPHPエンジニアだから、APサーバを知ったのは遅かったんだ!

今回は、そんな言語によっては使わないAPサーバですが、エンジニアなら絶対に知っておくべきだと思うので紹介します。

APサーバの役割とは

APサーバ(アプリケーションサーバ)とは、アプリケーションを実行するためのサーバです。

アプリケーションってのは、プログラマーが作ったプログラムのこと。

つまり、プログラミングして作ったアプリケーションを動かすには、APサーバが必要ってことなんです。

図を見てもらえるとわかりますが、APサーバはWebサーバとDBサーバの間に位置しています。

Web三層構造システム

  1. 「Webサーバ」からのリクエスト(要求)を「APサーバ」が受け取る
  2. 受け取ったリクエストに応じて、アプリケーションを実行
  3. アプリケーションからDBサーバを操作し、その結果を処理に組み込む
  4. 実行結果をWebサーバに渡す

APサーバは、Webサーバとセットで使うことがほとんどです。

必要であればDBサーバからデータを操作し、データの取得や検索、削除、更新などもおこないます。

ちなみに、上のようなシステムを「Web三層構造システム」っていいます。

APサーバとWebサーバの違い

WebサーバとAPサーバの違いで大きいのは、サーバを単体で使うことができるかどうかというところです。

動的コンテンツのない、静的コンテンツだけのサイトを公開するのであれば、APサーバを使わずともWebサーバ単体で実現することができます。

ですが、APサーバはアプリケーションを実行する機能しか持たないため、APサーバを単体で使うケースはほとんどありません。

  • 動的コンテンツ…RubyやPHPなどのプログラム
  • 静的コンテンツ…HTML、画像など

ただし、Webサーバ機能を備えているAPサーバ(PumaやTomcatなど)も存在します。

これは開発をスムーズにおこなえるよう、簡易的なWebサーバ機能がおまけでついているからです。

ただし、あくまでおまけ。多くの人が利用するような本番環境では、大量のアクセスに耐えられないので実用的ではありません。

APサーバにあるWebサーバ機能は、開発の補助的なものと理解しておきましょう。

APサーバの種類

APサーバにもいくつかの種類があります。

  • Puma(プーマ)
  • Unicorn(ユニコーン)
  • Apache Tomcat(アパッチ トムキャット)

ほかにもたくさんありますが、扱う言語によっても変わってきます。

Rubyであれば、PumaやUnicorn、JavaであればTomcatを使います。

ちなみに、PHPの場合はAPサーバを使う必要がありません。

なぜなら、Apacheのモジュール(機能)を使うことで簡単にAPサーバのような仕組みを導入できるからです。

つまり、APサーバの知識がなくてもWebサーバの知識さえあればサイトを公開できちゃうのがPHPなんです。

そして、僕がRubyをおすすめする理由の1つがここにあります。

Webエンジニアなら、APサーバの仕組みをしっかり理解して使いこなしてほしいんですよ。

多くの業務をこなしていくにつれ、色々な案件を担当することになり、採用された言語によってはAPサーバの知識が必要になることだってあるからです。

最初からRubyをさわって慣れておけば、実際の現場で慌てなくて済みますよね。

APサーバの環境構築

APサーバもWebサーバ同様、Windowsではなく、Linuxに環境を構築することをおすすめします。

Web業界ではLinuxに環境を構築するのが一般的なので、勉強するときもLinuxに構築するほうが実用的なスキルを身につけられます。

Windowsのなかに「Vagrant」「VirtualBox」という仮想環境ツールを入れることで、簡単にLinuxを使えるようになりますよ。

ちなみに、Rubyから始める人は「Ruby on Rails」というフレームワークに「Puma」というAPサーバが付属しているので、より簡単に試してみることができます。

まとめ

  • APサーバは、アプリケーションを実行するためのサーバ
  • APサーバは、WebサーバとDBサーバの中間に位置する
  • APサーバ単体ではあまり使わない
  • 簡易的なWebサーバ機能を備えているAPサーバもある
  • どのAPサーバを選ぶかは、言語によって異なる
  • APサーバを使いたいなら、Linuxに構築する

APサーバは、ほかのサーバと比べてあまり目立たないのですが、Webアプリを開発するうえで必要になることがほとんどです。

APサーバに対して、なにか難しい対応をするということはないので、なんとなく概念だけつかんでもらえればOKだと思います。

APサーバの次は、「DBサーバとは?役割や種類を初心者にもわかりやすく解説!」を読んで、DBサーバの仕組みについても学びましょう!

テキストのコピーはできません。