Webシステムの負荷分散と不具合対応【応用情報技術者試験 平成30年度 秋期 午後 問5(ネットワーク)】

応用情報技術者試験 平成30年度 秋期 午後 問5(ネットワーク)

問5 Webシステムの負荷分散と不具合対応に関する次の記述を読んで、設問1〜3に答えよ。

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

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

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

f:id:aolaniengineer:20200718053125p:plain

 各部署の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アドレスを(a:172.16.10.5)、送信先のIPアドレスを(b:172.16.10.12)に置き換えてパケットを送出する。

a:172.16.10.5、b:172.16.10.12

負荷分散装置(LB:Load Balancer)は、クライアントと複数のサーバの通信を中継し、サーバの応答性能と可用性の向上を実現します。

複数のサーバに順番に均等に割り振るラウンドロビン方式や、現在の接続数が最も少ないサーバを選択する最小接続数方式(Least Connections)、応答時間が最も早いサーバを選択する最速応答時間方式(Fastest Response Time)などがあります。

通信の流れとしては、クライアントの宛先IPアドレスは負荷分散装置であり、負荷分散装置で振り分け先のサーバを決定し、サーバに転送します。

そして、サーバからの応答は負荷分散装置を宛先にして送信し、負荷分散装置で要求元のクライアントに転送します。

したがって、本文の場合は、LBで送信元IPアドレスを自身のIPアドレスに、送信先IPアドレスをWebサーバ2のIPアドレスに置き換えてパケットを転送することになります。

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

【不具合事象の発生】

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

【不具合事象の切分け】

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

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

f:id:aolaniengineer:20200718053153p:plain

c:nslookup 又は dig

DNSサーバの名前解決テストでは、コマンドでDNSサーバに問合せを行うことにより、ドメイン名からIPアドレスを調べたり、DNSサーバの情報を確認したりすることができます。

コマンドには、「nslookup」と「dig」があり、「nslookup」はDNSサーバからの応答を見やすい形に加工して表示するのに対し、「dig」ではDNSサーバからの応答をほぼそのまま表示します。

トラブル解析などでは、「dig」コマンドの方が効率良く確認ができます。

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

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

①について、具体的にどのような不具合が生じていると考えたかを30字以内で述べよ。:WebサーバからDBサーバへのアクセスがエラーとなった。

項番4と6より、Webサーバ1〜3の各種ファイルでの確認結果は以下の通りです。

  • HTTP通信ログファイル:Webブラウザにエラーが表示されたときのWebサーバとPC間におけるHTTP通信メッセージそのものが存在しない
  • システムログファイル:WebサーバからDBサーバへのアクセスエラー、及びTCPポートが確保できないという内容のエラー

HTTP通信メッセージがないことから、Webサーバが要求を受信してから応答するまででエラーが発生している可能性があると考えられます。

そして、特定のWeb画面を表示する処理において、WebサーバからDBサーバへのアクセスエラーが発生していたと考えれば良さそうです。

HTTP要求の受信があったかどうかは悩みどころですが、システムログファイルでWebサーバ側でエラーが発生していることから、受信は届いていたと考えるのが妥当かと思います

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

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

②によって得られる改善の効果を35字以内で述べよ。:Webサーバ1〜3で再利用できるTCPポート数を増やせること

TIME_WAIT状態は、本文には「TCPコネクションが閉じるまでの猶予状態」のこととありますが、もう少し言うと、実際の通信自体は完了してコネクションが閉じられる状態になってから実際にコネクションが閉じられるまでの待ち時間の状態をいいます。

この待ち時間を設定している目的は、ネットワーク内を遅延するパケットと、新たに開始した通信のTCPポート番号が重複しないようにすることです。

ただ、このTIME_WAITのタイムアウト値が適正な値になっていないと、TIME_WAIT状態状態のTCPポートが多発して、再利用できるTCPポートを確保できなくなります。

したがって、TIME_WAIT状態のタイムアウト値の短縮を行うことで、再利用できるTCPポート数を増やすことができます。

【改善すべき問題点】

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

③について、適切な解決方法を解答群の中から選び、記号で答えよ。

解答群

ア NTPによる時刻同期機能を導入する。

イ ウィルス対策ソフトを導入する。

ウ 各機器で取得したログファイルを個々に確認する。

エ 各機器のデバッグログも表示されるようにする。

ア NTPによる時刻同期機能を導入する。

複数の機器それぞれに記録されたログファイルから全体の通信シーケンスの前後関係を確認するには、各事象の時刻が全体で一致している必要があります。

時刻がずれていると、その時間差を考慮してログを照合することになり、かなり非効率の作業となってしまうからです。

したがって、各機器の時刻を合わせるために、NTP(Network Time Protocol)による時刻同期機能を導入するのが適切です。

④について、送信元のPCをすぐに特定できない理由を25字以内で述べよ。:送信元のIPアドレスはLBのものになるから

前の設問の通り、PCからWebサーバへのアクセスは、LBで送信元IPアドレスがLB自身のIPアドレスに書き換えられるため、WebサーバにはLBのアドレスとして記録されることになります。

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

【出典:応用情報技術者試験 平成30年度 秋期 午後 問5(一部、加工あり)】

https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2018h30_2/2018h30a_ap_pm_qs.pdf