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

応用情報技術者平成30年秋期 午後問5


ファイル：2018h30a_ap_pm_qs.pdf

**１、本文中のa,bに入れる適切なIPアドレスを答えよ。**
aは、LBがWebサーバを選択したから、送信パケットの送信元IPについて、LBのIPに置き換えます。
なぜLBのIPとは、私はよく分からないです。いろいろを調べてから、多分、LBとWebサーバが同じサブネットワークにあるから。

172.16.10.1 （私の答え）
→
172.16.0.5　（参考答え）

bは簡単ですね。送信先だから、選択されたWebサーバ２（172.16.10.12）です。


＜＜図１　ネットワーク構成＞＞
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591618/141a06bf-a387-d3bf-61f5-be698091ea25.png)


＜＜LBによるWebサーバの負荷分散の動作＞＞
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591618/f33a0148-53e6-c274-ccaa-77410c046a6c.png)


**２、”不具合事象の切りわけ”について、（１）～（３）に答えよ。**
（１）表１中のｃに入れる適切な字句を答えよ。
DNSサーバの名前解決について、
・nslookup
・dig

違い：
両者の一番の違いは、digコマンドがネームサーバの応答を比較的そのまま表示するのに対し、nslookup コマンドは応答を加工して表示するという点です。 また、nslookupコマンドは実際に行いたい問い合わせ以外にもサーバに対して問い合わせを行い、場合によっては意図しない結果に見えることがあります。


＜＜表１＞＞
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591618/8227c330-00dc-9187-3ce1-96652208b943.png)

（２）本文中の下線①について、具体的にどのような不具合が生じていると考えたかを30字以内で述べよ。
特定の画面だけが不具合発生しますね。
タイムアウトですけど、具体的に、WebサーバからDBサーバへのアクセスがエラー発生することですね。理由は、TCPポートが枯渇します。

DBサーバへアクセスする時、TCPポートが枯渇すること（私の答え）
→
WebサーバからDBサーバへのアクセスがエラーとなった（参考答え）



＜＜調査結果の整理＞＞
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591618/c11aaf44-a393-4294-7b81-8bcbae3d1534.png)

（３）本文中の下線②によって得られる改善の効果を３５字以内で述べよ。
②には、TIME_WAIT状態が短くなるによって、早めに猶予状態から利用可能状態に戻るとのことです。

TCPコネクションが早めに利用可能状態に戻せて、枯渇する状態を避けられる（私の答え）
→
Webサーバ１～３で再利用できるTCPポート数が増やせること（参考答え）

＜＜調査結果の整理２＞＞
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591618/b9321728-da9e-bc6d-4aae-21e59af9c67b.png)


**３、”改善すべき問題点”について、（１）、（２）に答えよ。**
（１）本文中の下線③について、適切な解決方法を解答群の中から選ぶ。
下線③の問題点は、ログファイルの対応関係の特定は難しいとのことです。
難しい理由は、なんだろう？

本当は理由は分からないだろう。ただ、選択肢から見ると、
・イはウイルス対策ソフトはNGですね、別にウイルスがないから。
・ウは今回の確認でも使っているでしょう。ただ、そいう利用方法で発見した不便は関連関係が特定しにくいとこのこと。
・エは、ある程度緩和できるでしょう。デバッグログが表示されると、メッセージを組み込んで、関連関係は分かれるだろうね。
・アは、NTPにより、各サーバの時刻が同期して、ログに体現するので、ログのタイムスタンプにょり、関連関係が分かりやすくなりますね。

エ　（私の答え）
→
ア　（参考答え）

多分、出題者がエはNGの理由とは、
エはデバッグログだから、開発する時に使うが、運用する時に、使わないでしょう。システムが遅くなるから。私は開発者だけら、やられた。


・NTP (Network Time Protocol)とは、 
ネットワークに接続されたコンピュータや各種機器の時刻同期に用いられるプロトコル。
NTPはネットワークを介して時刻同期を行います。NTPではサーバ・クライアント間の通信において、 NTPメッセージを送信した時刻、受信した時刻を、 サーバ・クライアントそれぞれがメッセージの中に含めています。 これにより、ネットワークでの遅延時間を推測し、ずれの少ない時刻同期を図っています。


＜＜回線③＞＞
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591618/9ed358e9-36ae-ff47-52e4-fd2400713a1e.png)

＜＜改善すべき問題点＞＞
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591618/84989e82-74a7-2dcb-48ea-2441606ac38b.png)


（２）本文中の下線④について、送信元のPCをすぐ特定できない理由を２５字以内で述べよ。
下記図１に記載されているPCは起動時に、DHCPサーバから割り当てられたIPアドレスなどでネットワーク設定が行われること。
なので、PCのIPアドレスは、毎回は、動的に割り当てられますね。

ただ、LBにより、Webサーバを選択して、リクエストパケットをWebサーバに送信する時に、送信元がLBのIPアドレスに置き換えるので、Webサーバで通信ログには、PCのIPアドレスはありません。

IPアドレスがPC起動時に、割り当てられるから　（私の答え）
→
送信元のIPアドレスはLBのものになるから（参考答え）

質問１は間違ってあれば、当該質問も間違いしやいだろうね。ひど～

＜＜図１＞＞
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591618/c5bbc4a9-bb66-969e-a69b-d58fd565c8cc.png)


参照：

digコマンドとnslookupコマンドの違い
https://www.atmarkit.co.jp/fnetwork/dnstips/011.html#:~:text=%E4%B8%A1%E8%80%85%E3%81%AE%E4%B8%80%E7%95%AA%E3%81%AE,%E3%81%AB%E8%A6%8B%E3%81%88%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82