エンタープライズJavaシステムを軽量で高速なWebサービスに生まれ変わらせるNGINX Plusとは――スマホ、動画、クラウド、柔軟な構築・運用にすぐに対応:マイクロサービス対応も
サイオステクノロジーは、現代的なWebシステム構築ニーズに対応するべく、HTTPサーバー製品「NGINX Plus」とアプリケーションサーバー/ミドルウエア「Red Hat JBoss Middleware」(以下、JBoss)を組み合わせたソリューションを推進中である。NGINX Plusは最新バージョンのリリース7でいち早くHTTP/2に対応するなど、クラウド適性に優れており、RESTful Web APIによるマイクロサービス対応や動画などリッチメディア配信に対応したWebシステムを最適なコスト配分で実現できる。これらに加えて、ルールエンジン「Red Hat JBoss BRMS」(以下、BRMS)を活用することで、ビジネスの変化に強いシステムを実現可能だ。
エンタープライズJavaシステムにも、スマホ、動画、クラウド、柔軟な構築・運用が求められる時代に
Webアプリケーションの利用拡大とモバイル端末の普及により、Webコンテンツに求められる役割は変わりつつある。以前のフィーチャーフォンとは違い、スマートフォンは、デスクトップPCレベルのWebサイトを表示可能な上に、ユーザーインターフェースがリッチなJavaScript/HTMLのコンテンツを表示することも、もはや当たり前になっている。さらに、動画コンテンツやクラウドサービスの普及により、Web全体のネットワークの負荷が増大している。
これは何もコンシューマー向けのWebサービスに限った話ではない。BtoB向けの、いわゆるエンタープライズなWebシステムにおいても、スマートフォンや動画コンテンツへの対応が求められている。特にビジネスが変化するスピードが上がっている昨今、エンタープライズにおいても、柔軟で可用性のあるシステム構築・運用は必須と言ってもいいだろう。
コンシューマー向けのWebサービスはPHPやRubyなどいわゆる軽量言語をサーバーサイドに使って構築されることが多く、エンタープライズ向けのWebシステムではJavaや.NETを使うことが多い傾向にあるのは周知の通りだ。では、上記のようにスマートフォンや動画コンテンツへの対応がエンタープライズにも求められるときに、「JBoss」などのJavaアプリケーションサーバーを使ったWebシステムにおいては、どのように対応すればいいのだろうか。
サイオステクノロジーの村田龍洋氏(OSS事業企画部 リーダー)は、「NGINX PlusとJBossの組み合わせは、今のWebのニーズにちょうど合っています。従来に比べて、より無駄がないシステム構成を実現でき、コストを最適化できます」と語る。
「NGINX Plus」は、オープンソースソフトウエア(以下、OSS)のHTTPサーバーとして急速に普及しつつある「Nginx」をベースに開発された商用版である。OSS版のNginxで定評がある高速性を引き継ぎながら、商用版として数々の機能を追加している。その筆頭が、ロードバランシング機能だ。
ロードバランシング機能、リッチメディア対応機能を備えるNGINX Plus
NGINX Plusの特徴であるロードバランシング機能は、HTTPサーバーへのリクエストを分散する。高価な専用アプライアンス製品の形で提供されるロードバランサーを導入するような、従来型の高トラフィック運用環境でも、専用ロードバランサー製品からNGINX Plusへ置き換えることが可能だ。ここで節約できたコストを、より高性能なサーバーの導入に振り向けることもできる。システム構築に掛かるコストを最適化できる。
導入事例も出始めつつある。例えばNTTぷららは、NGINX Plusのロードバランシング機能を活用することで、大幅なコスト削減を実現できたという。
NGINX Plusのもう一つの大きな特徴は、動画などのリッチメディアへの対応である。ストリーミングに有効な「Adaptive Bit-Rate Streaming」と呼ぶテクノロジを実装し、通信状況に合わせた動画配信が可能だ。今や、Webサイトでの動画配信は当たり前になりつつあるが、動画配信ではHTTPサーバーに掛かる負荷が静的コンテンツに比べ格段に上がる。そこでストリーミングの機能を備えるNGINX Plusの出番が増えているのである。
NGINX Plusのキャッシュと高速処理で、Webベースのシステムを合理的に構成する
動画だけではない。NGINX PlusのベースとなったNginxはもともと高速なことで知られている。キャッシュの機能に定評があり、また同時接続数の上限も高い。従来広く使われていたApacheに比べ、1桁違う性能を発揮するとされている。
「最近のWebアプリケーションは、クライアント側に多大な量のJavaScriptコードが置かれるなど、ユーザーインターフェースがリッチになる傾向があります。そこでHTTPサーバーの性能が求められるようになってきました」(サイオステクノロジー Red Hat事業企画部 エンジニアの與倉和明氏)。
NGINX Plusの高速性は、最近注目を浴びるWebサービス構築の潮流である「マイクロサービス」との相性も良いという。
「NGINX PlusとJBossの組み合わせを活用することで、エッジサーバーなどを三層構造で“横に”並べていくシステム構成をやめて、小さなWebアプリケーションを組み合わせるシステム構成が可能になります。これはマイクロサービスの考え方にもよく合います」(村田氏)。
従来、Webシステムの性能を確保するためには、専用アプライアンスのロードバランサー、多数のエッジサーバー、クラスター構成のアプリケーションサーバーといった、大掛かりなシステム構成を取る必要があると考えられてきた。いわば、一つのWebベースのシステムが「横に広がった」形態である。この古い常識が、今では通用しなくなってきた。「大きく横に広がった」システムではなく、「小さく高速なマイクロサービスを複数連携したシステム」が求められるようになってきたのだ。
キャッシュ機能やロードバランシングの機能を備えるNGINX Plusを活用すれば、従来のJBoss EAPなどJavaアプリケーションサーバーを使ったWebシステム構成を大幅にシンプルにすることが可能となる。小さく高速で軽量なシステムを実現できるのだ。
Software Defined、マイクロサービスの波に乗る
このような現代的なシステム構成は、システム構築や運用の現場の変化と結び付いている。従来は専用アプライアンスを活用するにはネットワークエンジニアの手を借りる必要があった。一方、HTTPサーバーであるNGINX Plusのロードバランシング機能はWebインフラエンジニアの手で導入できる。
「Webインフラエンジニアが扱えるレイヤーが広がったという見方もできます。これに限らず、ネットワーク専用機器がソフトウエアをベースとしたテクノロジに置き換わり、Software Defined化していく流れがあります」(村田氏)。
JBoss EAPの活用法も、以前とは様子が変わりつつある。かつてのエンタープライズJavaの世界では、EJBによる分散コンポーネント技術に高い関心が寄せられていたが「今は違う次元に突入していて、RESTful Web APIで全部アクセスしようという機運になっています」(與倉氏)。JBossとNGINX Plusにより、RESTful Web APIの切り口を備えるコンパクトなマイクロサービスとして構築し、それら複数のマイクロサービスを組み合わせたシステムを構成する──このような柔軟なシステム構築スタイルへの関心が高まっているのである。
「最近では企業システムにおいても、大規模システムを構築するより、小さなサービス同士を連携させて高速に動かしたいというニーズが増えています。そこでRESTful Web APIによるHTTP通信の速さが重要になってきます。キャッシュ機能によるパフォーマンス向上も重要です。JBoss EAPとNGINX Plusの組み合わせの重要性は高まっているといえます」(與倉氏)。
クラウドへの適正にも優れるNGINX Plus
また、現代のシステム開発で非常に重要となるのが、クラウドへの適性だ。
「シンプルで軽いNginxには、重量級のアプリケーションサーバーと違って、クラウドで動かしやすいメリットがあります」(村田氏)。
サイオステクノロジーでは、OpenStackを使ったクラウドインフラでJBossやNGINX Plus、Cephストレージなどを組み合わせた新たなWebインフラを「Software Defined Web Infrastructure」と呼んで推進している。クラウドの時代にふさわしく、スケールアウトが可能な柔軟なインフラである。トラフィック予測が立てにくいシステムにも向いている。
そして、NGINX Plusは、こうしたスケールアウトできるインフラと相性が良い。例えば、「スロースタート」と呼ぶ機能がある。新たにグループに参加したサーバーに対して、急激な負荷を最初から与えないように制御する機能だ。スケールアウト型アプローチでサーバー数が変動するクラウドでは、このような機能の意味が出てくる。
もちろんプライベートクラウドだけではなく、パブリッククラウドの上でNGINX PlusとJBossを動作させるシステム構成でも、このスケールアウト型アプローチは重要となる。
クラウドの運用では、モニタリングツールにもクラウド適性が求められる。NGINX Plusには「Liveステータスリポーティング」と呼ぶ機能が備わっている。1秒おきに取得した複数のサーバーの最新状況を一覧できるリポート画面を提供する。「ヘルスチェック」機能も、OSS版のNginxより細かな情報を取得できる。「かゆいところに手が届く」(村田氏)使い勝手を提供する。
ルールエンジンJBoss BRMSでビジネスの変化に対応
以上のように、HTTPサーバーNGINX Plusと、アプリケーションサーバーJBossを組み合わせた小さく高速で柔軟なシステム構成は、クラウドの時代、リッチメディアの時代によくマッチする。
加えて、このような現代的なWebインフラと組み合せることで、より大きな威力を発揮するのが、JBoss製品ファミリの中でも新しいメンバーであるルールエンジン「JBoss BRMS」である。
JBoss BRMSを活用することで、プログラム本体をビジネスプロセスとビジネスルールに分離して記述できる。複雑なルールを含むアプリケーションの場合には、アプリケーションを改修するにも時間と費用が膨大になるが、ビジネスルールを分けることで、業務担当者がルールを変更できるようになる。ビジネスの変化が速い今、時代の要請に対応できる製品といえるだろう。
「日本でのルールエンジンの本格活用はまだまだこれから。まだこの便利さを知らない企業が多い」(サイオステクノロジー Red Hat事業企画部 部長の長谷川哲也氏)という段階だが、JBoss製品ファミリの中でも今後の成長が楽しみな製品である。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- サイオス、商用版Nginx「NGINX Plus」の販売を開始
サイオステクノロジーは米Nginxと販売パートナー契約を結んだ。2014年7月1日から商用版「NGINX Plus」の国内販売とサポートサービスの提供を開始する。 - Nginxのインストールと基本設定
処理能力の高さなどを理由に、近年、大規模サイトを中心に急速にシェアを拡大しているWebサーバー「Nginx」について紹介します。連載第2回では、インストール方法と基本的な設定内容を解説します。 - NginxをWebサーバー“以外”でも徹底活用する
Nginxは高速化だけではありません。Webサーバー以外への応用事例として、ロードバランサー、HTTPS対応、WAFとしての利用を紹介します。 - Google、Nginx版の「pagespeed」β版をリリース
米Googleは4月25日、Nginx版のWebページ高速化モジュール「ngx_pagespeed」のβリリースを発表した。 - Play2+nginx/Akka/WebSocketで高速双方向通信
Play framework 2.xを既存のWebサーバーと連携させる方法、並列処理や双方向通信を行う方法を紹介します。
関連リンク
提供:サイオステクノロジー株式会社
アイティメディア営業企画/制作:@IT 編集部/掲載内容有効期限:2016年2月25日