特集
» 2016年03月17日 05時00分 UPDATE

Docker、HTTP/2、マイクロサービス対応も見据えて:容易にWebサービスを高速化できるNginxを使いこなすための秘訣とは (1/3)

高速で軽量なOSSのWebサーバとして注目されている「Nginx」。使いこなすための課題や有効なアーキテクチャ構成などをサイボウズでの導入事例と共に明かす。

[野本幹彦,@IT]

 高速で軽量なオープンソースソフトウェア(OSS)のWebサーバとして「Nginx」が注目されている。これを受けて、2016年2月26日、@IT編集部はセミナー『イマドキのWebサービス提供 〜Webサーバ「Nginx」使いこなしの秘訣』を開催。Nginxが注目されている理由や導入事例、Webサービス高速化の秘訣などを紹介した。

サイボウズがNginXを採用した理由と、その効果

 第1部は、cybozu.comがApacheからNginxに移行した事例をサイボウズ 運用本部 サービス運用部 Hazamaチームの深谷敏邦氏が解説した。

 グループウェアやWebデータベース、メール共有などのサービスを提供しているcybozu.comでは、ApacheをL7ロードバランサとして3台で活用していた。しかし、設定変更時に2台を再起動すると1台が高負荷となり、アクセス遅延やエラーが発生する課題を抱えていた。また、「顧客数の増加に伴い、申し込みにかかる時間が増え、機会損失の問題もあった」と深谷氏は話す。

nginx_event6.jpg 申し込みが遅延する理由(深谷氏の講演資料より)

なぜNginxなのか

 サイボウズがNginxに注目したのは、完全イベント駆動でApacheよりも性能が高いことと、動的な設定ファイル変更が容易なスクリプト言語「Lua」を利用できることだった。機能的にはApacheの方が豊富だが、ロードバランサで使うのであれば、多くの機能は必要ない。

Nginxの導入効果

 Nginxに移行することによって、Apacheでは設定ファイルを起動時に全て読み込むようにしていたものを、Luaを使って独自設定ファイルを読み込み、リクエストのたびに必要な設定を読み込むようにすることができた。これにより、以前は300秒近くかかっていたドメイン登録を1〜2秒で終えることが可能になったという。

nginx_event7.jpg Luaを使って独自設定ファイルを読み込む(深谷氏の講演資料より)

 またApacheでは、クライアントがプロセスを占有するのを避けるためにkeepalive秒数を15秒に設定していたが、Nginxでは大量のコネクションを扱えるため75秒に設定。これにより、クライアントが長くロードバランサに接続でき、HTTPSのハンドシェイクがなくなることでサーバ証明書の送信量が5分の1となり、送信トラフィックが大幅に減少したという効果も生まれている。

nginx_event2.jpg サイボウズ 運用本部 サービス運用部 Hazamaチーム 深谷敏邦氏「サイボウズでは、こうした先進技術について活発に議論できるエンジニアを募集している」

 「Apacheで運用し続けた場合は、ロードバランサを4台に増やす必要があったが、Nginxでは2台のロードバランサで運用できており、コストメリットも高い。Apacheはプロセス数を気にしながら運用しなければならなかったが、Nginxでは大量のコネクションを扱えるため、ロードバランサのことを気にしなくてよくなった。Nginxは新しい技術に追従しており、リアルタイムストリーミングに必要なWebSocketや次世代のHTTP/2の利用も期待できる」(深谷氏)

 一方で、「NginxではCGIが利用できず、機能的にはApacheの方が豊富であるため、ロードバランサでの利用のように使い方を絞れば効果的だが、用途によってはApacheからの置き換えが難しい」と、深谷氏は最後にNginx活用の課題も述べて講演を締めくくった。

       1|2|3 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。