応用情報技術者 2011年 春期 午後 問04
非機能要件の定義に関する次の記述を読んで、設問1~4に答えよ。
R社は、インターネット上で商品販売を行う中堅企業である。現在稼働しているシステムでは、画面での業務ロジックといった機能要件だけを追求し、可用性や性能といった非機能要件を明らかにしていなかった。その結果、サーバの故障による取引データの消失、ネットワーク機器の故障による長時間にわたるサービス停止、取引トランザクションの増加によるレスポンスの低下などが起きている。データ外失や計画外のシステム停止は信用低下という問題を、サービスの停止やレスポンスの低下は販売機会損失の発生という業務上の問題を引き起こしている。
そこで、R社のシステム部では、これらの問題に対応するため、現行システムをリプレースすることにした。新システムの要件定義においては、想定以上の取引が発生した際のレスポンス低下や不正を追跡するなどの内部統制への対応を考慮した。また、投資は必要最低限の範囲に抑える方針で、非機能要件を表1のとおり整理した。


〔可用性の検討〕
新システムでは、各機器の故障による問題を回避するために、表1の耐障害性の項目にあるように、各機器を二重化する。ただし、データベースのディスクを二重化することはコストが非常に掛かるので二重化はせず、二つのデータベースサーバでディスクを共有する構成にして、そのディスクをRAID1+0による冗長構成にすることで、稼働率を上げることとした。
新システムの構成案を図1に示す。この図のとおり、共有ディスク以外のすべての機器、回線及びLANが二重化された構成である。FW1、FW2はWebサーバへの負荷を分散させるロードバランサの機能を兼ねる。LANは、アクティブスタンバイ方式で二重化されている。また、災害復旧サイトとして、同じ構成のバックアップシステムを遠隔地に配置する。

〔性能の検討〕
必要なLANの転送速度について考える。現行システムのトランザクションを調査したところ、画像データやカタログデータの閲覧から注文完了までの1トランザクション当たりの平均転送量は0.6Mバイトだった。性能目標値である1時間当たりの最大トランザクション数は2,400件なので、1秒当たりの最大転送量はbビットである。LAN上での実効転送速度が20%低下するとして、LANの最大利用率50%を考慮すると、転送速度は最低でもcビット/秒は必要である。
性能目標値については、応答時間5秒以内、選守率95%を確保するために、災害復旧サイトへのリアルタイムデータ配信は実施しないこととする。
〔拡張性の検討〕
将来の拡張のために、表1のリソース拡張性を検討している。このうちWebサーバについては、単体での拡張性は求められていない。これは、Webサーバの性能が不足した場合、aすることによってWebサーバ全体の性能を向上させることができるからである。
〔セキュリティの検討〕
セキュリティ要件として挙げられているデータ暗号化は、個人情報を扱う今回のシステムでは必須の要件である。ただし、データを暗号化するとCPUリソースを消費し、さらに、暗号化したデータはサイズが大きくなるので、ディスク及びネットワークリソースも消費する。
設問1:〔可用性の検討〕について、(1)、(2)に答えよ。
(1)稼働率99.9%を満たすためには、1年間を365日とすると、1年間のサービス中断時間の累計は最大何時間か。答えは、小数第3位を四捨五入して小数第2位まで求めよ。
模範解答
8.76
解説
解答の論理構成
- 稼働率の定義を確認
【問題文】の表1には「稼働率 99.9%」と明示されています。稼働率は
稼働率 = 稼働時間 ÷(稼働時間+停止時間)
で表され、停止時間の許容値を逆算できます。 - 年間総時間を算出
問題文で「1年間を365日」と指定されています。
365日 × 24時間/日 = 8,760時間 - 停止時間を計算
稼働率が「99.9%」ということは、停止率は
100% − 99.9% = 0.1% = 0.001
よって許容される停止時間は
8,760時間 × 0.001 = 8.76時間 - 四捨五入の確認
8.760… はすでに小数第3位が 0 なので四捨五入後も「8.76」です。
結論:サービス中断時間の累計は 8.76 時間 となります。
誤りやすいポイント
- 「99.9%」を 0.9999 と読み違えてしまい、停止率を 0.01% と計算してしまう。
- 1年間を 365日ではなく閏年の 366日で計算してしまう。
- 停止時間を分単位・秒単位に換算する際に桁をずらし、最終値を時間に直し忘れる。
FAQ
Q: 小数第2位まで求めよとありますが、もともと 8.76 の形で出るのは偶然ですか?
A: 停止率が 0.001、年間時間が 8,760 といずれも 3桁×10³ の関係なので、計算結果も 8.760 となり、小数第3位が 0 になるため四捨五入しても変わりません。
A: 停止率が 0.001、年間時間が 8,760 といずれも 3桁×10³ の関係なので、計算結果も 8.760 となり、小数第3位が 0 になるため四捨五入しても変わりません。
Q: 稼働率を 99.95% や 99.99% にすると一気にコストが上がると言われるのはなぜですか?
A: 許容停止時間が指数関数的に短くなるため、冗長構成・無停止切替・障害検知の自動化など高価な対策が追加で必要になるためです。
A: 許容停止時間が指数関数的に短くなるため、冗長構成・無停止切替・障害検知の自動化など高価な対策が追加で必要になるためです。
Q: 「稼働率」と「可用性」は同じ意味ですか?
A: 本試験ではほぼ同義で扱われますが、厳密には可用性は「必要な時に使える可能性」を総合的に示し、稼働率はその指標の一つです。
A: 本試験ではほぼ同義で扱われますが、厳密には可用性は「必要な時に使える可能性」を総合的に示し、稼働率はその指標の一つです。
関連キーワード: 稼働率, 可用性, 停止率, SLA, 冗長構成
設問1:〔可用性の検討〕について、(1)、(2)に答えよ。
(2)ファイアウォールの稼働率をf、Webサーバの稼働率をw、データベースサーバの稼働率をd、共有ディスクの稼働率をs、ネットワークの稼働率を1とした場合、図1の新システムの稼働率を解答群の中から選び、記号で答えよ。
解答群
ア:
イ:
ウ:
エ:
模範解答
ア
解説
解答の論理構成
-
構成要素と前提の確認
問題文には「ファイアウォールの稼働率をf、Webサーバの稼働率をw、データベースサーバの稼働率をd、共有ディスクの稼働率をs、ネットワークの稼働率を1」とある。可用性計算の対象はこの5要素である。 -
機器が“並列”か“直列”かを判断
– 「共有ディスク以外のすべての機器、回線及びLANが二重化された構成」とあるため、ファイアウォール・Webサーバ・データベースサーバはいずれも“二重化=並列冗長”である。
– ただし通信経路上には2段のファイアウォール群が存在する(インターネット側と内部側)。それぞれの段で1台でも稼働していれば通過できる=段内は並列、段間は直列となる。
– Webサーバとデータベースサーバは各1段のみで、段内並列・段間直列となる。
– 共有ディスクは単一構成なので直列要素。 -
各段の可用性を式で表す
並列冗長装置2台の可用性は (Aは単体稼働率)。
– ファイアウォール1段当たり:
– この段が2つ直列 → 乗算で
– Webサーバ段:
– データベースサーバ段:
– 共有ディスク: -
全体可用性を乗算
直列関係は積となるので
これが解答群「ア」である。 -
従って選択肢は「ア」。
誤りやすいポイント
- ファイアウォールが2台ではなく“2段×2台”であることを見落として としてしまう。
- 冗長化された機器を足し算で処理し、 や を用いた直列扱いをしてしまう。
- 「ネットワークの稼働率を1」と明言されているのに式に含めてしまい全体値を下げる。
- RAID1+0 で冗長化された共有ディスクも二重化と誤解し を使ってしまう。
FAQ
Q: 冗長化の段数が増えると可用性は必ず上がりますか?
A: 段内が並列でも段間が直列になるため、段数が増え過ぎるとかえって全体可用性が下がる場合があります。本問のように段ごとに必要性を評価することが重要です。
A: 段内が並列でも段間が直列になるため、段数が増え過ぎるとかえって全体可用性が下がる場合があります。本問のように段ごとに必要性を評価することが重要です。
Q: という形はどんなときに使いますか?
A: 同一機器を n 台並列化し「1台でも動けばサービス継続」という冗長構成をとるときに用います。n=2 なら です。
A: 同一機器を n 台並列化し「1台でも動けばサービス継続」という冗長構成をとるときに用います。n=2 なら です。
Q: 共有ディスクを二重化しないのはなぜですか?
A: 問題文に「データベースのディスクを二重化することはコストが非常に掛かるので二重化はせず」とある通り、費用対効果を考慮した結果です。
A: 問題文に「データベースのディスクを二重化することはコストが非常に掛かるので二重化はせず」とある通り、費用対効果を考慮した結果です。
関連キーワード: 可用性計算, 並列冗長, 直列システム, 稼働率, RAID1+0
設問2:〔性能の検討〕について、(1)、(2)に答えよ。
(1)本文中のbに入れる適切な数値を答えよ。答えは、小数第2位を四捨五入して小数第1位まで求めよ。
模範解答
b:3.2
解説
解答の論理構成
- 【問題文】には、
・「画像データやカタログデータの閲覧から注文完了までの1トランザクション当たりの平均転送量は0.6Mバイト」
・「性能目標値である1時間当たりの最大トランザクション数は2,400件」
と明記されています。 - まず 1 時間に転送される総データ量を求めます。
- バイトをビットへ変換するため 8 を掛けます。
- 「1秒当たりの最大転送量」を得るために 1 時間=3,600 秒で割ります。
- 問われている b は「1秒当たりの最大転送量」ですので、四捨五入後の値は
3.2 となります。
誤りやすいポイント
- 0.6 と 2,400 を掛けた後に「バイト→ビット」で 8 倍する操作を忘れる。
- 1 時間=3,600 秒を 60 秒と誤認し、100 倍の過小評価をする。
- “M” を 1,024,000 と見なしてしまい、結果がずれる(本設問は単なる 10 倍数とみなしてよい)。
- 小数第1位まで求める指示を見落とし、有効数字を間違える。
FAQ
Q: 3.2 の単位はどう書けば良いですか?
A: 解答欄が数値のみを要求している場合は 3.2 と書けば足ります。説明を書く際は「Mビット/秒」や「Mbps」と付記すると誤解がありません。
A: 解答欄が数値のみを要求している場合は 3.2 と書けば足ります。説明を書く際は「Mビット/秒」や「Mbps」と付記すると誤解がありません。
Q: 1 秒当たりの転送量をビットではなくバイトで答えたら減点されますか?
A: 設問が「ビット」と指定していますので、バイト換算で答えると誤答扱いになります。必ず単位指示に従ってください。
A: 設問が「ビット」と指定していますので、バイト換算で答えると誤答扱いになります。必ず単位指示に従ってください。
Q: 実効転送速度 20% 低下や利用率 50% の条件は c の計算用ですか?
A: はい。b は純粋な最大転送量の算出で、低下率と利用率は c を求める際に加味します。
A: はい。b は純粋な最大転送量の算出で、低下率と利用率は c を求める際に加味します。
関連キーワード: 帯域幅計算, バイトとビット変換, トランザクション処理量, 冗長構成
設問2:〔性能の検討〕について、(1)、(2)に答えよ。
(2)本文中のcに入れる適切な字句を解答群の中から選び、記号で答えよ。
解答群
ア:10M
イ:100M
ウ:1G
エ:10G
模範解答
c:ア
解説
解答の論理構成
-
必要な転送量を算出
引用①「1トランザクション当たりの平均転送量は0.6Mバイト」
引用②「1時間当たりの最大トランザクション数は2,400件」
• 1時間の総転送量
0.6 MB/件 × 2,400 件 = 1,440 MB
• 1秒当たりに直す
1,440 MB ÷ 3,600 秒 = 0.4 MB/s
• ビット換算
0.4 MB/s × 8 = 3.2 Mbit/s -
ネットワーク効率を加味
引用③「LAN上での実効転送速度が20%低下」
⇒ 実効は名目値の 0.8 倍
引用④「LANの最大利用率50%」
⇒ 利用可能帯域は 0.5 倍
名目速度を S とすると実際に使える帯域は 0.8S × 0.5 = 0.4S
条件式:0.4S ≥ 3.2 Mbit/s
S ≥ 8 Mbit/s -
規格値との照合
解答群
ア「10M」, イ「100M」, ウ「1G」, エ「10G」
• 8 Mbit/s を満たす最小の規格値は「10M」
よって c には ア が入る。
誤りやすいポイント
- 実効転送速度の 20% 低下を「×1.2」と逆に掛けてしまう
- 最大利用率 50% を考慮せず 3.2 Mbit/s をそのまま規格と比較
- MB と Mb(ビット・バイト)を混同し、8 倍ではなく 10 倍で換算
- 8 Mbit/s を満たす規格を 100M と誤って過大見積もり
FAQ
Q: MB と Mb の換算で 1MB = 1,024×1,024 B を使うべきですか?
A: 本設問では規格値との比較が目的なので 1MB = 1,000,000 B として差し支えありません。倍精度を使っても 8 Mbit/s 付近になり、結論は変わりません。
A: 本設問では規格値との比較が目的なので 1MB = 1,000,000 B として差し支えありません。倍精度を使っても 8 Mbit/s 付近になり、結論は変わりません。
Q: 実効転送速度 20% 低下はどのタイミングで掛け算するのですか?
A: 名目速度 S に対し 0.8S が実効、さらに利用率 50% で 0.5 を掛け、合計 0.4S が実際に使える帯域です。
A: 名目速度 S に対し 0.8S が実効、さらに利用率 50% で 0.5 を掛け、合計 0.4S が実際に使える帯域です。
Q: 50% 利用率はなぜ必要なのですか?
A: ネットワークにバッファリング余力を持たせて遅延や突発的なトラフィックを吸収するためで、非機能要件としてよく指定されます。
A: ネットワークにバッファリング余力を持たせて遅延や突発的なトラフィックを吸収するためで、非機能要件としてよく指定されます。
関連キーワード: 帯域幅計算, ネットワーク冗長化, 利用率, 非機能要件
設問3:〔拡張性の検討〕について、(1)、(2)に答えよ。
(1)aに入れる適切な字句を答えよ。ここで、表1及び本文中のaには同じ字句が入る。
模範解答
a:水平分散 又は スケールアウト
解説
解答の論理構成
-
表1のリソース拡張性には次の記述があります。
――「Webサーバ:CPU数及びメモリ容量の拡張性不要 ただし、a可能であること」
ここで CPU やメモリを増設しない前提(=縦方向の強化を行わない)と明示されています。 -
本文には、Web サーバを増強する考え方がさらに説明されています。
――「Webサーバの性能が不足した場合、aすることによってWebサーバ全体の性能を向上させることができるからである。」
追加したサーバを既存サーバと並列稼働させ、総処理能力を高める方式であると読み取れます。 -
その仕組みを支える構成は可用性の検討部分に示されています。
――「FW1、FW2はWebサーバへの負荷を分散させるロードバランサの機能を兼ねる。」
ロードバランサがリクエストを複数 Web サーバに配分するため、サーバ台数を増やしてもシステム全体として処理性能が向上します。 -
以上の状況を総合すると、a に入る語は「水平方向にサーバを増やして性能を高める」という拡張方式を示す必要があります。
情報システム分野ではこれを「水平分散」または「スケールアウト」と呼びます。
誤りやすいポイント
- 「負荷分散」とだけ答えるミス
ロードバランサの機能名をそのまま書きたくなりますが、設問はあくまで“拡張方式”を問うています。 - 「クラスタリング」「冗長化」との混同
可用性目的の冗長構成と性能向上目的の水平分散は別概念です。 - 「スケールアップ」の誤記
CPU・メモリを増設する縦方向の強化は本文で不要と明言されています。逆方向の語を選ばないよう注意が必要です。
FAQ
Q: 「水平分散」と「スケールアウト」はどちらを解答すべきですか?
A: どちらも意味は同じで、採点基準に「a:水平分散 又は スケールアウト」と示されています。いずれかを正しく記述すれば得点になります。
A: どちらも意味は同じで、採点基準に「a:水平分散 又は スケールアウト」と示されています。いずれかを正しく記述すれば得点になります。
Q: なぜ Web サーバだけ水平分散でよいのですか?
A: Web サーバ層はステートレス設計が可能であり、ロードバランサ経由でリクエストを振り分ければ台数追加だけで性能を引き上げられるためです。DB サーバのような共有資源が絡む層では同じ手法が難しい場合があります。
A: Web サーバ層はステートレス設計が可能であり、ロードバランサ経由でリクエストを振り分ければ台数追加だけで性能を引き上げられるためです。DB サーバのような共有資源が絡む層では同じ手法が難しい場合があります。
Q: 水平分散を採用する際の注意点は?
A: セッション情報をサーバ間で共有するか、クライアントへ持たせるかなど、ステート管理方式を設計段階で整理しておくことが不可欠です。
A: セッション情報をサーバ間で共有するか、クライアントへ持たせるかなど、ステート管理方式を設計段階で整理しておくことが不可欠です。
関連キーワード: 水平分散, スケールアウト, 負荷分散, 拡張性, ロードバランサ
設問3:〔拡張性の検討〕について、(1)、(2)に答えよ。
(2)新システムでは、現状のシステム上の問題を解決するために、データベースサーバ及びWebサーバ全体にリソース拡張性をもたせることにした。これによって、R社ではどのようなシステム上の問題を回避し、業務上の問題を解決することができるか。それぞれ適切な字句を答えよ。
模範解答
システム上の問題:レスポンスの低下
業務上の問題:販売機会損失の発生
解説
解答の論理構成
-
現行システムの課題を確認
【問題文】には、取引トランザクションの増加によって「レスポンスの低下」が発生し、さらに「サービスの停止やレスポンスの低下は販売機会損失の発生という業務上の問題」を招いていると明記されています。
引用:
・「取引トランザクションの増加によるレスポンスの低下などが起きている。」
・「サービスの停止やレスポンスの低下は販売機会損失の発生という業務上の問題を引き起こしている。」 -
新システムの拡張性方針
拡張性の検討では、「データベースサーバ及びWebサーバ全体にリソース拡張性をもたせる」と記載されています。これは将来の負荷増大時に、CPU・メモリ・ディスク容量やサーバ台数を柔軟に増強できるようにする方針です。結果として、現行システムで顕在化していたレスポンス劣化を抑止できます。 -
問われている内容
小問では「R社ではどのようなシステム上の問題を回避し、業務上の問題を解決できるか」を問われています。
・システム上の問題:性能劣化の直接的な症状である「レスポンスの低下」。
・業務上の問題:レスポンスが遅い・繋がらないことで購入機会を失う「販売機会損失の発生」。 -
結論
上記を踏まえ、解答は
・システム上の問題:レスポンスの低下
・業務上の問題:販売機会損失の発生
誤りやすいポイント
- 「信用低下」と混同する
信用低下はデータ消失や長時間停止に由来し、拡張性で直接解消する対象ではありません。 - 「サービス停止」だけを挙げてしまう
拡張性不足で起こる主因はレスポンス劣化であり、停止は可用性側の対策テーマです。 - 業務上の問題を「顧客満足度低下」など抽象度の異なる語で答える
【問題文】が具体的に「販売機会損失の発生」と示しているため、そのまま引用する必要があります。
FAQ
Q: システム上の問題は「スループット不足」でも良いですか?
A: 「スループット不足」は原因側の指摘で、問題として顕在化する症状が【問題文】にある「レスポンスの低下」です。設問は“問題を回避”と書かれているため、症状をそのまま答えるのが適切です。
A: 「スループット不足」は原因側の指摘で、問題として顕在化する症状が【問題文】にある「レスポンスの低下」です。設問は“問題を回避”と書かれているため、症状をそのまま答えるのが適切です。
Q: なぜ業務上の問題が「販売機会損失の発生」になるのですか?
A: レスポンスが遅いと顧客は購入を断念し、売上が失われます。【問題文】に「サービスの停止やレスポンスの低下は販売機会損失の発生という業務上の問題」と直接記載されています。
A: レスポンスが遅いと顧客は購入を断念し、売上が失われます。【問題文】に「サービスの停止やレスポンスの低下は販売機会損失の発生という業務上の問題」と直接記載されています。
Q: 拡張性を確保すれば可用性の問題も同時に解決できますか?
A: 拡張性は性能対策が主目的です。可用性(故障時の停止防止)は冗長化・クラスタリングなど別の要件として検討する必要があります。
A: 拡張性は性能対策が主目的です。可用性(故障時の停止防止)は冗長化・クラスタリングなど別の要件として検討する必要があります。
関連キーワード: レスポンス, スケーラビリティ, パフォーマンス劣化, 冗長化, 販売機会損失
設問4:
新システムの非機能要件を検討した結果、採用された対応はどれか。正しい記述を解答群の中からすべて選び、記号で答えよ。
解答群
ア:可用性及び性能で定義した指標よりも良い結果が期待できるシステム構成や各種機器は、費用が高くても採用する。
イ:災害復旧サイトへのデータ配信は、性能の低下を回避するためにリアルタイムには実施しない。
ウ:性能目標値である応答時間やスループットへの影響を回避するため、決済データへの操作の一部の処理に絞ってログを取得する。
エ:伝送データ及び蓄積データの暗号化を行うとリソース拡張性に影響があるが、個人情報を扱うので暗号化は行う。
模範解答
イ、エ
解説
解答の論理構成
- 方針の確認
- 問題文には「投資は必要最低限の範囲に抑える方針」とある。したがって、コストを度外視して高性能機器を採用する方針ではない。
- 可用性・性能に関する記述の確認
- 性能の検討において、「災害復旧サイトへのリアルタイムデータ配信は実施しないこととする」と明記されている。
- セキュリティに関する記述の確認
- セキュリティの検討では、「データ暗号化は、個人情報を扱う今回のシステムでは必須の要件」と記載されている。
- 各選択肢の検証
- ア:コストより性能を優先するとあるが、引用のとおり必要最低限の投資方針に反するため誤り。
- イ:引用文と一致し、「リアルタイムには実施しない」という方策は正しい。
- ウ:「決済データのすべての操作内容のログを取得」とあるため、一部に絞るという記述は誤り。
- エ:暗号化は必須であり、リソース影響は受け入れるとされているため正しい。
よって正答は「イ、エ」である。
誤りやすいポイント
- 「投資は必要最低限」とあるにもかかわらず、“性能が良ければ高価でも可”と読み違える。
- 「すべての操作内容のログを取得」を「必要なものだけ」と読み替えてしまう。
- 災害復旧関連の項目を可用性要件と誤認し、性能への影響判断を見落とす。
- 暗号化が必須と書かれているのに、コストや拡張性を理由に省略できると解釈してしまう。
FAQ
Q: リアルタイム配信をやめても可用性に影響はありませんか?
A: 可用性目標は「稼働率 99.9%」なので、性能低下を避けるためにリアルタイム同期を行わず、災害時は別途復旧手順で対応する方が全体最適になります。
A: 可用性目標は「稼働率 99.9%」なので、性能低下を避けるためにリアルタイム同期を行わず、災害時は別途復旧手順で対応する方が全体最適になります。
Q: 暗号化で性能が落ちた場合の対策は?
A: CPU・ディスクの負荷増を見越して「CPU数及びメモリ容量は現在の2倍まで拡張可能」といったリソース拡張性を確保しています。
A: CPU・ディスクの負荷増を見越して「CPU数及びメモリ容量は現在の2倍まで拡張可能」といったリソース拡張性を確保しています。
Q: ログ取得を全件にすると容量が心配ですが?
A: 監査要件として「決済データのすべての操作内容のログを取得」が求められるため、必要なストレージ設計とアーカイブ運用で対処します。
A: 監査要件として「決済データのすべての操作内容のログを取得」が求められるため、必要なストレージ設計とアーカイブ運用で対処します。
関連キーワード: 非機能要件, 可用性, 災害復旧, 暗号化, 監査ログ


