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

» 2016年03月17日 05時00分 公開
[野本幹彦@IT]

Nginxとマイクロサービスでアプリケーションを高速化する

 第2部は、サイオステクノロジー OSS事業企画部 リーダーの村田龍洋氏が登壇し、Webサービスを高速化するためにOSSを活用する方法を解説した。

 まず村田氏は、「ネットワーク回線の高速化、モバイル端末の普及により、Webアプリケーションの利用が拡大した。HTMLのデータ転送量とリクエスト数が増大し、Webサーバーには、膨大なトラフィックをさばく“高速性”が求められている」と説明。Google検索の検索順位も、より高速に表示されるWebサイトの方が順位が上がるようになっており、ページ全体が表示されるまでに1.4秒以上かかるサイトは上位に入りづらいという事実も見逃せない。

Nginx導入の利点

サイオステクノロジー OSS事業企画部 リーダー 村田龍洋氏「サイオステクノロジーではコンサルチームやNginx構築部隊があり、OSSで企業の課題を解決する体制が整えられている」

 そのような中で注目されているNginxは、「高速、軽量、高機能という特徴を持つ」と村田氏は説明する。例えば、Apacheでは1つのクライアントからのリクエストに対して1つの「プロセス」を生成するため、プロセスが不足したり、CPUが高負荷になったりして、大量のクライアントアクセスを処理できない場合がある。それに対しNginxは、クライアントからのアクセスを「イベント」として認識する「イベントループ方式」を採用しているため、大量のアクセスに対しても高速処理を実現できるという。

 また、従来のWebサービスがWeb層、アプリケーション層、データベース層の3層構造で構成されていたのに対し、Nginxはリバースプロキシやロードバランサとして利用できる機能を持っているため、柔軟な構成を組みやすくなる。例えば、システムの前段にNginxを置き、Web、アプリケーション、データベースなどはサーバを並列に置くことで動的処理を振り分けて分散させることが可能だ。分散型のアプローチが行える上に、キャッシュ機能も強力でCDN(Contents Delivery Network)として利用することもでき、Webサーバの応答を高速化できる。現状では、「既存のApache HTTP Serverの前段にNginxを配置して、リバースプロキシやコンテンツキャッシュとして利用し、パフォーマンスを向上させる事例が多い」と村田氏は付け加える。

既存のApache HTTP Serverの前段に配置することで、リバースプロキシおよびコンテンツキャッシュに利用し、パフォーマンスを向上(村田氏の講演資料より)

 Nginxの高速性に着目したサイオステクノロジーでは、エンタープライズ向けに機能拡張を行い、日本語による企業向けサポートを付加した「NGINX Plus」を提供している。NGINX Plusでは、HTTPおよびTCPロードバランシング、ハイアベイラビリティ機能(Keepalived)、Liveステータスレポーティング、詳細なヘルスチェック、無停止の設定反映、ストリーミングメディアデリバリ機能などの機能拡張が行われている。

マイクロサービスアーキテクチャの利点

 さらに「大規模なWebサービスの高速化には、マイクロサービスアーキテクチャがポイントとなる」と村田氏は話を続ける。マイクロサービスでは、機能ごとに小さなアプリケーションを作成して個々にデータベースを持つ。アプリケーション間をREST APIで連携するようになっており、その前段にNginxを置くことで高速化を実現できるという。

マイクロサービスアーキテクチャ(村田氏の講演資料より)

 「マイクロサービスは、開発の高速化と単純化が行え、サービスごとに適した開発手法が取れ、サービスアップデートで他への影響を少なくし、サービスごとのスケールアウトが可能になる」と、そのメリットを説明する村田氏。一方で、「管理やデプロイの複雑化」という課題もあることも示された。

 マイクロサービスの展開方法は、仮想マシンを使う方法とコンテナを使う方法の2つがある。仮想マシンを使う方が一般的だが、オーバーヘッドやデプロイに時間がかかるなどのデメリットがあり、コンテナを使う方が軽量でデプロイが高速だが、安全性や技術の成熟性に課題があるという。

 最後に村田氏は、マイクロサービスに欠かせないミドルウェアとして「Red Hat JBoss Middleware」を紹介。これは、Java EE 5標準準拠のアプリケーションサーバを中心に、SOA、ポータル、ビジネスルール管理基盤、開発環境を提供するものだ。そのアプリケーションコンテナサービスには、2015年6月に「OpenShift Enterprise 3」が対応を開始している。

 またレッドハットが提供しているミドルウェアプリケーションプラットフォーム製品群は、OpenShift Enterprise 3で動作可能なDockerアプリケーションとして提供されており、クラウドで利用するコンテナ技術として期待できるという(参考:レッドハットが発表したOpenShift Enterprise 3は「Dockerを知らなくても使える」基盤)。「NginxとJBossを中心にマイクロサービスを利用すれば、アプリケーションを高速に展開できる」と村田氏は話し、第2部のセッションを終えた。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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