ページの先頭です
2012年6月26日
前回、前々回は、キャッシュサーバに期待される役割と、キャッシュサーバやキャッシュエンジン、特にVarnish Cache、Apache Traffic Serverについて、IIJで行った比較実験の結果を交えて詳しく説明しました。最後に、nginxについて取り上げます。
nginxは、既に紹介している機能のほかに、下記のような特徴を持っています。
nginxは、既に紹介している他のキャッシュエンジンと同様に、接続を非同期のイベント駆動の仕組みで処理しますが、処理能力はその中でも高く、多くの接続が集中するサイトを運営するにあたり、大きなアドバンテージを持つと言えます。
また、nginxの主なプロセスである、実際に接続を処理するworkerプロセスとそれを管理するmasterプロセスは、様々なプロセスシグナルを受け付けるように実装されています。この例として、オンザフライのバイナリアップデートが挙げられます。設定ファイルの再読み込みでプロセスの再起動が不要なプロダクトは世の中に多く見られますが、バイナリのアップデート時にはプロセスの再起動が不要なプロダクトは筆者が見渡した限り、nginxだけです。nginxのオンザフライのバイナリアップデートは以下のように機能します。
このように処理を継続したままバイナリを入れ替えられるので、例えば、運用時にセキュリティフィックスが出た場合のアップデートなどに、柔軟に実施できるという利点があります。更に、nginxは、既存の機能のほかに3rdパーティ製のモジュールが充実しているため、必要に応じた機能拡充がしやすいという利点があります。また、前述のオンザフライアップグレードを利用することで、追加したモジュールを気軽に投入できます。
前回の比較表では、nginxはキャッシュプロキシサーバとしての機能が貧弱という印象がありますが、これらの特長はデメリットを補って余りあるメリットであると言えます。
このようにIIJでは常に既存の分野でも新しいプロダクトなどをフォローし続け、弊社ならではといったエッセンスを取り入れ、新しいサービスのリリースや既存サービスの強化を継続して実施しています。特に今回ご紹介した内容は、既存サービスの強化を目的に周辺技術を調査した結果、得られた内容です。これからの既存サービスの強化に、是非ともご期待ください。
執筆者プロフィール
渡辺 道和(わたなべ みちかず)
IIJ プロダクト本部 基盤プロダクト開発部 配信技術課
2011年に入社。IIJ大規模コンテンツ配信サービスの「中の人」として小さく吸って大きく吐く、をモットーに運用と開発に携わる。
関連リンク
ページの終わりです