1. OSSのレキシラジオ
  2. EP10: Apache HTTP Serverのレ..
2026-02-09 11:41

EP10: Apache HTTP Serverのレキシ〜つぎはぎのコードからWebの覇者へ。「The Apache Way」が築いたオープンソースの礎〜

今回のテーマは、Webの歴史そのものと言っても過言ではない「Apache HTTP Serverのレキシ」です。

かつて世界シェア70%以上を誇り、インターネットの急成長を支えたこの巨人は、実は「あるWebサーバーの開発停止」によるカオスから生まれました。

なぜ、世界中の管理者は自分たちでパッチ(修正プログラム)を書き始めたのか?「つぎはぎだらけ(A Patchy)」という名前の本当の意味とは?そして、技術的な覇権争いの中で生まれたNginxとの関係性とは?

単なるソフトウェアの歴史にとどまらず、現在のオープンソース開発の理想形とされる「The Apache Way」というガバナンスモデルがどのように形成されたのか、そのドラマチックな物語を紐解きます。

サマリー

Apache HTTP Serverは、1990年代半ばに登場したオープンソースのWebサーバーであり、その後のWebの発展に大きな影響を与えています。Apacheソフトウェア財団は、オープンソースコミュニティにおける協力や信頼性の基盤を築いた重要な組織です。

Apacheの誕生と歴史
こんにちは、OSSのレキシラジオです。このポッドキャストは、現役エンジニアであり、今年の夏こそは絶対に子供たちと花火をしたいと目論んでいる私、hentekoが、毎週一つのOSSプロジェクトを取り上げて、その歴史や背景にある物語を紹介していく番組です。
いや、実はですね、下の子が来月で3歳になるんですが、そろそろ今年の夏くらいには手持ち花火を解禁してもいいんじゃないかなと思っているんですよね。
妻にはまだ危ないでしょって一周されそうな気もしてるんですが、なんとか説得して、夏の思い出を作りたいなと思っています。
さてそんな個人的な野望はさておき、今週のテーマに参りましょう。今週はWebの歴史そのものといっても過言ではない、Apache HTTP Serverの歴史についてお話しします。それでは見ていきましょう。
まず、Apache HTTP Server、通称Apacheについて簡単におさらいしましょう。
Apacheは、1990年代半ばにオープンソースとしてリリースされたWebサーバーです。
技術的な特徴としては、モジュール構造を採用している点が挙げられます。
必要な機能をプラグインのように追加できる柔軟な設計となっているというような形です。
また、設定ファイルを使うことでサーバー全体を再起動せずに設定変更が可能という点も画期的でした。
最先期には世界シェアの70%以上を占めていた基準ですが、現在ではNGXなどのタイトルによって20%から25%程度に落ち着いています。
ただ、Apacheは単なるWebサーバーという域を超えて、
Apacheソフトウェア財団という現在のオープンソース開発の分解やガバナンスの基礎を築いた偉大な存在でもあります。
さて、そんなApacheですが、ここからはその起源をたどってみましょう。
1989年、CERN、欧州原子核研究機構がWorld Wide Web、WWWを発明し、
翌年の1990年には世界初のWebサーバーであるCERN-HTTPDが開発されました。
その後、1990年代初頭にアメリカのNCSA国立スーパーコンピュータ応用研究所が画像を表示できるWebブラウザモザイクをリリースします。
これに伴って開発されたのがNCSA-HTTPDというWebサーバーです。
これがCERNのものにとって変わって、1994年までにはWebサーバーの標準、シェアの大部分を占めるまでになりました。
しかし、ここで大きな問題が発生します。
1994年半ばに開発の通信人物がNCSAを離脱して、実質的に開発がストップしてしまうというような事態が起こりました。
でもですね、すでに世界中の多くの組織がこのWebサーバーを使っていました。
バグの修正やセキュリティ対応が必須である状況なんですが、開発がストップしてしまったことで更新がされなくなってしまいました。
そこでどうしたかというと、各組織の管理者が自分たちで勝手にソースコードを修正し始めるというような形になってきました。
1994年後半から95年にかけて、世界中で独自のNCSA-HTTPD改変版が来日する時代になりました。
みんなそれぞれパッチを書いて修正しているんですけど、それを共有して統一するというような仕組みがない状況になっていました。
A社が苦労して直したセキュリティホールにB社がまだ頭を悩ませているみたいな、そんな非効率で混沌とした状況が生まれてしまったというような形です。
そしてこの状況に立ち上がった人たちがいました。
1995年2月、当時のウェブマガジンホットワイヤードでウェブサイト管理をしていたブライアン・ベイレンドルフさんです。
彼は当時、ユーザー登録システムを必要としていたんですけど、標準のNCSA-HTTPDではそれを実現するのが難しかったため、自分でパッチを当てて維持していました。
しかし、これを一人でやり続けると無理だなというような形で彼は悟りました。
そこで彼はですね、コミュニティで活発だった他の開発者たちと連絡を取り、メーディングリストを開設しました。
みんなの持っている良いパッチを持ち寄って統合された標準版を作ろうぜというような形で呼びかけたわけです。
これがApacheグループの始まりです。
企業主導でも学術的プロジェクトでもない、中央のメンテナンスが崩壊したから自分たちでやるしかなかったという、まさにオープンソース哲学の核心である個人的な痒みをかくという原則から生まれたような組織でした。
そして1995年2月末に8人の開発者が結束し、4月には最初のバージョンであるApache HTTP Server 0.6.2がリリースされます。
これはNCSAのコードに多数のパッチを当てた継ぎ剥ぎのものでしたが、メンテナンス体制が統一されたことに大きな意味がありました。
ちなみにApacheという名前の由来なんですが、技術コミュニティでは継ぎ剥ぎだらけのサーバーという意味の英語、Apache Serverから来ているというような説が有名です。
ただしですね、Apache Software財団の公式見解としては、ネイティブアメリカンのApache族への敬意を表したものとされています。
Apacheソフトウェア財団の形成
どちらも素敵なエピソードかなと思います。
さて、そんな形で初期リリースで安定化には成功しましたが、もともとのNCSAのコードはですね、新言語で書かれたモノリティックな構造で、少しの変更するのにコア部分に手を入れないといけないというような形で複雑すぎました。
そこで1995年半ばに、シャンバラというコードネームで大規模な再設計が始まります。
ここで導入されたのが、Apacheの成功を決定付けたモジュール性です。
サーバーのコアとリクエスト処理のロジックを分離したんですね。
その結果、1995年12月にリリースされたApache 1.0では、単なる改良版ではなく明確な進化を遂げるソフトウェアとなりました。
発足からわずか1年後の1996年4月には、NCSAのシェアを抜いて世界一のウェブサーバーとなり、その後20年以上そのコードに君臨するということになります。
そしてさらにですね、組織としても進化しました。
IBMのような大企業がApacheの採用を検討し始めましたが、ボランティア団体では法的な契約が難しいというような課題がありました。
そこで1999年、非営利組織Apacheソフトウェア財団として法人化がされます。
これで大企業も安心して採用できるようになり、Linux、Apache、MySQL、PHPを組み合わせたランプスタックがウェブ開発のデファクトスタンダードになりました。
WikipediaやFacebookなどWeb 2.0時代を支える巨大サービスの基盤と結果的にはなりました。
またですね、彼らが作り上げたThe Apache Bayというガバナンスモデルも重要です。
権限は貢献によってのみ得られる。意思決定は投票だが目標はコンセンサス。
メーリングリストにはないことは起きていないとみなす透明性の確保。
そして何より技術的な完全性よりもコミュニティの健全性を優先するというものです。
健全なコミュニティなら悪いコードも直せるが、有害なコミュニティはどんなに良いコードも救えないというような考え方です。
この思想があったからこそ、Apacheは単一のプロジェクトからHadoopやKafkaなど数百のプロジェクトを抱える巨大財団へとスケールできました。
Apacheの現状と影響
このApache Bayの考え方は非常に面白いので、ぜひ興味がある方はご自身で調べてみてください。
ソフトウェア開発の一種の理想的な在り方がそこに示されているなぁと個人的には思いました。
さて、そんな絶対王者Apacheにも時代の変化とともに限界が見えてきます。
Apache 1.3までのプロセスベースモデルは安定はしていましたが、メモリ消費が激しいというような課題がありました。
インターネットの利用者が爆発的に増えると、C10系問題、つまりクライアント1万台の同時接続を処理できないという壁にぶち当たります。
1万個のプロセスを立ち上げるなんて当時のファードウェアでは不可能というような形だったんですね。
それに対してApache側も手をこまねいていたわけではありません。
Apache 2.0ではMPMというマルチプロセッシングモジュールスという仕組みを導入しました。
安定のプレフォーク、マルチスレッドを使ったワーカー、そして非同期処理を取り入れたイベントタイプなど、用途に合わせて選べるようにコア部分をモジュール化という形にしました。
最終的にイベントタイプの導入でパフォーマンス問題はかなり解消される結果になりました。
ですがですね、2000年代半ば、まさにこのC10系問題を加減するために生まれた新しいウェブサーバーが登場します。
それがNginxです。
Nginxは静的ファイルの配信スピードや同時接続処理において、Apacheを圧倒していました。
こちらのNginxの歴史についてはエピソード7でも詳しく紹介しているので、ぜひそちらも聞いてみてください。
Apacheの話に戻って、Apacheの利点である再起動なしで設定変更できるという禁断性がありましたが、それがパフォーマンスとのトレードオフになっていたというような形ですね。
そして2010年代に入ると、エンジニアたちはNginxを前代において後ろのApacheに流すというリバースプロジェクト構成や、全てNginxに置き換えるというような選択をし始めます。
そしてついに2018年代から2020年頃にかけて、シェア率でNginxがApacheを上回る逆転現象が起きました。
さらにですね、DockerやKubernetesといったコンテナ技術、マイクロサービスの流行も追い打ちをかけていたというような形になります。
語言語やNode.jsのような軽量なサーバーが好まれるようになっていき、何でもできるけど重量級のApacheはオーバーヘッドが大きいというような形でみなされる場面も増えていったというような形です。
とはいえですね、Apache HTTPサーバーが終わったわけではありません。現在でもシェアは20%前後を維持しています。
最速ではないかもしれませんが、最も安定していて最も設定が柔軟であることは変わりません。
枯れた技術としての信頼感というものは絶大です。
そして何よりですね、NCSA HTTPへのパッチの集合地から始まったApacheグループの功績というものは、単なるウェブサーバーというソフトウェアの枠を遥かに超えています。
彼らが作ったApacheソフトウェア財団とThe Apache Wayは、オープンソースコミュニティに対して永続性と信頼、そしてどうやって協力し合うかという手本を示してくれました。
その影響は今も止まることなく、数百ものプロジェクトの中で生き続けています。
さて、今回のお話は以上となります。Apacheの歴史、いかがだったでしょうか。
普段何気なく使っているウェブサイトの裏側に、こんなエンジニアたちの結束のドラマがあったと思うと、ちょっと胸が熱くなります。
もし少しでも今回の話がためになった、面白かったと思ったら、お聞きのプラットフォームでの高評価とフォローの方をお願いします。
また、Xなので、ハッシュタグOSSの歴史ラジオをつけて感想をつぶやいてもらえると、モチベーションがバカ上がりしますので、よろしくお願いします。
次回はですね、ターミナルの操作を簡単にウェブで共有できるASCII NEMAの歴史について見ていけたらなと思います。
それではまた次回お会いしましょう。バイバイ。
11:41

コメント

スクロール