はじめに

nginx(エンジンエックス)は、2002年にカザフスタン出身でロシア在住のIgor Sysoev(イゴール・シソエフ)が開発したオープンソースのwebサーバです。 2017年4月時点において、大規模なサイトを中心に急速にWebサイトのシェアを伸ばしています。

nginxのWebサーバにおける世界シェア

webサーバシェア

https://news.netcraft.com/archives/2017/02/27/february-2017-web-server-survey.htmlより引用

上図は、Netcraft社が公開して2017年2月27日に公開した世界のWebサーバのシェアです。 アクティブな全サイトのシェアを示していますが、2008年9月頃から2010年7月までの凡そ2年間で、 シェアの10%まで上昇し、その後緩やかに上昇し2016年12月には、20%まで上昇しています。

webサーバシェア_million

https://news.netcraft.com/archives/2017/02/27/february-2017-web-server-survey.htmlより引用

世界のアクセス数の多い100万サイトに限定したシェアの図になります。 nginxは、2017年2月末時点で凡そシェア3割(28%)をしめています。 グラフの勢いを維持した場合には、2017年~2018年内にApacheHttpServerのシェア41%を超える事が予想できます。

nginxがこのように2008年9月頃から急速にシェアを伸ばしてきた背景には、

  • 世界的にインターネットの普及率が上がった事
  • グローバル及び国内シェアの高いサイトでアクセス数が増えている事
  • nginxの導入実績の増加
  • nginxの法人化やサービス体制の確立
  • nginxの技術情報の増加
  • nginxに対する安全性(セキュリティホール数)
  • nginxに対する迅速性(バグに対するパッチのリリース)

などの要因で、今まで市場の動向や技術動向の様子を見守っていた月間100億PV以上あるサイトを所有する企業が、 積極的に導入又は、apacheからの切替をしています。 具体的には、facebook、Dropbox、WordPress、hulu、Yahoo! Japanが既に導入しています。

nginxの歴史

私が1エンジニアとして、イゴール・シソエフ(1975年生まれ)さんが凄いと感じたのは、Webサーバの世界一のシェアになりつつあるnginxを開発した事だけではありません。 イゴールさんは、2002年頃までApacheHttpServerを利用して、更にはApacheのモジュール開発を行っていました。 その経過からApacheHttpServerのアーキテクチャにおける限界を早い段階から理解して、その限界を超えるためにnginxを開発しています。 2011年のnginx ver.1.0をリリースするまでの凡そ9年間1人で!開発している経過にイゴール氏の強い信念、努力、学習量とその質を感じるからです。

2011年夏にNginx. Incが設立され、本格的な開発体制が整いました。 nginxはOSS版とは別に商用版「NGINX Plus」もリリースしました。 2014年6月17日にサイオステクノロジー株式会社が、 日本法人の初の「NGINX Plus」の販売パートナーとなりました。

他の販売パートナーは、https://www.nginx.com/partners/に掲載されています。

nginxとNGINX Plusの違い

https://www.nginx.com/products/feature-matrix/に nginxのOSS版と商用版NGINX Plusの違いがマトリックスに示されています。

違いをみてみると

  • Webサーバの基本機能は、同等に利用できる。
  • ロードーバランサーとしてのリクエストの振り分けは、同等に利用できる。
  • アプリケーションデリバリコントローラ(ADC)はNginx Plusのみ
  • ModSecurity WAFなどセキュリティ強化モジュールはNginx Plusのみ
  • クラスタリング機能はNginx Plusのみ
  • 動画などの高度なストリーミング配信機能はNginx Plusのみ
  • 各種サポートはNginx Plusのみ

月間100億PV以上のWebサービスを展開しており、サービスの安定性、堅固性、速度を求められる企業は、 商用版NGINX Plusを導入する流れになっています。 日本で月間1億PV以上のサイトの運用経験が数年あり、ApacheHttpServerの設定ノウハウやハードウェア、ネットワーク、OSに長けたエンジニア1人を 国内、海外問わず企業に招く事がどれだけ大変な事でしょう。 恐らくヘッドハンディングを利用して年収1000万以上やCTOとしての待遇を提示し、三顧の礼で迎えいれるぐらいな事をしてどうかでしょう。 その採用費用、人件費と比較したらNGINX Plusを導入して年間の保守契約を支払った方が安いでしょう。

nginxの今後

2017年時点爆速にシェアを伸ばしているnginxですが、nginx.inc及び販売パートナーが気をつける点があります。 ここ10年でマイクロソフト社やOracle社が既に経験している歴史です。

MicrosoftのIISは、当初OSがサーバエディションとの付属サービスとして提供されていました。 IISを利用したり、検証するには高価なOSを購入した企業の限られたエンジニアだけが利用できました。 それに対して、ApacheHttpServerがオープンソースとしてリリースされ、OS、ハードウェアは自由に組み合わせて Webサーバを誰でも自由に無料で利用できました。インターネットには、ApacheHttpServerの設定ノウハウも 多数公開されており、情報(ノウハウ)のオープン性の観点でもApacheHtppServerが優れていました。

それが起因して、2006年には、ApacheHttpServerがシェアの70%を占め、MSはWebサーバ分野で苦戦を強いられるようになりました。 MSは、WindowsVista(2006年末リリース)からIISを付属サービスとしました。 現在MSのOSで主流なWindows10にもIISが附属され、利用できるようになっています。

Oracle社は商用データベースの安定性、堅固性、速度で商用データベースのデファクトスタンダードになりました。 しかしながら、オープンソースのMySQLが商用のOracleとシェアを分割しています。 https://db-engines.com/en/ranking にデータベースのシェアの最新版が掲載されています。 MySQLは、2008年2月26日に旧サン・マイクロシステムズに買収されました。そのサン・マイクロシステムズもOracle社に2010年1月27日に買収されました。 それにより、MySQLの商標権や著作権もOracle社に移管されています。 市場ではオープンソースでフリーで安定したデータベースであるからOracleではなくMySQLを利用しています。 もし、Oracle社がMySQLをサポートではなく商用版としてリリースしMySQLに関する情報をクローズしたら、 一斉にPostgreSQLに利用者は移行するでしょう。

ソフトウェアの独占性や価格とサポート体制の質、情報の量・質・オープン性のバランスが崩れると、 ソフトウェアが如何に良い製品であっても、同等かそれ以上の機能を持ったフリーなオープンソースが必ず出現しています。 それは、ここ20年間のインターネットを取り巻くソフトウェアの歴史が証明しています。

nginx及びnginx Plusが発展するかは、どれだけ多くのエンジニアにノウハウや教育をオープンに公開し、 付加価値と価格のバランスを取れるかかが鍵だと思います。

nginxは、1万以上の同時接続数をさばくために、ノンブロッキングI/Oのアーキテクチャを利用しています。 Webアプリケーションサーバの分野では、日本でシェアを拡大しつつあるサーバサイドJavaScript(Node.js)もノンブロッキングI/Oのアーキテクチャを利用しています。 nginxを学習するメリットは、nginxのノウハウだけでなくノンブロッキングI/Oのアーキテクチャの理解に繋がるため無駄がありません。

まずは、Webサーバとしてnginxをインストールするところから始めていきましょう。