Sun Cluster には、スケーラブルサービスと呼ばれるデータサービスを対象とした水平のスケーラビリティという概念があります。この概念には、IP ベースの負荷均衡アルゴリズムが含まれます。このため、ユーザーはハードウェアのロードバランサー を使用することなく水平に拡張できます。このスケーラブルサービスの詳細は、『Sun Cluster の概念』を参照してください。
スケーラブル構成で Sun Cluster HA for Apache Tomcat を使用する場合は、あらかじめクラスタとクライアントの設備をよく確認する必要があります。
クライアントがプロキシを介してアプリケーションにアクセスする場合は、使用されているプロキシがセッションコンテキストにおいて同一のままであるかを確認する必要があります。これはイントラネットでは一般に保証されますが、確認の調査が必要です。
プロキシがセッションコンテキストで変化する場合、それは負荷均衡の観点から見ると、ソース IP アドレスが変化することを意味します。この場合、(ハードウェア負荷均衡であるかソフトウェア負荷均衡であるかにかかわらず)IP ベースの負荷均衡が失敗します。
特に、アプリケーションがインターネットで使用されている場合、セッションコンテキストにおいて同一のソース IP アドレスが維持されることは保証されません。
この問題を解決して Apache Tomcat から水平方向のスケーラビリティを得るオプションはいくつかあります。
Sun Cluster HA for Apache Tomcat には、水平方向のスケーラビリティを得る手段として 2 つの構成方法が用意されています。
Sun Cluster HA for Apache Tomcat を純粋なスケーラブル構成で使用する。
Sun Cluster HA for Apache Tomcat をマルチマスター構成で使用する。
マルチマスター構成とスケーラブル構成は、どちらもスケーラブルデータサービスとして構成されます。この 2 つの構成の違いは、ノードのアクセス方法にあります。
クライアントは、共有アドレスを使用してスケーラブル構成にアクセスします。この場合、Sun Cluster は負荷均衡を行います。
クライアントは、各ノードの物理アドレスを介してマルチマスター構成にアクセスします。負荷均衡は、どこか別の場所で行う必要があります。
スケーラブルデータサービスの詳細は、『Sun Cluster の概念』を参照してください。
スケーラブル構成としての Sun Cluster HA for Apache Tomcat
同じソース IP アドレスが (たとえばイントラネットなどで) セッションコンテキストにおいて維持されることが保証される場合は、Sun Cluster HA for Apache Tomcat をスケーラブル構成で使用できます。
セッションコンテキストにおいてソース IP アドレスが変化する可能性があるがスケーラブル構成が望ましいという場合は、セッションを複製して Apache Tomcat を構成する必要があります。このような構成は、広域ファイルシステムまたはデータベースを使用したアプリケーションによって行えます。
この方法では、パフォーマンスの低下が発生します。
この場合、Tomcats インバウンドメモリーセッション複製を使用するほうが高いパフォーマンスを得られます。
Apache Tomcat 4.x におけるこの処理は、http://www.theserverside.com/resources/article.jsp?l=Tomcat の説明に従って行なってください。
Apache Tomcat 5.x には、インバウンドメモリーセッション複製 が組み込み機能として含まれています。
Apache Tomcat 3.x の場合、インバウンドメモリーセッション複製は設定できません。
マルチマスター構成としての Sun Cluster HA for Apache Tomcat
上記以外の状況では、Sun Cluster HA for Apache Tomcat をマルチマスター構成で使用できます。外部的な負荷均衡が必要であることに注意してください。通常の構成では、スケーラブル Apache Web サーバーをロードバランサーとして使用し、Apache Web サーバーの各インスタンスの背後で Apache Tomcat インスタンスの物理的なホスト名を 1 つ構成します。また、セッションコンテキストを処理する必要のあるハードウェアロードバランサーを使用することもできます。
スケーラブル構成とマルチマスター構成の違いは、クライアントがクラスタノードにアクセスする方法だけです。スケーラブル構成ではクライアントは共有アドレスにアクセスしますが、マルチマスター構成ではクライアントは物理的なホスト名にアクセスします。このため、Sun Cluster の観点からはこれらの 2 つの構成に違いはありません。