応用情報技術者 2009年 秋期 午後 問04
Webシステムの構成に関する次の記述を読んで、設問1~3に答えよ。
J社は、K銀行の新Webシステム(以下、本システムという)を構築することになった。本システムは、利用者が1日24時間いつでも、インターネットから利用できることを目指している。そのため、非機能要件として、次に示すセキュリティ要件と可用性要件が提示された。
〔セキュリティ要件〕
本システムの業務サーバ(Webサーバ、DBサーバ)に、利用者がインターネットから直接接続することは許さない。DMZを設け、利用者からのリクエストはDMZに配置した機器がいったん受け取り、適切な機器に転送する構成にする。また、利用者からのリクエストのプロトコルはHTTPとHTTPSだけを許可する。
〔可用性要件〕
本システム全体でのハードウェアの可用性を、フォーナイン(稼働率99.99%以上)とする。
これらの要件を満たすシステムとして、図に示す構成を考えた。利用者からのリクエストは、ロードバランサによって、いずれかのWebサーバに割り振られる。Webサーバは、DBサーバを利用して、リクエストにこたえる。

本システムで使用する機器の頼性を表に示す。使用台数が2以上の機器は、どれか1台が稼働していれば、全体として正常に稼働するものとする。

設問1:
図及び表中のa、bの機器は、セキュリティ要件を満たすために必要な機器である。適切な機器名を解答群の中から選び、記号で答えよ。
解答群
ア:IDS
イ:RADIUSサーバ
ウ:VPN装置
エ:ファイアウォール
オ:プロキシサーバ
カ:リバースプロキシ
模範解答
a:エ
b:カ
解説
解答の論理構成
-
DMZ に最初に配置される a の役割
- 引用: 「利用者からのリクエストのプロトコルはHTTPとHTTPSだけを許可する。」
- インターネット側との境界でポートやプロトコルを制限し、不正な通信を遮断する機器はファイアウォールである。
- 図でもインターネットから最初に接続され、2 台で冗長化されている。→ a = エ:ファイアウォール
-
DMZ の内部で Web サーバ群への入り口となる b の役割
- 引用: 「利用者からのリクエストはDMZに配置した機器がいったん受け取り、適切な機器に転送する構成にする。」
- 直接 Web サーバと通信させず、HTTP/HTTPS を一度受け取って内部へ振り分けるのはリバースプロキシの典型的な動作。
- 図では 2 台構成で冗長化され、後段の L3 スイッチへ流す位置にある。→ b = カ:リバースプロキシ
-
結論
- a:エ
- b:カ
誤りやすいポイント
- IDS とファイアウォールを混同し、通信遮断ではなく監視中心の IDS を選んでしまう。
- リバースプロキシと通常のプロキシ(フォワードプロキシ)を取り違え、オ:プロキシサーバを選ぶミス。
- VPN 装置を選び「DMZ=暗号化」と短絡的に判断するケース。VPN は主目的がトンネル構築であり本要件と合わない。
FAQ
Q: リバースプロキシはロードバランサとどう違いますか?
A: リバースプロキシは外部からの HTTP/HTTPS をいったん終端し、サーバの IP を隠しつつ内部へ転送します。ロードバランサは終端せずに同種サーバ間で負荷を分散する目的で使います。
A: リバースプロキシは外部からの HTTP/HTTPS をいったん終端し、サーバの IP を隠しつつ内部へ転送します。ロードバランサは終端せずに同種サーバ間で負荷を分散する目的で使います。
Q: DMZ に IDS も置くべきでは?
A: 攻撃検知という意味では有効ですが、設問は「セキュリティ要件を満たすために最低限必要な機器」を問うています。必須なのは通信制御とプロキシ動作であり、IDS は必須とは明記されていません。
A: 攻撃検知という意味では有効ですが、設問は「セキュリティ要件を満たすために最低限必要な機器」を問うています。必須なのは通信制御とプロキシ動作であり、IDS は必須とは明記されていません。
Q: フォワードプロキシとリバースプロキシの最大の違いは?
A: フォワードプロキシは内部クライアントが外部サイトへアクセスする際の中継で、外部からは見えません。リバースプロキシは外部クライアントからのアクセスを代表して受け付け、内部サーバを隠蔽します。
A: フォワードプロキシは内部クライアントが外部サイトへアクセスする際の中継で、外部からは見えません。リバースプロキシは外部クライアントからのアクセスを代表して受け付け、内部サーバを隠蔽します。
関連キーワード: DMZ, ファイアウォール、リバースプロキシ、冗長構成
設問2:
表中のcに入れる適切な数値を答えよ。答えは小数第1位以下を切り捨てて、整数で求めよ。1年は365日とする。
模範解答
c:24
解説
解答の論理構成
-
単体稼働率の定義を確認
“稼働率(単体)”は一般にで求めます。
これは停止時間(MTTR)が短いほど、また平均故障間隔(MTBF)が長いほど稼働率が高くなることを示しています。 -
DBサーバの数値を式に当てはめる
【問題文】表には- “DBサーバ”
- “MTBF 2年”
- “稼働率(単体) 99.86%”
とあります。
まず “2年” を時間に換算します。1年を365日とするので
-
MTTRを計算両辺を掛け算・移項すると計算すると
-
指示どおり小数第1位以下を切り捨て
“答えは小数第1位以下を切り捨てて、整数で求めよ” とあるので24したがって c には “24” が入ります。
誤りやすいポイント
- 1年=“365日”を見落とし 366 日で計算するミス
- 小数第1位以下の処理で四捨五入して “25” としてしまう
- MTBF と MTTR の単位不一致(年と時間混在)
- 稼働率 99.86% を 0.986 と読み違える
FAQ
Q: MTBF を分単位や秒単位に直す必要はありますか?
A: 他の値も時間で統一できていれば問題ありません。試験では計算しやすい“時間”にそろえる受験生がほとんどです。
A: 他の値も時間で統一できていれば問題ありません。試験では計算しやすい“時間”にそろえる受験生がほとんどです。
Q: 稼働率が与えられているのに可用性要件“フォーナイン”との関係は?
A: 本設問は単体機器の MTTR 計算がテーマです。システム全体の“99.99%”は、別の小問や設計判断で使います。
A: 本設問は単体機器の MTTR 計算がテーマです。システム全体の“99.99%”は、別の小問や設計判断で使います。
Q: 切り捨てか四捨五入か判断に迷ったのですが?
A: 【問題文】に “小数第1位以下を切り捨てて、整数で求めよ” と明記されているので必ず切り捨てです。
A: 【問題文】に “小数第1位以下を切り捨てて、整数で求めよ” と明記されているので必ず切り捨てです。
関連キーワード: MTBF, MTTR, 稼働率、フォールトトレランス、冗長構成
設問3:本システムの可用性について、(1)〜(3)に答えよ。
(1)要求されている可用性要件を満たすためには,1年間に最長何分間までハードウェア障害によるシステム停止が許されるか。答えは小数第1位以下を切り捨てて、整数で求めよ。1年は365日とする。
模範解答
52
解説
解答の論理構成
-
非機能要件の確認
- 【問題文】に「可用性要件 本システム全体でのハードウェアの可用性を、フォーナイン(稼働率99.99%以上)とする。」とあります。よって必要な可用性は です。
-
可用性と許容停止時間の関係式
- 可用性を 、年間総稼働時間を (分)とすると、許容停止時間 (分)は
-
年間総稼働時間 の算定
- 【小問説明】に「1年は365日とする。」とあるので
-
許容停止時間 の計算
-
答えの丸め処理
- 【小問説明】で「小数第1位以下を切り捨てて、整数で求めよ。」と指定されています。
- よって を切り捨て、答えは 52 分です。
誤りやすいポイント
- 「フォーナイン」を と誤解し、計算を誤る。設問は「稼働率99.99%以上」なので注意。
- 日数を閏年の 日にしてしまう。問題指示は「365日」。
- 小数第1位を四捨五入するミス。切り捨て指定です。
FAQ
Q: 秒単位で求める必要はありますか?
A: いいえ。【小問説明】が「最長何分間」と明示しているため、分単位で十分です。
A: いいえ。【小問説明】が「最長何分間」と明示しているため、分単位で十分です。
Q: システム全体の複合可用性を計算しなくてよいのですか?
A: この小問はターゲット値(フォーナイン)を満たす場合の許容停止時間を問うだけなので、個々の機器や冗長構成は無関係です。
A: この小問はターゲット値(フォーナイン)を満たす場合の許容停止時間を問うだけなので、個々の機器や冗長構成は無関係です。
Q: 切り捨てではなく切り上げるとどうなりますか?
A: 52.56 分を切り上げると 53 分となり、要件を超える誤答になります。問題文の指示に従ってください。
A: 52.56 分を切り上げると 53 分となり、要件を超える誤答になります。問題文の指示に従ってください。
関連キーワード: 可用性計算、フォールトトレランス、稼働率、MTTR, MTBF
設問3:本システムの可用性について、(1)〜(3)に答えよ。
(2)図及び表中のa、b、L2スイッチ、L3スイッチ、ロードバランサ、Webサーバ、DBサーバの単体での稼働率をそれぞれp[1]、p[2]、p[3]、p[4],p[5],p[6]、p[7]、各機器の台数をn[1]、n[2]、n[3]、n[4]、n[5]、n[6],n[7]とした場合の、全体の稼働率を算出する式を解答群の中から選び、記号で答えよ。
ここで、
とする。
解答群
ア:
イ:
ウ:
エ:
オ:
カ:
模範解答
カ
解説
解答の論理構成
-
前提整理
問題文には「使用台数が2以上の機器は、どれか1台が稼働していれば、全体として正常に稼働するものとする。」とあります。これは同一機器を「並列冗長」で配置していることを示します。また「図及び表中のa、b、L2スイッチ、L3スイッチ、ロードバランサ、Webサーバ、DBサーバ」を 1 つの“系列”として接続しているため、各機器群が すべて動いていなければシステムは停止します。
したがって
・機器群内:並列構成
・機器群間:直列(シリーズ)構成
という二段階の可用性評価が必要です。 -
機器群内(並列)の可用性
単体稼働率を 、台数を とすると、 ・全台が同時に故障する確率 …
・少なくとも1台が稼働する確率 … -
機器群間(直列)の可用性
直列系では「全部が動く」必要があるため、各群の可用性を掛け合わせます。
よってシステム全体の稼働率は
-
解答群照合
上式に該当するのは「カ:」です。
誤りやすいポイント
- 直列と並列の混同
並列冗長の可用性 を忘れ、単純に などと加算してしまう。 - 全体を和で集計
直列システムなのに を選んでしまうと、「どれか一群が動けばよい」という誤った前提になる。 - 指数部の記号ミス
解答群に「」と「」の両方があるため、表記揺れで選択肢を取り違えるケースが多い。
FAQ
Q: 並列冗長が 2 台の場合の式は暗記すべきですか?
A: 暗記よりも「全停止確率=」→「1 から引く」という手順を理解すると、台数が変わっても応用できます。
A: 暗記よりも「全停止確率=」→「1 から引く」という手順を理解すると、台数が変わっても応用できます。
Q: 直列システムでなぜ可用性を掛け算するのですか?
A: 直列構成は 全ての要素が同時に稼働して初めてサービスを提供できます。確率的に「かつ ()」の事象は乗法で表すため、掛け算になります。
A: 直列構成は 全ての要素が同時に稼働して初めてサービスを提供できます。確率的に「かつ ()」の事象は乗法で表すため、掛け算になります。
関連キーワード: 稼働率、並列冗長、直列システム、フォールトトレランス、可用性計算
設問3:本システムの可用性について、(1)〜(3)に答えよ。
(3)可用性要件の充足に関する記述として適切なものを解答群の中から選び、記号で答えよ。
解答群
ア:図及び表に示す機器構成で可用性要件を満たしている。
イ:図及び表に示す機器構成では可用性要件を満たしていないが、WebサーバとDBサーバを1台ずつ追加することで満たすことができる。
ウ:図及び表に示す機器構成では可用性要件を満たしていないが、Webサーバを1台追加することで満たすことができる。
エ:図及び表に示す機器構成では可用性要件を満たしていないが、ロードバランサを1台追加することで満たすことができる。
模範解答
エ
解説
解答の論理構成
-
非機能要件として【問題文】に「フォーナイン(稼働率99.99%以上)」とあります。したがってシステム全体の稼働率が 99.99% を下回れば要件未達です。
-
【問題文】の表には単体稼働率が示されています。複数台がある機器は【問題文】の「どれか1台が稼働していれば、全体として正常に稼働する」とあるので、冗長化後の稼働率は
で求めます( は台数)。 -
表に従い計算すると次のとおりです(% は小数に直して計算)。
-
システムは直列連携なので全体稼働率は上記の積です。
① 現状(ロードバランサ1台)99.93%は 99.99% を下回るため要件未達。 -
対策案を検討します。
② ロードバランサを1台追加(2台冗長)すると
全体は99.9989% ≥ 99.99% なので要件充足。 -
他の候補を試算すると
・Webサーバを1台追加しても、ボトルネックであるロードバランサが 0.9993 のままなので 99.99% に届きません。
・DBサーバを1台追加しても同様にロードバランサが原因で未達です。 -
したがって可用性要件を満たせるのはロードバランサを追加する案。解答群「エ」が正解です。
誤りやすいポイント
- 「ロードバランサは高稼働率だからボトルネックではない」と思い込み、99.93%のまま計算を止めてしまう。
- 割合を掛け合わせる際に 99.86% → 0.9986 への変換を忘れ、百分率のまま掛け算して誤答になる。
- 冗長化の式を と誤って足し算的に扱う。
- 条件「どれか1台が稼働すれば良い」を読み飛ばし、冗長化の効果を無視する。
FAQ
Q: なぜロードバランサだけがボトルネックになるのですか?
A: 他の機器は 2~3 台で冗長化され、計算上 99.999% 近い稼働率になります。一方「ロードバランサ」は表で「使用台数 1」かつ「稼働率 99.93%」なので、全体の積を押し下げる最大要因になります。
A: 他の機器は 2~3 台で冗長化され、計算上 99.999% 近い稼働率になります。一方「ロードバランサ」は表で「使用台数 1」かつ「稼働率 99.93%」なので、全体の積を押し下げる最大要因になります。
Q: ロードバランサを2台にしたとき 99.9989% になったのはどう算出したのですか?
A: まずロードバランサの冗長後稼働率を求め、その後すべての機器群の稼働率を小数で掛け合わせています。電卓で少数第6位くらいまで保持すると 0.999989 となり、百分率で 99.9989% となります。
A: まずロードバランサの冗長後稼働率を求め、その後すべての機器群の稼働率を小数で掛け合わせています。電卓で少数第6位くらいまで保持すると 0.999989 となり、百分率で 99.9989% となります。
Q: 冗長化台数をさらに増やすと可用性は無限に高くなりますか?
A: 式 の極限は 1 ですが、ハードウェア追加に比例してコスト・運用負荷が増えます。要件を満たした時点で追加しないのが実務的判断です。
A: 式 の極限は 1 ですが、ハードウェア追加に比例してコスト・運用負荷が増えます。要件を満たした時点で追加しないのが実務的判断です。
関連キーワード: 可用性、冗長構成、稼働率、フォールトトレランス、MTBF


