基本情報技術者 2018年 春期 午後 問04
クラウドサービス上でのシステム構築に関する次の記述を読んで、設問1,2に答えよ。
G社は、J社が運営するクラウドサービス上で、写真投稿サービス及び写真検索サービスを構築することにした。
(1) 写真投稿サービスは、利用者から投稿された写真を受け付け、自動で分類し、保管するサービスである。
(2) 写真検索サービスは、利用者から指定された条件に合致する写真を、保管されている写真の中から検索し、表示させるサービスである。
(3) 利用者は、PC、スマートフォンなど(以下、クライアントという)を用いてサービスを利用する。
システム構成を図1に示す。図1中の矢印の向きはアクセスの方向を示している。
写真投稿サービスにおける処理の概要は、次のとおりである。
(1) フロントサーバは、クライアントから写真を受け取り、一意なIDを写真に割り当て、ストレージサーバに保存する。
(2) フロントサーバは、写真のID、ストレージサーバ上での写真の保存場所などを、その写真の属性情報としてDBサーバに登録する。
(3) フロントサーバは、キューサーバに写真のIDを格納する。
(4) バックサーバは、キューサーバから写真のIDを取得する。
(5) バックサーバは、(4)で取得したIDに該当する写真の属性情報をDBサーバから検索し、ストレージサーバから写真を取得する。
(6) バックサーバは、(5)で取得した写真をあるアルゴリズムによって分類し、分類結果をDBサーバのその写真の属性情報に付加する。
(7) レプリケーションサーバは、ストレージサーバに定期的にアクセスし、新規に保存された写真を取得して自サーバ上に保存する。レプリケーションサーバ上の写真の保存場所は、ストレージサーバ上のそれと一意に対応付けられるように、あらかじめ定めてある規則に従って決定する。
写真検索サービスにおける処理の概要は、次のとおりである。
(1) フロントサーバは、クライアントから検索要求を受け取り、条件に合致する写真の属性情報をDBサーバから検索する。
(2) フロントサーバは、検索された写真の属性情報から、レプリケーションサーバに保存された写真にアクセスするためのURLを作成する。
(3) フロントサーバは、作成したURLを含むHTMLデータを生成してクライアントに返す。
(4) クライアントは、フロントサーバから返されたHTMLデータに基づきレプリケーションサーバにアクセスし、写真を取得して表示する。
なお、クライアントは、インターネットと負荷分散装置を介して、フロントサーバとレプリケーションサーバにアクセスする。
サーバは仮想マシン上で稼働させる。フロントサーバ及びバックサーバを稼働させる仮想マシンの主記憶容量やディスク容量は十分にあり、負荷に応じて台数を増減できる。
計算処理能力やネットワーク処理能力に着目すると、仮想マシンには幾つかのタイプがある。仮想マシンのタイプを表1に示す。

表1中の計算処理能力は、タイプAの計算処理能力を1としたときの相対的な値である。ネットワーク処理能力は、タイプAのネットワーク処理能力を1としたときの相対的な値である。
“1秒の計算処理量”とは、タイプAの仮想マシン1台を計算処理能力の100%で1秒間使用したときの処理量をいう。また、“1秒のネットワーク処理量”とは、タイプAの仮想マシン1台をネットワーク処理能力の100%で1秒間使用したときの処理量をいう。
フロントサーバにおいては、1要求当たり、計算処理量は0.1秒、ネットワーク処理量は0.07秒である。
クライアントからの要求が非常に多いとき、フロントサーバのコストを最も低く抑えることができる仮想マシンのタイプはaである。ここで、各仮想マシンの計算処理能力とネットワーク処理能力の平均の使用率は、それぞれ50%以下に抑えることとする。
バックサーバにはタイプDの仮想マシンを使用する。
バックサーバの写真1枚当たりの計算処理量は、25秒である。1時間当たり4,000枚の写真の投稿があるとき、計算処理能力の平均の使用率を50%以下とするのに最低限必要な仮想マシンの台数はb台である。ここで、ネットワーク処理能力は足りているものとする。
図1中の各サーバ及び負荷分散装置(以下、サーバ類という)は表2に示すいずれかのグループに属しており、グループごとに他のグループやインターネットからのアクセス許可を設定することができる。サーバ類が受け付けるプロトコルを表3に示す。


各グループが許可するアクセスを必要最低限とすることにした結果、cが許可するアクセスは一致する。また、グループ3が許可するアクセスは表4に示すとおりになった。
表4は、グループ3に属するサーバ類が、アクセス元に指定したグループに属するサーバ類からの、指定したポート番号のポートを介してのアクセスを許可することを示している。

設問1:
問題文を見る 本文中のに入れる正しい答えを、解答群の中から選べ。
aに関する解答群
ア:A
イ:B
ウ:C
エ:D
bに関する解答群
ア:4
イ:7
ウ:28
エ:56
cに関する解答群
ア:グループ1、2、5及び6
イ:グループ2、5及び6
ウ:グループ2及び6
エ:グループ5及び6
模範解答
a:イ、b:イ、c:ウ
解説
解答の導き方
この問題では、仮想マシンの処理能力とコストからフロントサーバのタイプを選び、バックサーバの必要台数を計算します。また、サーバ類の通信経路から、同じアクセスを許可するグループを判断します。
a:フロントサーバのタイプ
仮想マシン(物理的なコンピュータ上にソフトウェアで作るコンピュータ)のタイプごとに、計算処理とネットワーク処理の両方で、1秒間に処理できる要求数を求めます。
本文によると、1要求当たりの処理量は、計算処理が秒、ネットワーク処理が秒です。また、計算処理能力とネットワーク処理能力の平均使用率は、それぞれ以下にします。
たとえばタイプAでは、計算処理能力の半分を使うと、1秒間に処理できる要求数は次のとおりです。
ネットワーク処理能力の半分を使う場合は、次のとおりです。
この場合、計算処理が先に上限に達するため、タイプAの仮想マシン1台が処理できる要求数は、1秒当たり件です。同じように各タイプを計算すると、次の表になります。
計算処理とネットワーク処理のうち、処理できる要求数が少ない方が、1台当たりの処理上限になります。両方の処理が必要なため、片方だけの能力が高くても、もう片方が上限になれば、それ以上の要求は処理できないからです。
要求数が非常に多い場合、必要な仮想マシンの台数は、1台当たりの処理上限におおむね反比例します。そのため、コストを処理上限で割った値が小さいタイプほど、同じ要求数を処理するためのコストを抑えられます。表ではタイプBが最も小さいので、aはタイプBです。
b:バックサーバの必要台数
バックサーバはタイプDを使い、写真1枚の分類に秒かかります。1時間に枚を処理するために必要な計算処理量は、次のとおりです。
これは、タイプAの計算処理能力を基準にした処理量です。
タイプDの計算処理能力はです。平均使用率を以下にする場合、1台が1時間に使える計算処理量は次のとおりです。
したがって、必要な台数は次の計算で求められます。
6台では不足し、7台あれば必要な処理量を満たせます。台数は整数なので、bは7台です。問題文ではネットワーク処理能力は足りているとあるため、計算処理能力だけを考えればよいです。
c:同じアクセスを許可するグループ
ここでは、どのグループに属するサーバが、どのグループからの通信を受け付けるかを比べます。負荷分散装置は、届いた通信を複数のサーバに振り分ける装置です。また、ポート番号は、サーバ上のどの通信サービス宛てかを区別する番号です。
本文には、クライアントがインターネットと負荷分散装置を介して、フロントサーバとレプリケーションサーバにアクセスするとあります。図1のグループ分けでは、負荷分散装置がグループ1、フロントサーバがグループ2、レプリケーションサーバがグループ6です。
フロントサーバとレプリケーションサーバは、どちらも表3でHTTP(Hypertext Transfer Protocol:Webのデータを送受信する通信方式)を受け付け、ポート番号は80です。そのため、両方のグループが許可する、受信する側から見たアクセスは「グループ1から、ポート番号80へのアクセス」です。
一方、グループ3の表には、グループ2とグループ4から、ポート番号15432と15672へのアクセスを許可するとあります。これは、DBサーバ(DB:Database。データを整理して保存し、検索するための仕組み)とキューサーバが、フロントサーバとバックサーバからアクセスされるためです。アクセス元とアクセス先を区別して考えると、グループ2とグループ6の許可内容が一致するため、cはグループ2及び6です。
誤りやすいポイント
- 計算処理能力とネットワーク処理能力を足さないこと。 1要求には両方の処理が必要です。処理上限は、要求数が少ない方で決まります。
- 使用率の条件を忘れないこと。 平均使用率を以下にするため、1台の能力をそのまま使うのではなく、能力にを掛けます。
- bで台数を切り捨てないこと。 計算結果が約なので、必要台数は7台です。6台では処理量が足りません。
- アクセスの向きを取り違えないこと。 グループ3の表は、グループ3に属するサーバが受け付けるアクセスを示しています。アクセス元とアクセス先を逆にしないようにします。
- cではポート番号だけを比べないこと。 許可するアクセスが同じかどうかは、アクセス元のグループとポート番号の両方で判断します。
FAQ
Q: タイプBのコストを処理上限で割るのはなぜですか?
A: 要求が非常に多い場合は、処理能力が必要な台数を左右します。1台当たりの処理上限に対してコストが低いタイプほど、同じ処理量を実現するためのコストを抑えやすくなります。
A: 要求が非常に多い場合は、処理能力が必要な台数を左右します。1台当たりの処理上限に対してコストが低いタイプほど、同じ処理量を実現するためのコストを抑えやすくなります。
Q: バックサーバの計算結果が約台のとき、なぜ7台にするのですか?
A: 6台では必要な処理量に届かないためです。必要な処理量を満たすには、端数を切り上げた台数が必要です。
A: 6台では必要な処理量に届かないためです。必要な処理量を満たすには、端数を切り上げた台数が必要です。
Q: グループ1からのアクセスと、インターネットからのアクセスは同じですか?
A: この構成では、クライアントのアクセスは負荷分散装置を経由します。フロントサーバやレプリケーションサーバから見ると、直接のアクセス元はインターネットではなく、負荷分散装置の属するグループ1です。
A: この構成では、クライアントのアクセスは負荷分散装置を経由します。フロントサーバやレプリケーションサーバから見ると、直接のアクセス元はインターネットではなく、負荷分散装置の属するグループ1です。
関連キーワード: 仮想マシン、負荷分散、処理能力、稼働率、ポート番号、アクセス制御
設問2:
問題文を見る クライアントからの写真へのアクセスを、ストレージサーバがインターネットを介して直接受ける方法も考えられるが、この方法ではなく、図1のように負荷分散装置を介し、レプリケーションサーバが受けることの利点として適切な答えを、解答群の中から二つ選べ。
解答群
ア:クライアントからの写真へのアクセスが増加しても、ストレージサーバの負荷は高まらない。
イ:クライアントと写真へのアクセスに応答するサーバとの間に介在するサーバ類の台数が少ないので、ネットワーク遅延が小さい。
ウ:ストレージサーバに障害が発生しても、写真検索サービスの提供を継続できる。
エ:ストレージサーバに障害が発生しても、写真投稿サービスの提供を継続できる。
オ:全てのフロントサーバに障害が発生しても、写真検索サービスの提供を継続できる。
模範解答
アウ
解説
解答の導き方
この設問では、写真を表示するときにストレージサーバから直接写真を取得する方法と、図1のようにレプリケーションサーバから取得する方法を比べます。レプリケーションサーバは、ストレージサーバに保存された写真の複製を保管するサーバです。
写真検索サービスでは、フロントサーバ(利用者からの要求を受け付けるサーバ)が検索条件に合う写真を調べ、レプリケーションサーバ上の写真にアクセスするための情報をクライアントへ返します。クライアントは、その情報を使って負荷分散装置(アクセスを複数のサーバに振り分ける装置)を通り、レプリケーションサーバから写真を取得します。
一方、写真の投稿時には、フロントサーバが写真をストレージサーバに保存します。また、レプリケーションサーバはストレージサーバから新しい写真を取得し、自分のサーバにも保存します。この仕組みから、各選択肢を判断できます。
- ア:適切です。写真を表示する際、クライアントはストレージサーバではなくレプリケーションサーバから写真を取得します。そのため、写真へのアクセスが増えても、そのアクセスが直接ストレージサーバに集中することはありません。ストレージサーバの負荷を抑えられます。
- イ:適切ではありません。レプリケーションサーバを使う場合、クライアントと写真を返すサーバとの間に負荷分散装置が介在します。ストレージサーバに直接アクセスする方法より、介在するサーバ類が少なくなるとはいえず、遅延が小さくなる利点とは判断できません。
- ウ:適切です。ストレージサーバに障害が起きても、レプリケーションサーバには既に複製された写真が残っています。また、写真検索サービスに必要な属性情報はDBサーバ(写真の情報を整理して保存するデータベースを扱うサーバ)から検索します。そのため、ストレージサーバに障害が起きても、保管済みの写真を検索して表示するサービスを続けられます。
- エ:適切ではありません。写真の投稿では、フロントサーバがストレージサーバに写真を保存します。ストレージサーバに障害が起きると、写真を保存できないため、写真投稿サービスを続けられません。
- オ:適切ではありません。写真検索では、フロントサーバが検索要求を受け取り、DBサーバから属性情報を検索して、クライアントに写真のアクセス先を返します。フロントサーバが全て停止すると、この検索処理を行えません。レプリケーションサーバに写真が残っていても、写真検索サービス全体は続けられません。
誤りやすいポイント
- レプリケーションサーバに写真があることと、写真投稿サービスも続けられることは別です。投稿時にはストレージサーバへの保存が必要です。
- 写真検索サービスは、写真の実データを返すだけではありません。検索要求を受け付け、条件に合う写真を調べてアクセス先を返す処理も必要です。
- ストレージサーバに障害が起きた場合でも、レプリケーションサーバに既に保存された写真は利用できます。ただし、障害中に新しく投稿された写真まで表示できるとは限りません。
FAQ
Q:ストレージサーバに障害が起きたとき、新しく投稿された写真も検索できますか?
A:新しい写真をストレージサーバに保存できないため、投稿処理を完了できません。また、レプリケーションサーバもストレージサーバから新しい写真を取得できません。ここで続けられるのは、すでに複製が保存されている写真の検索・表示です。
A:新しい写真をストレージサーバに保存できないため、投稿処理を完了できません。また、レプリケーションサーバもストレージサーバから新しい写真を取得できません。ここで続けられるのは、すでに複製が保存されている写真の検索・表示です。
Q:レプリケーションサーバは、検索条件に合う写真を選ぶ役割もありますか?
A:問題文の処理では、条件に合う写真の属性情報を検索するのはフロントサーバです。レプリケーションサーバは、クライアントからのアクセスに応じて写真を提供します。
A:問題文の処理では、条件に合う写真の属性情報を検索するのはフロントサーバです。レプリケーションサーバは、クライアントからのアクセスに応じて写真を提供します。
Q:負荷分散装置は写真を保存しますか?
A:写真の保存先ではありません。アクセスをサーバに振り分ける役割です。写真そのものは、ストレージサーバやレプリケーションサーバに保存されます。
A:写真の保存先ではありません。アクセスをサーバに振り分ける役割です。写真そのものは、ストレージサーバやレプリケーションサーバに保存されます。
関連キーワード: レプリケーション、負荷分散、冗長化、可用性、障害対策




