基本情報技術者 2019年 春期 午後 問04
eラーニングシステムの構成変更に関する次の記述を読んで、設問1〜3に答えよ。
G社は、全国に設置した様々な規模の教室から教育コンテンツにアクセスできるWebベースのeラーニングシステムを構築し、このシステムを使った教育事業を展開している。
eラーニングシステムは、1台のコンテンツサーバと1台のアプリケーションサーバで構成されている。コンテンツサーバは、教材や試験問題などの教育コンテンツを保持し、アプリケーションサーバを経由して、クライアントである教室のPCに教育コンテンツを送信する。
アプリケーションサーバは、受講者の認証を行い、ログインしている受講者を管理する。
受講者は、クライアントを利用して、教室ごとに設置されているプロキシサーバとインターネットを経由して、eラーニングシステムにアクセスして学習する。
最近、一部の受講者から、システム利用に関して、“応答に時間が掛かる”などの苦情が寄せられている。G社では、応答時間を短縮するために、アプリケーションサーバ1台の追加と負荷分散装置の導入を伴う新しいネットワーク構成を検討した。負荷分散装置は、クライアントからの要求を、同じ機能をもつ複数のサーバのうちのいずれかに振り分ける装置である。
〔検討したネットワーク構成〕
検討したネットワーク構成を、図1に示す。

クライアントからプロキシサーバを経由して、eラーニングシステムにアクセスするために、DNSサーバ及び負荷分散装置には次の設定を行う。
・DNSサーバに、eラーニングシステムのドメイン名とこれに対応するIPアドレスとしてaとを登録する。
・負荷分散装置に、振り分け先IPアドレスとしてbとを登録する。
〔負荷分散装置を用いたアクセスの振り分け〕
アプリケーションサーバは、ログインしている受講者を管理し、その受講者がどの教育コンテンツを閲覧中かなどの状況を保持する。したがって、負荷分散装置を用いてアプリケーションサーバの負荷分散を行う場合には、受講者がeラーニングシステムにログインしてからログアウトするまでは、その受講者が利用する1台のクライアントからアプリケーションサーバへの要求を、常に同一のアプリケーションサーバへ振り分ける必要がある。負荷分散装置には、送信元のIPアドレスの情報を基に要求を振り分けるタイプ(以下、装置タイプAという)と、OSI基本参照モデルのレイヤ4以上の情報を基に要求を振り分けるタイプ(以下、装置タイプBという)とがある。二つのタイプそれぞれの装置の動作について、概要を次に示す。
(1) 装置タイプA
(a) 振り分け先が決まっていない送信元IPアドレスからの要求は、ラウンドロビン方式で決定したアプリケーションサーバに振り分けるとともに、送信元IPアドレスと振り分け先のアプリケーションサーバのIPアドレスとを記録する。
(b) 振り分け先が決まっている送信元IPアドレスからの要求は、そのアプリケーションサーバに振り分ける。
装置タイプAを用いると、①多くのクライアントのある大規模な教室からのアクセスが、1台のアプリケーションサーバに集中して、アプリケーションサーバの負荷に偏りが生じることが予想される。
(2) 装置タイプB
(a) クライアントから送信された要求中のHTTPヘッダ内にc(以下、識別情報という)がない場合は、ラウンドロビン方式で決定したアプリケーションサーバに振り分ける。
(b) アプリケーションサーバから送信された応答に含まれるHTTPヘッダ内の識別情報と、当該アプリケーションサーバのIPアドレスとを記録する。
(c) クライアントから送信された要求中のHTTPヘッダ内の識別情報に対応するアプリケーションサーバのIPアドレスが(b)の処理によって記録されている場合は、そのアプリケーションサーバに振り分ける。
装置タイプBを用いると、多くのクライアントのある大規模な教室からプロキシサーバを経由してアクセスがあっても、振り分け先の決定をクライアント単位で行える。
検討の結果、アプリケーションサーバの負荷に偏りが少なくなることから、装置タイプBを導入することにした。
設問1:
問題文を見る 本文中のに入れる適切な答えを、解答群の中から選べ。
aに関する解答群
ア:192.0.2.1
イ:192.0.2.2
ウ:192.168.0.1
エ:192.168.0.2
オ:192.168.0.3
カ:198.51.100.1
bに関する解答群
ア:192.168.0.1と192.168.0.2
イ:192.168.0.1と192.168.0.3
ウ:192.168.0.2と192.168.0.3
エ:192.168.0.2と192.168.0.254
cに関する解答群
ア:DNSサーバのIPアドレス
イ:アプリケーションサーバとコンテンツサーバのポート番号
ウ:セッションIDを示すcookie
エ:負荷分散装置のIPアドレス
模範解答
a:イ、b:ア、c:ウ
解説
解答の導き方
この問題では、DNSサーバに登録するアドレス、負荷分散装置が振り分けるサーバのアドレス、利用者を識別する情報を、それぞれ区別して考えます。
まず、図1の構成を確認します。DNS(Domain Name System:ドメイン名から接続先を調べる仕組み)のサーバは「192.0.2.1」です。負荷分散装置(複数のサーバに要求を振り分ける装置)は、インターネット側のアドレスが「192.0.2.2」、サーバ側のアドレスが「192.168.0.254」です。アプリケーションサーバは「192.168.0.1」と「192.168.0.2」です。
-
aには、インターネット側から負荷分散装置に接続するアドレスを登録します。DNSサーバには、eラーニングシステムのドメイン名と、その接続先となるIPアドレス(IP:Internet Protocolに基づき、ネットワーク上の機器の宛先を示す番号)を登録します。利用者がドメイン名を使ってアクセスすると、まず接続先のIPアドレスが調べられます。図1では、インターネットからシステムに入る場所は、負荷分散装置のインターネット側にある「192.0.2.2」です。したがって、aには選択肢の イ が入ります。DNSサーバ自身のアドレス「192.0.2.1」は、ドメイン名を調べるサーバのアドレスです。利用者がアクセスするシステムのアドレスとは役割が異なります。
-
bには、負荷分散装置が振り分けるアプリケーションサーバのアドレスを登録します。問題文では、追加したアプリケーションサーバと負荷分散装置を使って、アプリケーションサーバの負荷を分散するとしています。図1のアプリケーションサーバは「192.168.0.1」と「192.168.0.2」です。よって、bには選択肢の ア が入ります。「192.168.0.254」は負荷分散装置のサーバ側のアドレスなので、振り分け先のサーバではありません。また、「192.168.0.3」は教育コンテンツを保持するコンテンツサーバのアドレスです。アプリケーションサーバの振り分け先には含めません。
-
cには、利用者のログイン中の状態を見分けられる情報が入ります。アプリケーションサーバは、ログイン中の受講者や閲覧中の教育コンテンツなどの状況を保持しています。そのため、ログインからログアウトまでの一連の利用(セッション)では、同じ利用者の要求を同じアプリケーションサーバに送る必要があります。HTTP(Hypertext Transfer Protocol:Webで要求と応答をやり取りするための規約)のヘッダには、要求や応答に付ける情報を記載できます。装置タイプBは、要求に含まれる識別情報と、応答を返したアプリケーションサーバのアドレスを対応付けて記録します。選択肢の中で、ログイン中の利用者を識別するために使えるのは、セッションIDを示すcookieです。cookieは、利用者のブラウザなどが要求と一緒に送る小さな情報です。セッションIDを含めることで、次の要求も同じ利用者のものだと識別できます。したがって、cには選択肢の ウ が入ります。なお、送信元IPアドレスだけで振り分ける装置タイプAでは、教室内の複数のクライアントが同じプロキシサーバを経由すると、負荷分散装置からは同じ送信元IPアドレスに見えます。その結果、その教室からの要求が同じアプリケーションサーバに集まる可能性があります。cookie内のセッションIDを使う装置タイプBなら、プロキシサーバを共有していても利用者ごとに振り分け先を決められます。
誤りやすいポイント
-
DNSサーバのアドレスと、DNSに登録する接続先のアドレスを混同すること
「192.0.2.1」はDNSサーバのアドレスです。システムへの接続先は、インターネット側の負荷分散装置「192.0.2.2」です。 -
負荷分散装置自身のアドレスを、振り分け先に含めること
「192.168.0.254」は負荷分散装置のサーバ側のアドレスです。振り分け先は、その先にあるアプリケーションサーバです。 -
コンテンツサーバもアプリケーションサーバと同じ役割だと考えること
コンテンツサーバは教材や試験問題などを保持します。負荷分散の対象として問題文に示されているアプリケーションサーバとは役割が異なります。 -
送信元IPアドレスなら、必ず利用者ごとに区別できると考えること
プロキシサーバを経由すると、複数のクライアントの要求が同じ送信元IPアドレスに見える場合があります。利用者ごとの識別には、セッションIDを含むcookieが適しています。
FAQ
Q: なぜドメイン名を負荷分散装置のサーバ側アドレスではなく、インターネット側アドレスに対応付けるのですか?
A: 利用者はインターネットからアクセスします。最初に到達する負荷分散装置のインターネット側アドレスを登録し、そこから内部のアプリケーションサーバへ要求を振り分けます。
A: 利用者はインターネットからアクセスします。最初に到達する負荷分散装置のインターネット側アドレスを登録し、そこから内部のアプリケーションサーバへ要求を振り分けます。
Q: ラウンドロビン方式とは何ですか?
A: 振り分け先を順番に切り替える方式です。例えば、複数のサーバに要求を順番に割り当てます。ただし、利用者のログイン状態を保つには、最初に割り当てたサーバを後の要求でも使い続ける仕組みが必要です。
A: 振り分け先を順番に切り替える方式です。例えば、複数のサーバに要求を順番に割り当てます。ただし、利用者のログイン状態を保つには、最初に割り当てたサーバを後の要求でも使い続ける仕組みが必要です。
Q: cookieに入っているセッションIDは、何のために使いますか?
A: ログイン中の利用者の一連の利用を識別するために使います。負荷分散装置がセッションIDと振り分け先のサーバを対応付ければ、同じ利用者の要求を同じサーバへ送れます。
A: ログイン中の利用者の一連の利用を識別するために使います。負荷分散装置がセッションIDと振り分け先のサーバを対応付ければ、同じ利用者の要求を同じサーバへ送れます。
関連キーワード: DNS、IPアドレス、負荷分散、ラウンドロビン方式、cookie
設問2:
問題文を見る 本文中の下線部①で、装置タイプAを用いたときに、アプリケーションサーバの負荷に偏りが生じる要因となり得るものはどれか。適切な答えを、解答群の中から選べ。
解答群
ア:同じ教室のどのクライアントからの要求も送信元IPアドレスが全て同じになること。
イ:クライアントから送られてきたIPパケット内の送信先アドレスが変換されること。
ウ:負荷分散装置が送信元IPアドレスの情報を用いるだけの単純な機能なので、高速に動作すること。
エ:プロキシサーバを経由しても、HTTPヘッダの情報が変更されないこと。
模範解答
ア
解説
解答の導き方
この設問では、装置タイプAで負荷を分散するとき、なぜ大規模な教室からのアクセスが1台のアプリケーションサーバに集まるのかを考えます。
-
まず、装置タイプAが何を見て振り分けるかを確認します。本文には、装置タイプAは「送信元IPアドレスの情報を基に要求を振り分ける」とあります。IPアドレス(Internet Protocolアドレス:ネットワーク上で機器を識別する番号)のうち、送信元IPアドレスは、要求を送ってきた側の番号です。
-
次に、教室からシステムまでの経路を見ます。図1では、教室内の複数のクライアント(利用者が操作するPC)が、1台のプロキシサーバ(クライアントの代わりに外部のサーバへ要求を送る中継サーバ)を経由してアクセスします。そのため、eラーニングシステム側から見ると、同じ教室のクライアントからの要求は、同じプロキシサーバから送られてきたように見えます。つまり、送信元IPアドレスが同じになります。
-
装置タイプAは、初めて見た送信元IPアドレスからの要求をラウンドロビン方式(サーバを順番に選んで振り分ける方法)で振り分け、その送信元IPアドレスと振り分け先を記録します。以後、同じ送信元IPアドレスからの要求は、記録済みの同じアプリケーションサーバ(アプリケーションを実行し、要求に応じて処理するサーバ)へ送ります。
-
したがって、大規模な教室の多くのクライアントが同じプロキシサーバを経由すると、それらの要求は同じ送信元IPアドレスとして扱われ、同じアプリケーションサーバに振り分けられます。その結果、アプリケーションサーバの負荷に偏りが生じます。
以上から、要因となるのは「同じ教室のどのクライアントからの要求も送信元IPアドレスが全て同じになること」です。
誤りやすいポイント
- 装置タイプAは、利用者やクライアントを個別に見分けるのではなく、送信元IPアドレスを基準に振り分けます。教室内にクライアントが何台あっても、プロキシサーバを経由することで送信元IPアドレスが同じになれば、同じ振り分け先に集まります。
- 送信先アドレスの変換は、装置タイプAが同じ振り分け先を選び続ける直接の理由ではありません。本文で示されている振り分けの基準は、送信元IPアドレスです。
- 装置タイプAが高速に動作するかどうかは、負荷の偏りが生じる原因とは別の話です。
- プロキシサーバを経由してもHTTPヘッダ(HTTP通信に付ける補助情報)が変わらないことは、HTTPヘッダの情報ではなく送信元IPアドレスを使う装置タイプAの振り分けには関係しません。HTTPはHypertext Transfer Protocolの略で、Web上で情報をやり取りするための通信規約です。
FAQ
Q: プロキシサーバを通ると、なぜ送信元IPアドレスが同じになるのですか?
A: プロキシサーバがクライアントの代わりにeラーニングシステムへ要求を送るためです。eラーニングシステム側では、要求を送った機器としてプロキシサーバのIPアドレスが見えます。
A: プロキシサーバがクライアントの代わりにeラーニングシステムへ要求を送るためです。eラーニングシステム側では、要求を送った機器としてプロキシサーバのIPアドレスが見えます。
Q: 装置タイプAは、同じ送信元IPアドレスからの要求を毎回別のサーバに振り分けないのですか?
A: 本文では、振り分け先を決めた送信元IPアドレスを記録し、その後の要求を同じアプリケーションサーバへ送る仕組みです。これにより、同じ利用者の処理を同じサーバで続けられます。
A: 本文では、振り分け先を決めた送信元IPアドレスを記録し、その後の要求を同じアプリケーションサーバへ送る仕組みです。これにより、同じ利用者の処理を同じサーバで続けられます。
Q: 装置タイプBでは、なぜクライアントごとに振り分けられるのですか?
A: 本文では、要求中のHTTPヘッダに含まれる識別情報を使って振り分けます。送信元IPアドレスが共通でも、識別情報が異なればクライアントごとに振り分け先を決められます。
A: 本文では、要求中のHTTPヘッダに含まれる識別情報を使って振り分けます。送信元IPアドレスが共通でも、識別情報が異なればクライアントごとに振り分け先を決められます。
関連キーワード: プロキシサーバ、送信元IPアドレス、負荷分散装置、ラウンドロビン方式、HTTPヘッダ
設問3:
問題文を見る 次の記述中のに入れる正しい答えを、解答群の中から選べ。
eラーニングシステムの応答時間は、1件の要求に対するネットワーク上のデータ転送時間、アプリケーションサーバでの処理待ち時間、及びアプリケーションサーバの処理時間(処理を始めてから応答を返すまでの時間)の合計である。検討したネットワーク構成での応答時間の短縮効果を評価するために、アプリケーションサーバでの平均処理待ち時間を計算する。
アプリケーションサーバの要求1件の平均処理時間は0.40秒であり、要求の平均到着率は2.30件/秒である。処理の待ち行列はアプリケーションサーバだけで発生するものとして、現行のネットワーク構成における平均処理待ち時間を、次のM/M/1の待ち行列モデルの式で計算すると、4.60秒となる。
平均処理待ち時間 = × 平均処理時間
ρ:アプリケーションサーバの利用率 = λ/μ
μ:アプリケーションサーバの処理率(=平均処理時間の逆数)
λ:アプリケーションサーバへの平均到着率
アプリケーションサーバを1台追加し、装置タイプBを導入したとき、1台のアプリケーションサーバでの平均処理待ち時間をM/M/1の待ち行列モデルによって計算すると、秒となる。ここで、要求は2台のアプリケーションサーバに交互に振り分けられると仮定する。また、平均処理待ち時間は小数第3位を四捨五入し、ネットワーク上のデータ転送時間とアプリケーションサーバの処理時間は変わらないものとする。
解答群
ア:0.03
イ:0.34
ウ:1.34
エ:3.41
模範解答
イ
解説
解答の導き方
求めるのは、アプリケーションサーバを2台にしたときの、1台あたりの平均処理待ち時間です。処理待ち時間は、要求がサーバーで処理を始めるまでに待つ時間です。
M/M/1(Markovian/Markovian/1:要求の到着と処理を確率的に扱い、処理するサーバーが1台の待ち行列モデル)の式では、平均到着率を 、処理率を 、利用率を とします。利用率は、サーバーの処理能力に対してどれだけ要求が到着するかを表し、 で求めます。
-
1台の処理率を求めます。
問題文では、要求1件の平均処理時間は 秒です。処理率 は平均処理時間の逆数なので、です。アプリケーションサーバを2台にしても、1台あたりの処理時間は変わらないため、1台あたりの処理率も 件/秒のままです。 -
1台あたりの平均到着率を求めます。
問題文には、要求の平均到着率が 件/秒とあります。また、要求は2台に交互に振り分けられると仮定します。したがって、各サーバーには平均して全体の半分ずつ到着します。 -
1台あたりの利用率を求めます。
-
待ち行列の式に当てはめます。=\frac{0.46}{1-0.46}\times 0.40 =\frac{0.46}{0.54}\times 0.40 \fallingdotseq 0.3407\ \text{秒}$$ 小数第3位を四捨五入すると、$0.34$ 秒です。したがって、選択肢では **イ** となります。
平均処理待ち時間は、問題文の式にあるとおり、利用率を で割り、平均処理時間を掛けて求めます。
誤りやすいポイント
-
平均到着率を1台あたりに分け忘れること
件/秒は2台全体への到着率です。交互に振り分ける条件なので、1台あたりは 件/秒です。 -
平均処理時間も半分にすること
サーバーを2台にしても、1件を処理する時間は変わりません。変わるのは、1台あたりに到着する要求数です。 -
平均処理待ち時間と平均処理時間を混同すること
求めるのは、処理を始めるまでに待つ時間です。式で計算した結果に、平均処理時間をさらに足す必要はありません。
FAQ
-
Q: サーバーが2台なのに、なぜM/M/1の式を使うのですか?
A: 問題では、2台に交互に要求を振り分けるとしています。それぞれのサーバーには、1台ずつ独立した待ち行列ができると考えられるため、1台あたりの待ち時間をM/M/1の式で計算します。 -
Q: 利用率が とは、どういう意味ですか?
A: 1台あたりの処理能力に対し、要求の到着が約46%の割合であることを表します。利用率が高くなるほど、処理中の要求が終わるのを待つ要求が増えやすくなります。 -
Q: なぜサーバーを2台にすると待ち時間が短くなるのですか?
A: 全体の要求が2台に分かれ、1台あたりの平均到着率が半分になるためです。1台に集中する要求が減り、処理を待つ時間も短くなります。
関連キーワード: 待ち行列理論、M/M/1モデル、利用率、平均到着率、処理率、負荷分散



