最終回 J2EEサーバの運用で手を抜かないために
樫山友一
2002/12/3
今回でこの連載も最終回です。最終回は、開発が終わり、運用に入ってからの解説です。運用は、開発に比べて軽視しがちですが、システムを持続させるという観点からすると、開発よりも重視しなければならないといえます。
J2EEのシステムに限らず運用に関しては、以下の4つの項目が重要です。
- 障害の発見とその対応
- コンテンツの入れ替え
- OS、アプリケーションサーバのバージョンアップやバグフィックス版へのアップグレード
- ハードウェアの増強
では、それぞれについて詳細を解説します。
障害の発見とその対応 |
障害の発生は、自動的に検知する必要があります。一般的な方法は、以下のものに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サイトの構築にかかわる設計の基礎から実際の運用ノウハウまでを解説してきました。今回で本連載は終了します。長い期間ご愛読いただきありがとうございました。また、いい連載をご提供できればと考えていますのでこれからもよろしくお願いします。
■参考文献
「わかりやすいUML入門」オーム社
「Webサイトのわかる本」オーム社
プロフィール |
樫山友一(かしやま ゆういち) 大手電機メーカー研究所でオブジェクト指向によるシステム開発に従事する。1996年よりJavaへの取り組みをはじめ、J2EEアプリケーションサーバを活用したWebシステム構築のコンサルタントとして多数のプロジェクトを手掛ける。 2001年3月にイーズ・コミュニケーションズ株式会社の設立に参加し、最高技術責任者に就任。 著書に「わかりやすいUML入門」、「Webサイトがわかる本」(いずれもオーム社)がある。 |
Java Solution全記事一覧 |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
|
|