最終回 J2EEサーバの運用で手を抜かないために


樫山友一
2002/12/3


 今回でこの連載も最終回です。最終回は、開発が終わり、運用に入ってからの解説です。運用は、開発に比べて軽視しがちですが、システムを持続させるという観点からすると、開発よりも重視しなければならないといえます。

 J2EEのシステムに限らず運用に関しては、以下の4つの項目が重要です。

  1. 障害の発見とその対応
  2. コンテンツの入れ替え
  3. OS、アプリケーションサーバのバージョンアップやバグフィックス版へのアップグレード
  4. ハードウェアの増強

 では、それぞれについて詳細を解説します。

   障害の発見とその対応

 障害の発生は、自動的に検知する必要があります。一般的な方法は、以下のものにSNMPのエージェント機能を持たせて、運用・管理ツールで状態を監視する方法です。

  • OS
  • アプリケーションサーバ
  • HTTPサーバ
  • データベース
  • ロードバランサ

 J2EEのアプリケーションサーバ製品には、SNMPのエージェント機能を持ったものがあります。これを利用して各機能の確認を行います。SNMPの詳細の解説は、ほかの文献に譲りますが、いくつかの設定を行い、運用・管理ツールなどで自動的に動作を監視させる必要があります。

 上記以外に監視する項目としては、ログファイルです。以下のようなログファイルを確認した方がよいでしょう。一般的には、エラーのログとアクセスログ(サービスを利用した履歴を残すログ)がありますので、必要に応じてチェックを行います。エラーログは、出力されたことがエラー発生を意味するので、エラーログファイルを監視してログに何かが出力されたら、管理者に通知するようにします。また、ルータなども必要に応じて、監視する必要があります。

監視対象 内容
HTTPサーバのログ HTTPサーバのログに何かが出力されたら管理者にメッセージを送るように設定します。また、アクセスログもセキュリティの面から同じIPアドレスからの負荷が高いような場合に警告のメッセージを管理者に送るようにすることも考えられます
アプリケーションサーバのログ HTTPサーバのエラーログと同様にエラーログとアクセスログを監視します
オペレーティングシステム システムが出力するエラーのログを監視します。UNIXでは、syslogと呼ばれているものを監視することになります。Windowsでは、システムイベントを監視します
データベース エラーログとアクセスログを監視しますが、データベースの場合は、SQLレベルでログを作成するとパフォーマンスに大きな影響を与えるので、エラーログのみが望ましいでしょう
ロードバランサ SNMPの機能を持ったものは、監視ツールにより監視可能です

   障害の発見とその対応

 最近のWebサイトは、リニューアルのサイクルも短く、コンテンツを入れ替えるコストも増大しています。コンテンツの入れ替えには、おおよそ以下のような方法があります。

  • JSPやHTMLファイルの入れ替え
  • データベース内のデータの変更
  • コンテンツ管理ツールでパブリッシング

 図1にコンテンツの入れ替え方法の例を示します。これは、「第8回 規模や信頼性で決めるWebサイトの構成」の図3の構成です。通常、HTTPサーバはインターネットからきたクライアントのリクエストをアプリケーションサーバまで通過させていますが、これを一時的に止めて、このサイトへのアクセスをすべてHTTP サーバ内にあるページに回します。このページには、「メンテナンス中」といったメッセージが入ります。

図1 コンテンツの入れ替え方法

 このような方法ですと、ユーザーにメンテナンスの通知を行う必要があります。どうしてもサービスを止めずにコンテンツを入れ替えたい場合は、クラスタを用いて行う方法があります。クラスタ構成については、第8回の内容を参照してください。クラスタを用いてコンテンツを入れ替える方法は、図2に示します。

 まず、アプリケーションサーバ(A)への処理の振り分けを停止します。これは、HTTPサーバの設定を変更して行います。次に、アプリケーションサーバ(A)のJSPやHTMLなどを入れ替えます。コンテンツを入れ替えた後、HTTPサーバからアプリケーションサーバ(A)への処理の振り分けを再開すると同時にアプリケーションサーバ(B)への処理の振り分けを停止します。同じようにコンテンツを入れ替えたら、HTTPサーバからアプリケーションサーバ(B)への振り分けを再開します。

図2 クラスタを用いたコンテンツの入れ替え方法

 最新のアプリケーションサーバを用いると上記のような方法を利用しなくても、アプリケーションサーバの機能で簡単にコンテンツをアップデートすることが可能です。

 図3にそのしくみを示します。アプリケーションサーバ(A)と(B)は、起動時に管理サーバからWebアプリケーションなどを受け取ります。よって、管理サーバ上のWebアプリケーションを更新して、再配信を行うだけで簡単にコンテンツを更新することが可能です。

図3 管理サーバ上のWebアプリケーションを更新してコンテンツを更新する

 設計によっては、コンテンツをデータベースに格納する場合があります。データベース内のコンテンツをアップデートすることにより、Webサイトのコンテンツがアップデートされることになります。データベース内の内容を変更する方法はいくつか考えられますが、管理を便利に行うにはコンテンツをアップデートするためのシステムを用意し、それを利用してコンテンツをアップデートすることになります。

 ツールでコンテンツを管理しているケースも考えられます。この場合は、コンテンツ管理ツールの機能を用いてコンテンツを入れ替えることが可能です。また、タイマー機能を持っているために指定した時間に自動的にコンテンツを入れ替えることも可能となります。

   OS、アプリケーションサーバのバージョンアップや
バグフィックス版へのアップグレード

 通常正常に動作している場合は、OSやアプリケーションサーバのバージョンアップは行わないことが多いですが、バグで障害が出ている場合や、今後障害が発生する可能性がある場合は、もちろん入れ替えが必要です。現在のOSやアプリケーションサーバは、パッチをあてたり、バージョンアップを行うには再起動が必要で、サービスを止めずに行うことはできません。サービスを止めないで行う場合は、図2のような方法で行う必要があります。

   ハードウェアの増強

 ハードウェアの増強は、メモリの追加やCPUの追加が考えられます。また、より高速なサーバへの交換といったケースもあるでしょう。このような場合も図2のような方法を用いれば、サービスを止めずに行うことは可能ですが、一般的にはメンテナンス期間としてサービスを停止する必要があります。

 以上、全11回にわたってWebサイトの構築にかかわる設計の基礎から実際の運用ノウハウまでを解説してきました。今回で本連載は終了します。長い期間ご愛読いただきありがとうございました。また、いい連載をご提供できればと考えていますのでこれからもよろしくお願いします。

連載:サーバサイドJava初心者のためのWebシステム入門 バックナンバー
第1回 Webサイトの構成とJ2EEサーバ

第2回 Webサイト設計時の考慮点を知ろう

第3回 UMLモデリングによる設計の流れを理解する
第4回 実装のアーキテクチャを決めよう
第5回 Webサイトの詳細設計
第6回 JSPでプレゼンテーション層をどう作る?
第7回 J2EEと外部システムを連携する方法
第8回 規模や信頼性で決めるWebサイトの構成
第9回 Webサイト構築に必要なさまざまなテスト手法
第10回 パフォーマンス低下の原因と対策を考える
最終回 J2EEサーバの運用で手を抜かないために


■参考文献
「わかりやすいUML入門」オーム社
「Webサイトのわかる本」オーム社

プロフィール
樫山友一(かしやま ゆういち)

大手電機メーカー研究所でオブジェクト指向によるシステム開発に従事する。1996年よりJavaへの取り組みをはじめ、J2EEアプリケーションサーバを活用したWebシステム構築のコンサルタントとして多数のプロジェクトを手掛ける。
2001年3月にイーズ・コミュニケーションズ株式会社の設立に参加し、最高技術責任者に就任。
著書に「わかりやすいUML入門」、「Webサイトがわかる本」(いずれもオーム社)がある。


Java Solution全記事一覧



Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間