2018年 秋期 応用情報技術者試験 問5

Web システムの負荷分散と不具合対応

D社は、小売業を営む社員数約300名の中堅企業であり、取り扱う商品の販売数が順調に増加している。D社では、共通基盤となるWeb業務システム上で販売管理や在庫管理、財務会計などの複数の業務機能がそれぞれ稼働している。

Web 業務システムは、Web サーバ機能とアプリケーションサーバ機能の両方を兼ね備えたサーバ(以下,Web サーバという)3 台と負荷分散装置(以下,LB という)1 台,データベースサーバ(以下,DB サーバという)1台で構成される。

D 社では総務部が Web 業務システムとネットワークの運用管理を所管しており,情報システム課の E さんが運用管理を担当している。Web 業務システムを含む D 社のネットワーク構成を図 1 に示す。

注記 図中の IP アドレスのサブネットマスクは,全て 255.255.255.0 である。

各部署の PC は起動時に,DHCP サーバから割り当てられた IP アドレスなどでネットワーク設定が行われる。PC から販売管理機能を利用する場合,販売管理機能を提供するプログラムに割り当てられた URL を指定し,Web ブラウザでアクセスする。

LB による Web サーバの負荷分散の動作

LB は,各部署の PC から Web サーバに対するアクセスをラウンドロビン方式で Web サーバ 1~3 に分散して接続する。LB を利用することによって,Web サーバ 1 台で運用した場合と比較して,応答性能と可用性の向上を実現している。

Web ブラウザで Web 業務システムの URL を指定してアクセスすると,LB は,Web サーバを一つ選択して,当該サーバ宛てにパケットを送出する。例えば,Web サーバ 2 が選択された場合,LB はパケットの送信元の IP アドレスを172.16.10.5,送信先の IP アドレスを172.16.10.12に書き換えてパケットを送出する。

また LB は,ping コマンドを用いたヘルスチェック機能を有しており,ping コマンドに対して応答しなかった Web サーバへのアクセスを停止する。

不具合事象の発生

ある日,Web 業務システムの定期保守作業において,販売管理機能のプログラムをバージョンアップしたところ,応答時間が急に遅くなり,Web ブラウザにエラーが表示される,という報告が営業部から情報システム課に多く寄せられた。

不具合事象の切分け

営業部の多くの PC で同様な事象が発生していたので,E さんは PC が原因ではないと考え,PC と Web サーバ間の通信に不具合が発生したと考えた。

E さんは,営業部の PC を利用して,原因の切分けを行った。確認項目と確認結果を表 1 に示す。

表1 確認項目と確認結果
項番確認項目確認結果
1PC から LB への ping テストの結果は良好か。また,LB から Web サーバ 1~3 への ping テストの結果は良好か。ping テストの結果は全て良好だった。
2L2SW,L3SW,LB の各システムログファイルに問題となるメッセージがあるか。問題となるメッセージはなかった。
3PC で nslookup コマンドを用いた,社内 DNS サーバの名前解決テストの結果は良好か。名前解決テストの結果は良好だった。
4Web サーバ 1~3 の HTTP 通信ログファイルに問題となるメッセージがあるか。Web ブラウザにエラーが表示されたときの Web サーバと PC 間における HTTP 通信メッセージそのものが存在しなかった。そのとき以外のメッセージには,問題となるメッセージはなかった。
5Web サーバ 1~3 への同時アクセス数が設定最大値を超えていないか。同時アクセス数は設定最大値以内であることを通信ログから確認できた。
6Web サーバ 1~3 のシステムログファイルに問題となるメッセージがあるか。Web サーバから DB サーバへのアクセスエラーメッセージ,及び TCP ポートが確保できないという内容のエラーメッセージがあった。
7DB サーバのシステムログファイルに問題となるメッセージがあるか。問題となるメッセージはなかった。

E さんはここまでの調査結果を整理して,今回の不具合の原因として想定される被疑箇所について次のような仮説を立てた。

項番 1 と 2 の結果から,PC と Web サーバ 1~3 の間の IP 層のネットワーク通信には問題がない。また,項番 3 の結果から,Web 業務システムの URL に対する名前解決にも問題はない。項番 4 と 6 の結果から,特定の Web 画面を表示するときだけ,Web ブラウザで HTTP 通信がタイムアウトとなり,タイムアウトエラーを表示していると考えた。

E さんは,ネットワーク通信の不具合についての仮説に対する確認テストを行うために,Web 業務システムを開発した F 社のテスト環境を利用して不具合を再現させ,ネットワークモニタとシステムリソースモニタを利用して状況を詳細に調べたところ,Web サーバ 1~3 で利用可能な TCP ポートが一時的に枯渇する事象が発生していることが分かった。

F 社から,Web サーバ 1~3 での利用可能な TCP ポート数の増加,Web サーバ 1~3 での TCP コネクションが閉じるまでの猶予状態である TIME_WAIT 状態のタイムアウト値の短縮,及び販売管理機能のプログラムの実行環境において Web サーバから DB サーバへの通信時の TCP ポート再利用について,E さんは改善項目の回答をもらった。

改善すべき問題点

E さんは,不具合の修正が終わった後に,不具合の切分け作業の問題点を考えた。Web サーバ 1~3 や L3SW,LB のそれぞれに記録されたログメッセージの対応関係の特定を推測に頼らざるを得ず難しかった。また,Web サーバで通信ログを調べる際に送信元の PC がすぐに特定できなかった

E さんは,ネットワーク運用の観点から改善策の検討を進めた。

出典:平成30年度 秋期 応用情報技術者試験 午後 問5