pixta_38572861_M

Apache(アパッチ)とは?

Web会議は、Webサイト上でWebカメラやマイクを使って会議を行ないます。
そのWebサイトで多く採用されているWebサーバープログラムがApache(アパッチ)です。
この記事ではApacheについて説明します。


Apacheの歴史

Apache(アパッチ)について説明する前に、Webがどういうものかを説明します。
正式にはWorld Wide Web(WWW:ワールド・ワイド・ウェブ)といい、HTMLなどのハイパーテキストで作られたドキュメント同士をリンクして相互に参照できるようにするシステムのことです。
世界中のドキュメント間にリンクがつながっていく様子が、蜘蛛の巣のようなイメージだったのでWeb(ウェブ)と呼ばれるようになりました。
このWebシステムはHTTP(ハイパーテキスト・トランスファー・プロトコル)という通信プロトコルで実現されており、Webサーバー上で動くWWW HTTPサーバーとクライアント上で動くWebブラウザで構成されています。

Apacheは2019年2月の時点で世界で最も多く使用されているWWW HTTPサーバーです。
誕生したのは1995年ですが、一時期開発が放棄されており、現在のAppacheが作られたのは1999年以降です。
2000年前後から始まったインターネットの一般への普及に伴い、Webサーバーの需要は急拡大し、オープンソフトウェアで、知名度も高かったApacheは当時Webサーバーの9割近くに採用されていました。
インターネット上の技術の進展とともに、Webサーバーも様々な技術革新が行なわれました。
新たに作られたWWW HTTPサーバーも数多く存在し、Apacheはシェアこそ50%弱に下がりましたが、今でもトップの座を守っています。


Apacheの特徴

Apacheの特徴を3つにまとめると、古くから多くのサーバーで採用されているため技術の蓄積が多い、オープンソフトウェアのため数多くの技術者が内部を理解しており信頼性が高い、モジュール構造を採用しているため機能の追加が簡単であるといったところでしょう。
1番目ですが、Apacheは作られてから20年弱と工業製品なら原型としてそんなに古いわけではないのですが、ドッグイヤーといわれるほど進展が速いソフトウェアの世界ではかなり古株のソフトとなります。

一時期シェアを独占していたほどですから、経験が10年以上のベテランサーバー運用者はほとんどの人がApacheの導入や設定を経験していると思います。
そのため、各所の運用ドキュメントはもちろんのこと、書籍、Web上の技術ドキュメントやコラムなど大量に蓄積されたApacheについての情報を見ることができます。
これは新規のWWW HTTPサーバーでは期待できないことです。2番目のオープンソフトウェアであるということですが、企業が独自の技術として開発しているのではなく、ソースを公開し、誰もが新しい技術的な指摘や、疑問点、問題点などを議論しています。

管理はApacheソフトウェア財団が行なっていますが、議論には自由に参加することができます。
そのため、技術者に構造が理解されており、セキュリティ上の問題点などもすぐに修正されるため、高い信頼性を保つことができます。
3番目はソフトウェアの構造の話ですが、OSでいえばマイクロカーネルのようなアプローチで作られていて、基本機能はコアと呼ばれる部分に組み込まれており、拡張機能はモジュールという形で追加されます。
モジュールはApache本体に組み込まれるか、Apacheから呼び出される形で追加されます。

その後も拡張が予想される場合は呼び出し形式で、ある程度形が決まって、今後もApacheに有効な機能であれば本体に組み込む形で追加されます。
これにより、新機能はApacheを再起動させるだけで組み込むことができ、ある程度固まった機能はApache本体に組み込むことで呼び出しのオーバーヘッドを減らすという形を取ることができ、開発を容易にしています。


Apacheの今後

今でもシェアのトップを持つApacheですが、さすがにNginxのような新しいサーバープログラムに追い上げられています。
Webアプリの開発も様々な形が生まれてきて、大量の通信やセッションを処理できるNginxが追い抜きつつあります。
Apacheも開発は行なわれていますが、今後どういう方向へ発展していくのかはまだ見えていません。
こなれた技術になっているので、完全になくなるとは考えにくいですが、「WWW HTTPサーバーならApacheじゃないの?」とはもういえません。

むしろ、使い慣れた人が個人的にサーバーを建てるときや、ApacheでWebアプリを開発していたプロジェクトが自分たちの開発セットに組み込むような事例が増えるのではないかなと個人的には思います。