Javaアプリケーションサーバのクラスタリング機能比較 1

Tomcatによるクラスタリングの実現

はじめに現在、エンタープライズ環境で動作するアプリケーションサーバには様々なものがありますが、どれもデフォルトでクラスタリングの機能を搭載しているものがほとんどです。

津田 新吾

2005年10月25日 20:00

はじめに

現在、エンタープライズ環境で動作するアプリケーションサーバには様々なものがありますが、どれもデフォルトでクラスタリングの機能を搭載しているものがほとんどです。

クラスタリングを行う目的としては主に2つあげられます。1つはパフォーマンスの向上で、もう1つは可用性の向上です。まずは、これらの機能について解説していきます。

クラスタ化によるパフォーマンスの向上(ロードバランス)

開発したアプリケーションに対して非常に多数のアクセスがあった場合、1台のサーバでは処理がまかないきれなくなります。

そういった場合には、前段にロードバランサを配置することで複数台に処理を振り分ければよいのですが、ECサイトなどでログインユーザのセッション情報などを保持しているアプリケーションが動作している場合、最初にログインしたサーバとは違うサーバに処理が移った場合セッション情報が共有されていな いと継続して処理を行うことができなくなってしまいます。

こういった場合でもクラスタ機能搭載のアプリケーションサーバであればセッション情報のレプリケーション機能により、複数台のサーバによるセッション情報の共有が可能となります。もちろんEJBでの情報の共有が必要な場合でも対応させることが可能です。

つまり複数台のサーバで同じアプリケーションを同じ状態で動かすことができるようになり、見かけ上のパフォーマンスを向上させることが可能です。

クラスタ化によるパフォーマンス向上
図1:クラスタ化によるパフォーマンス向上

クラスタ化による可用性の向上(フェイルオーバー)

アプリケーションが1台のサーバでのみ動作しているのであれば、そのサーバが止まればそのアプリケーションも停止してしまいます。ミッションクリティカルなアプリケーションでは特にそういったことは避けなければなりません。

この場合も前述のパフォーマンスの向上の場合と同様に複数台のサーバの状態を同じにしておけば、ある1台が異常終了したとしても、残りのサーバで処理を継続していくことが可能となり、ノンストップな実行環境を維持することが可能になります。

クラスタ化による可用性の向上
図2:クラスタ化による可用性の向上

Tomcatのクラスタリング概要

本連載の第1回はTomcatのクラスタリングについて概要を説明し、第2回でその実践を解説します。Tomcatで実現するクラスタリングとしてはロードバランス、フェイルオーバー、ファーミングがあります。

ロードバランスとフェイルオーバーについては先ほど説明しましたが、ここで新たにファーミングという要素がでてきています。ファーミングとは、一度デプロイ/アンデプロイ作業を行えばクラスタサーバ全体にデプロイ/アンデプロイが反映されることで、簡便な運用を実現する機能です。

この記事をシェアしてください

人気記事トップ10

人気記事ランキングをもっと見る