jboss.org: community driven

JBoss Web ProjectおよびJBoss AS Clustering Projectから興味深いプロジェクトが発表された。その名もmod_clusterだ。現在のところ1.0.0.Beta1が公開されている。名前のとおりApache HTTP Serverで動作するモジュールで、背後で動作するTomcatやJBoss Web、JBoss ASなどのアプリケーションサーバへのコネクションを担当する。ロードバランシングの機能とプロクシの機能を備え、mod_jkとmod_proxyの双方の機能をもったような仕組みになっている。

mod_jkやmod_proxyとの大きな違いは、アプリケーションサーバからHTTPサーバへのバック通信をサポートしているところにある。HTTPメソッドでアプリケーションサーバからmod_clusterモジュールへ情報提供が可能だ。一方通行のmod_jkやmod_proxyと比べてこの点に大きなアドバンテージがある。プロジェクトでは同通信プロトコルをMod-Cluster Management Protocol (MCMP)と呼んでいる。

MCMPによってもたらされる恩恵は次のとおり。

  • 動的な調整が可能 - アプリケーションサーバから動作状況がフィードバックされてくるため、従来の静的な割り当て戦略ではなく状況を加味して設定できる。アプリケーションサーバの追加をおこなった場合や複数のmod_clusterを使う場合などの設定が動的に決定されることになり管理の手間を軽減できるほか効率のよい運用が可能になる
  • サーバサイドの状況を加味したバランシングが可能 - 従来のモジュールと異なりサーバサイドの負荷状況を加味したロードバランシングが可能になり、これまでよりも効率のよい稼働を実現する
  • Webアプリライフサイクル制御に対応 - アプリケーションサーバから情報を得るため、Webアプリのデプロイから破棄までのライフサイクルを加味したきめ細かい制御が可能になる

mod_jkではHTTPサーバからアプリケーションサーバへの通信にAJPが要求されるが、mod_clusterではAJP以外にもHTTPやHTTPSが利用できる。動的なロードバランシングが可能になるところは魅力的だ。ロードバランシングの効率アップを検討している場合、mod_clusterを検討対象に加えるとよさそうだ。