【月間10万PV達成】ブログの作り方を無料公開中!

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

APサーバとは

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

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

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

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

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

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

APサーバの役割とは

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

「アプリケーション」というのは、プログラマーが作ったプログラムのことですね。

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

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

Web三層構造システム

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

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

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

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

APサーバがないと、アプリケーションは動かないんだね!
Webシステムの仕組み「クライアントサーバシステム」と「Web三層構造」の仕組みとは

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

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

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

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

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

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

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

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

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

APサーバのWebサーバ機能は「おまけ」だよ!
WebサーバとはWebサーバとは何か?仕組みやソフトウェアの種類をわかりやすく解説!

APサーバの種類

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

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

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

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

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

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

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

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

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

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

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

Rubyは「APサーバ」を使うから勉強になるんだ!
RubyとPHPはどっちを選ぶRubyとPHPの違いとは?どっちが難しいかプログラミング難易度や将来性で比較

APサーバの環境構築

APサーバもWebサーバ同様、Windowsではなく「Linux(リナックス)」に環境を構築することをおすすめします。

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

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

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

Linux環境でRailsを使えるようになれば、APサーバに詳しくなりそうだね!
Linux環境構築【Linux環境構築】VagrantとVirtualBoxとは?使い方を初心者向けに解説!

まとめ

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

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

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

次は「DBサーバの仕組み」を読んで、DBサーバについても学んでおきましょう!

またね、キツネ(@kitaaaa_kitsune)でした!

【Web入門】システム開発の基本知識を勉強しよう!【初心者】【Web入門】システム開発における基本的なIT知識を勉強しよう!
テキストのコピーはできません。