- 集中/分散処理、クライアントサーバ、Web システムという構成方式の使い分けと機能配分
- デュアル・デュプレックス・クラスタなどの冗長構成と、フェールセーフ/フェールソフトなどの信頼性設計
- MTBF・MTTR から稼働率を求め、直列・並列・直並列の稼働率を計算する型
- 使用率・実効スループット・パイプライン・待ち行列といった性能計算の型とキャパシティプランニング
- 仮想化 3 方式とクラウドのサービスモデル、ライブマイグレーションと IaC
- ストレージ(DAS/NAS/SAN・オブジェクト)と RAID、バックアップ方式
科目 A では直近 10 年 19 回で 76 問、1 回平均 4.0 問が出ています(直近 5 回は平均 3.4 問)。うち稼働率の計算が 10 問、MTBF・MTTR が 8 問で、この 2 つだけで中分類全体の約 4 分の 1 を占めます。計算 2 つを確実に取れば 3 問確保が見えてきます。科目 B は問 1(情報セキュリティ)が必須で、問 2〜11 の 10 問から 4 問を選ぶ形式です。システムアーキテクチャはその選択枠の 1 つで、直近 19 回はすべて問 4 に置かれています。本章はその土台になります。
システムの処理形態と構成方式
システム構成の話は「処理をどこに置くか(機能配分)」に尽きます。1 か所に集めるのが集中処理システム、複数のコンピュータに分けるのが分散処理システムです。どちらが優れているという話ではなく、コスト性能比・管理責任・障害の波及範囲のどれを優先するかで選びます。
| 観点 | 集中処理システム | 分散処理システム |
|---|---|---|
| 処理の置き場所 | 1 台のホストに集約 | 複数のコンピュータへ分割 |
| 管理責任 | 1 か所に集約され明確。保守要員も集中化できる | 拠点ごとに分散し、情報資源を組織の実態に合わせやすい |
| 障害の影響 | ホストが止まると全面停止(単一障害点) | 1 台が止まっても他が動く。設計しだいで縮退運転できる |
| コスト性能比 | 大型機は割高になりやすい | 安価なサーバを並べるため有利。ただし TCO は運用費を含めて評価する |
| 代表的な分け方 | ― | 分散アーキテクチャ=水平機能分散(同格の機能を分ける)/水平負荷分散(同じ処理を複数台で分担)/垂直機能分散(階層で役割を分ける) |
分散処理では、利用者や応用プログラムに「どこで処理されているか」を意識させないことが設計目標になります。資源の物理的な位置を知らなくても同じ手続きで使える性質をアクセス透過性と呼び、位置・複製・障害などの透過性とあわせて分散システムの品質を測ります。機能配分を決めるときは、応答速度(手元で処理するほど速い)、管理責任(サーバに集めるほど統制しやすい)、通信量(データの近くで処理するほど減る)の 3 つを天秤にかけます。
利用形態では、一定量をためて一括処理するバッチ処理、事象の発生に即応するリアルタイム処理、人の応答を待ちながら進める対話型処理を区別します。夜間の締め処理はバッチ、在庫引当や決済はリアルタイム、というように業務要件(許容できる遅れ)で決まります。
クライアントサーバシステムと Web システム
クライアントサーバシステムは、機能をプレゼンテーション層(画面表示・入力)・ファンクション層(業務処理)・データベースアクセス層(データ操作)に分けて配置します。クライアントに画面と業務処理を置き、サーバに DB だけを置くのが 2 層、業務処理を独立したサーバへ出すのが 3 層です。3 層にすると業務ロジックの改修がサーバ側だけで済み、クライアントの配布が要らなくなります。
| 用語 | 内容 | 試験で問われる点 |
|---|---|---|
| 2 層クライアントサーバ | クライアントに画面 + 業務処理、サーバに DB | ローカル処理の応答速度は速いが、クライアント側の改修配布が重い |
| 3 層クライアントサーバ | プレゼンテーション/ファンクション/データベースアクセスを分離 | 柔軟性が高く、サーバへの利用集中を段階的に分散できる |
| シンクライアントシステム | クライアントに資源を持たせず、処理と保存をサーバ側で行う | 情報漏えい対策と運用管理コストの削減。VDI(Virtual Desktop Infrastructure)が代表実装 |
| RPC | Remote Procedure Call。他ノードの手続きをローカル呼出しのように実行 | 分散処理の透過性を支える基盤技術 |
| ストアドプロシージャ | 一連の SQL を DBMS 側に登録し、1 回の呼出しで実行 | ネットワーク上を往復する SQL 文と結果の量を減らせる |
| Web システム | Web ブラウザ ― Web サーバ ― AP サーバ ― DB サーバ | ブラウザは DB に直接触れない。層をまたぐ通信は HTTP と SQL |
| ロードバランサ | 同じ役割のサーバへ要求を振り分ける装置 | 水平負荷分散の要。セッション情報の共有可否が論点になる |
| CDN | Content Delivery Network。配信拠点に静的コンテンツを複製 | オリジンサーバの負荷と応答時間を同時に下げる |
Web システムは層ごとに使うプロトコルが違います。ブラウザと Web サーバの間は HTTP/HTTPS、Web サーバと AP サーバの間はアプリケーション固有の呼出し、AP サーバと DB サーバの間は SQL です。HTTP は 1 回のやり取りが独立したステートレスなプロトコルなので、ログイン状態のような「続き」はセッション ID で結び付けます。ロードバランサで複数台へ振り分けるとき、このセッション情報をサーバ間で共有していないと、振り分け先が変わった瞬間にログイン状態が失われます。同じ利用者を同じサーバへ送り続けるか、セッションを外部の共有領域に置くかを設計で決めておく必要があります。
ハイパフォーマンスコンピューティングとグリッド
科学技術計算のように高精度な高速演算が要る分野では HPC(High Performance Computing)が使われます。実現手段は 2 つで、1 台のスーパーコンピュータに大規模並列のプロセッサやアレイプロセッサ(同じ演算を多数のデータへ一斉に適用する構成)を積む方法と、LAN で結んだ多数のコンピュータの CPU 資源を束ねて 1 台の高性能機のように見せるグリッドコンピューティングです。後者は遊休資源を使えるのが利点で、専用機を買わずに演算能力を得たいときに検討します。
冗長構成とクラスタ ― 止めないための並べ方
冗長構成は「同じ働きをする装置を 2 つ以上用意して、片方が壊れても続ける」ための構成です。試験では名前と挙動の対応がそのまま問われるので、2 台を同時に動かすのか(デュアル)、片方は待たせるのか(デュプレックス)という軸で整理します。
| 構成 | 動き | 特徴 |
|---|---|---|
| デュアルシステム | 2 系統が同じ処理を並列実行し、結果を照合(クロスチェック)する | 誤りも検出できる。装置費用は 2 倍。両系が動くのでアクティブ-アクティブに分類されるが、負荷は分け合わない |
| デュプレックスシステム | 主系(現用系)が処理し、従系(待機系)は待機する | アクティブ-スタンバイ構成。待機のさせ方でホット/ウォーム/コールドに分かれる |
| ホットスタンバイ | 従系も電源を入れ、同じプログラムを起動して待つ | 切替が最も速い。生存確認(ハートビート)の途絶が切替の契機 |
| ウォームスタンバイ | 従系は起動しているが、業務プログラムは立ち上げていない | 切替に数分。コストと切替時間の折衷 |
| コールドスタンバイ | 従系は電源を落としてある(他業務に使うこともある) | 最も安価だが切替に最も時間がかかる |
| タンデム結合 | 複数のプロセッサが処理を分担し、直列に引き渡す | 前段の結果を後段が受け取る流れ作業型 |
| クラスタ | 複数のサーバを 1 つのシステムとして扱う | HA クラスタ(可用性)と負荷分散クラスタ(性能)がある |
| ロードシェアリングシステム | 複数の系で負荷を分け合う | 負荷分散クラスタと同じ狙い。1 系の停止は性能低下で済む |
マルチプロセッサシステムでは、主記憶を共有するかどうかで密結合(共有する)と疎結合(各プロセッサが自分の主記憶と OS を持つ)に分かれます。データベースを複数ノードで扱うときの同じ対比がシェアードエブリシング(ディスクも主記憶も共有)とシェアードナッシング(何も共有せずデータを分割保持)で、後者は競合制御が軽く台数を増やしやすい代わりに、データ配置の設計が難しくなります。役割を固定せず対等なノードが相互に資源を提供し合う形はピアツーピアです。
クラスタは目的で 2 種類に分かれます。HA クラスタ(高可用性クラスタ)は待機系を用意して可用性を上げる構成で、障害時に待機系へ切り替えることをフェールオーバ、復旧した元の系へ戻すことをフェールバックと呼びます。負荷分散クラスタは同じ役割のノードを並べて処理能力を上げる構成で、1 ノードが落ちても残りのノードで処理を続けられるため、結果としてフェールソフトになります。前者はアクティブ-スタンバイ、後者はアクティブ-アクティブの構成が基本です。
災害対策では拠点そのものを冗長化します。切替先に用意する予備拠点をバックアップサイトと呼び、待機のさせ方で 3 種類に分かれます。設備・機器・データを常時同期して即座に切り替えられるのがホットサイト、機器は用意してあるがデータ復元と起動が要るのがウォームサイト、場所と回線だけ確保しておくのがコールドサイトです。復旧目標時間(RTO)が短いほど上のものが要り、費用も上がります。
信頼性設計の考え方と RASIS
信頼性設計には出発点が 2 つあります。フォールトアボイダンスは「そもそも故障させない」方向で、高品質な部品を選び、予防保守をし、テストを厚くします。フォールトトレランスは「故障は起きる前提で、起きても機能を保つ」方向で、多重化や縮退運転で対応します。試験の定番問題はこの 2 語と、トレランス側の具体策 2 語(フェールセーフ・フェールソフト)、それに人の誤操作を無害化するフールプルーフを加えた 5 語の説明を入れ替えたものです。フールプルーフは装置の故障ではなくヒューマンエラーへの対策なので、アボイダンス側(そもそも起こさせない側)に置いて整理します。
| 用語 | 意味 | 例 |
|---|---|---|
| フォールト | 障害の原因となる欠陥・不具合そのもの。これが表面化して機能を失った状態が故障 | 設計の誤り、部品の劣化、設定ミス |
| フォールトアボイダンス | 構成要素の品質を高め、故障そのものを起こさせない | 高信頼部品の採用、予防保守、十分なテスト |
| フォールトトレランス | 故障が起きても機能を維持する | 重要部品の多重化、フォールトマスキング |
| クラスタリング | 複数のサーバを束ねて 1 つのシステムとして扱い、障害時に処理を引き継がせる | フォールトトレランスの代表的な実装(前節の HA クラスタ) |
| フェールセーフ | 故障時に安全な側へ倒す | 信号機が故障したら赤を点灯させる |
| フェールソフト | 故障部分を切り離し、性能を落としてでも動かす(縮退運転) | 4 台構成のうち 1 台を切り離して 3 台で運転 |
| フールプルーフ | 人が誤った操作をしても異常が起きないようにする | ふたを閉めないと回らない、削除前に確認を出す |
| フォールトマスキング | 故障の影響を内部で吸収し、外部に見せない | 多数決による誤り訂正、ECC メモリ |
| インタロック | 条件が整わない限り次の動作へ進ませない | 安全カバーが開いていると機械が起動しない |
| 予備切替/並列運転 | 予備機へ切り替える/複数系を同時に走らせる冗長化の実装方式 | デュプレックス/デュアル |
| 無停止コンピュータ | 主要部品をすべて多重化し、保守も無停止で行える機器 | フォールトトレラントシステムの極致 |
| UPS | Uninterruptible Power Supply。停電時に一定時間給電する | 安全に停止させる時間を稼ぐ(長時間運転用ではない) |
| 信頼性ブロック図 | 構成要素を直列・並列に並べて系全体の信頼性を表す図 | 稼働率計算の前提になる(次節) |
可用性を高める手段は、壊れにくくする(MTBF を伸ばす)、早く直す(MTTR を縮める)、冗長化して系として止めない、の 3 通りしかありません。施策の当否で迷ったら、それがこの 3 つのどれに効くのかを言い直すと整理できます。監視の強化は MTTR 側、部品の定期交換は MTBF 側、待機系の追加は冗長化です。
システム全体の評価軸としては RASIS を押さえます。頭文字は Reliability(信頼性、壊れにくさ)・Availability(可用性、使える割合)・Serviceability(保守性、直しやすさ)・Integrity(完全性、データが壊れないこと)・Security(安全性、不正から守られていること)です。MTBF は R、稼働率は A、MTTR は S に対応すると考えると、次節の指標が RASIS のどこを測っているかが見えます。
稼働率の計算 ― MTBF・MTTR と直列・並列
この節が中分類 4 の最重要ポイントです。直近 10 年で稼働率の計算が 10 問、MTBF・MTTR の関係が 8 問出ており、合わせて 18 問はこの中分類の 76 問の約 4 分の 1 に当たります。まず 2 つの平均値から確認します。
- MTBF(Mean Time Between Failures、平均故障間動作時間)= 故障と故障の間に「動いていた」時間の平均。大きいほど壊れにくい
- MTTR(Mean Time To Repair、平均修理時間)= 故障してから復旧するまでの時間の平均。小さいほど直しやすい
計算の型: 稼働率(可用性)
稼働率 = MTBF ÷(MTBF + MTTR) / 不稼働率 = MTTR ÷(MTBF + MTTR)
- 「動いていた時間の平均」を MTBF、「止まっていた時間の平均」を MTTR として取り出す
- 観測期間と故障回数しか与えられないときは、MTBF = 総稼働時間 ÷ 故障回数、MTTR = 総修理時間 ÷ 故障回数で作る
- 稼働率 = 900 ÷(900 + 100)= 0.9
この式から 2 つの性質が出ます。MTBF と MTTR を同じ倍率で変えても稼働率は変わりません(1.5 倍なら 1,350 ÷ 1,500 = 0.9 のまま)。また稼働率が 0.5 になるのは MTBF = MTTR のときだけです。
観測データしか与えられないこともあります。「2,000 時間の運用で 4 回故障し、修理に合計 40 時間かかった」なら、動作していたのは 2,000 - 40 = 1,960 時間なので MTBF = 1,960 ÷ 4 = 490 時間、MTTR = 40 ÷ 4 = 10 時間、稼働率 = 490 ÷(490 + 10)= 0.98 です。MTBF は「動作していた時間」の平均なので、運用時間からまず修理時間を引く点に注意します。
MTTR を短くする施策と MTBF を長くする施策は別物です。障害箇所の特定を速くするエラーログの取得機能や、保守部品の現地常備、遠隔保守は MTTR 側の対策です。一方、高品質部品の採用・予防保守・冗長化は MTBF 側(あるいは系全体の稼働率)の対策で、MTTR は縮みません。装置の故障率は時間とともに変化し、初期故障期は下がり、偶発故障期はほぼ一定、摩耗故障期は上がるという U 字(バスタブ曲線)を描きます。
直列システムと並列システム
複数の装置からなる系の稼働率は、信頼性ブロック図が直列か並列かで式が変わります。直列は「全部動いていないと動かない」、並列は「どれか 1 つ動いていれば動く」です。
計算の型: 直列・並列・直並列の稼働率
直列 = a × b / 並列 = 1 -(1 - a)×(1 - b)
- 信頼性ブロック図を描き、直列の塊と並列の塊に分ける
- 内側(小さい塊)から先に合成する。並列の塊はまず 1 つの装置に潰す
- 例: 稼働率 0.9 の装置 4 台。「2 台並列を 2 組つくり直列につなぐ」構成は、並列 1 組が 1 -(0.1)2 = 0.99 なので、全体は 0.99 × 0.99 = 0.9801
- 同じ 4 台でも「2 台直列を 2 組つくり並列につなぐ」構成は、直列 1 組が 0.81 なので、全体は 1 -(1 - 0.81)2 = 0.9639
- 答え: 台数が同じなら並列を内側に置いた(先に並列でまとめた)構成のほうが高い
グラフで問われることもあります。横軸に 1 台あたりの稼働率、縦軸に系全体の稼働率を取ると、直列は原点側にたわむ下に凸の曲線、並列は左上に張り出す上に凸の曲線になり、両者は 1 台あたりの稼働率が 0 と 1 のときだけ一致します。選択肢は交点の位置と曲がる向きで作り分けられるので、「並列は必ず 1 台の稼働率より高くなる」「直列は必ず 1 台の稼働率より低くなる」の 2 点で消去できます。
冗長構成の稼働率を実務的に見積もるときは、切替に要する時間も停止時間として数えます。ホットスタンバイでも切替が完了するまでサービスは止まっているので、フェールオーバ時間が長いほど稼働率は下がります。SLA(Service Level Agreement、サービス品質の合意)を稼働率で示す場合、月間の総時間に(1 - 稼働率)を掛けたものが許容停止時間になります(30 日 = 43,200 分なら、稼働率 99.9% で 43.2 分)。
性能指標と性能計算
性能は「1 件がどれだけ速く終わるか」と「単位時間に何件さばけるか」の 2 面で測ります。前者が応答時間系、後者がスループットです。
| 指標・手法 | 測るもの | 注意点 |
|---|---|---|
| レスポンスタイム(応答時間) | 入力の終了から最初の応答が返り始めるまで | オンライン処理の体感を表す |
| ターンアラウンドタイム | ジョブの投入から結果がすべて出終わるまで | バッチ処理向け。出力時間を含むぶんレスポンスタイムより長い |
| スループット | 単位時間に処理できる仕事量(件/秒、トランザクション/秒) | 系全体では最も能力の低い箇所で頭打ちになる |
| ベンチマーク | 標準的なプログラムを実行して性能を比較する | SPEC(Standard Performance Evaluation Corporation。SPECint は整数演算、SPECfp は浮動小数点演算)、TPC(Transaction Processing Performance Council。トランザクション処理)、ギブソンミックス(命令の出現頻度で重み付け) |
| システムモニタ/モニタリング | 稼働中の CPU 使用率・待ち行列長などを継続的に採取する | 実測値がキャパシティプランニングの入力になる |
2 つの時間指標は測る区間が違います。利用者が入力を終えてから最初の応答が返り始めるまでがレスポンスタイム、ジョブを投入してからすべての結果を受け取り終えるまでがターンアラウンドタイムです。同じ処理でも、印刷や帳票出力の時間を含むターンアラウンドタイムのほうが必ず長くなります。オンライン処理の善し悪しを語るときはレスポンスタイム、バッチの締め処理が朝までに終わるかを語るときはターンアラウンドタイムを使います。
計算の型: 資源の使用率
使用率 = Σ(処理件数 × 1 件あたりの処理時間)÷ 観測時間
- 単位をそろえる(ミリ秒か秒か、1 分あたりか 1 秒あたりか)
- 例: 1 件の処理に CPU を 30 ミリ秒使うトランザクションが 1 分間に 1,200 件到着する
- CPU の使用時間 = 1,200 × 30 ミリ秒 = 36,000 ミリ秒 = 36 秒
- 使用率 = 36 秒 ÷ 60 秒 = 0.6(60%)
種類の違う処理が混在するときは、種類ごとに「件数 × 時間」を求めてから合計します。ピーク時を問われているのに平均件数で計算する誤りが典型です。
ボトルネックとパイプライン処理
複数の資源を順に通る処理では、系全体のスループットは最も能力の低い箇所(ボトルネック)で決まります。合計でも平均でもありません。
いっぽう、読取り・演算・書込みのように別々の装置が担当する工程は、重ねて動かせます(パイプライン処理)。このとき 1 件の所要時間は工程時間の合計のままですが、単位時間あたりの処理件数は最も長い工程だけで決まります。
計算の型: 待ち行列(M/M/1)の応答時間
利用率 ρ = 到着率 λ × 平均サービス時間 Ts / 平均待ち時間 Tw = ρ ÷(1 - ρ)× Ts / 平均応答時間 Tr = Ts ÷(1 - ρ)
- 1 件のサービス時間 Ts と 1 秒あたりの到着件数 λ を取り出す
- 例: Ts = 0.2 秒、λ = 3 件/秒 なので ρ = 3 × 0.2 = 0.6
- 待ち時間 Tw = 0.6 ÷ 0.4 × 0.2 = 0.3 秒
- 応答時間 Tr = 0.2 + 0.3 = 0.5 秒(= 0.2 ÷ 0.4)
ρ が 1 に近づくと待ち時間は急激に伸びます。使用率 80% を超えたあたりから応答時間が跳ね上がるのは、この式の分母が小さくなるためです。
計算の型: アムダールの法則(並列化の効果)
高速化率 = 1 ÷ {(1 - p)+ p ÷ n}(p: 並列化できる部分の割合、n: プロセッサ台数)
- 並列化できない部分の割合(1 - p)を先に押さえる。ここが上限を決める
- 例: p = 0.8、n = 4 なら 1 ÷(0.2 + 0.8 ÷ 4)= 1 ÷ 0.4 = 2.5 倍
- n を無限に増やしても高速化率は 1 ÷(1 - p)= 5 倍を超えません
キャパシティプランニングとシステムの経済性
キャパシティプランニングは、業務量の予測から必要な性能諸元(CPU・メモリ・ディスク・回線)を見積もり、稼働後も実測を続けて「将来にわたって応答時間の要求を満たし続ける」ための活動です。目的を「障害からの復旧」や「コスト削減」と取り違えた肢が誤答になります。手順は次の 4 段階で押さえます。
- 性能要件を数値で決める(応答時間 2 秒以内、ピーク 200 件/秒 など)
- 業務量を予測し、サイジングで必要な資源量を算出する
- 資源を用意する(プロビジョニング)。クラウドなら自動化できる
- モニタリングで使用率と応答時間を継続測定し、閾値を超える前に増強する(容量・能力管理)
増強の方向は 2 つあります。1 台の性能を上げるのがスケールアップ、台数を増やすのがスケールアウトです。逆方向はそれぞれスケールダウン、スケールインと呼び、需要が減った時間帯に台数を減らしてコストを最適化します。
計算の型: 必要なサーバ台数のサイジング
必要台数 = 切上げ(ピーク時の必要処理能力 ÷ サーバ 1 台の処理能力)
- ピーク時の業務量を 1 秒あたりに直す(1 時間に 540,000 件なら 150 件/秒)
- 1 台の処理能力で割る(1 台 40 件/秒なら 150 ÷ 40 = 3.75)
- 端数は必ず切り上げるので 4 台
- 1 台故障しても能力を保つ要件があれば、さらに 1 台足して 5 台にする(N + 1 構成)
「平均ではなくピークで見積もる」「切り上げる」「冗長分を足す」の 3 点を落とすと、科目 B の台数計算でそのまま失点します。
資源を増やすときは、システムパラメータ(同時接続数、バッファ数、多重度など)の見直しも合わせて行います。ハードウェアを足しても上限値が古いままだと性能が出ないためです。
経済性の評価 ― TCO
導入判断は購入価格だけでは決められません。初期コスト(イニシャルコスト: ハードウェア・ソフトウェア購入費、開発費、初期設定費)と運用コスト(ランニングコスト: 保守料、電気代、回線費、運用要員の人件費、教育費)を合計したTCO(Total Cost of Ownership、総所有費用)で比較します。TCO には、機器費のように対象が明確な直接コストだけでなく、利用者が自分で調べて解決する時間などの間接コストも含めて考えます。集中処理から分散処理へ移すと初期コストは下がっても、拠点ごとの運用要員が増えて TCO が上がることがある、というのが典型的な論点です。
仮想化とクラウド
1 台の物理サーバの上に複数の実行環境を作る技術が仮想化です。台数を減らして機器と電力を節約するサーバコンソリデーション(サーバ統合)が主な動機で、実装方式は 3 つあります。直近 10 年ではコンテナ型が 3 回、ライブマイグレーションが 2 回、IaC が 2 回出ており、この分野の出題は概念から運用寄りへ移っています。
| 方式・用語 | 仕組み | 特徴 |
|---|---|---|
| ホスト型 | ホスト OS 上のアプリとして仮想化ソフトを動かし、その上でゲスト OS を動かす | 導入が容易だがホスト OS を経由するぶん遅い |
| ハイパバイザ型 | ハードウェア直上のハイパバイザがゲスト OS を直接動かす | オーバヘッドが小さく、サーバ仮想化の主流 |
| コンテナ型 | ホスト OS のカーネルを共有し、アプリとライブラリだけをまとめて隔離実行する | ゲスト OS を持たないので軽量・高速。代表的な OSS は Docker |
| VM(仮想マシン) | 仮想化されたハードウェアとして見える実行環境 | ゲスト OS ごとに 1 つの VM |
| VDI | デスクトップ環境をサーバ上の VM に集約し、手元は画面転送だけ | シンクライアントの実装方式。端末にデータを残さない |
| ライブマイグレーション | 稼働中の VM をメモリ内容ごと別の物理サーバへ移す | サービスを止めずに移せる。保守や負荷平準化に使う |
| IaC | Infrastructure as Code。サーバやネットワークの構成をコードで記述し、自動で適用する | 同じ構成を何度でも再現できる。手順書や CI/CD 自体とは別物 |
クラウドコンピューティング
クラウドは「どこまでを事業者が持つか」で 4 段階に整理します。境目は利用者が管理する範囲で、ここが責任分界点になります。
| モデル | 事業者が用意する範囲 | 利用者が管理する範囲 |
|---|---|---|
| オンプレミス | なし | ハードウェアからアプリ・データまですべて |
| IaaS | ハードウェア・仮想化基盤・ネットワーク | ゲスト OS 以上(OS のパッチ適用・セキュリティ設定、ミドルウェア、アプリ、データ) |
| PaaS | OS・ミドルウェア・実行環境まで | アプリケーションとデータ |
| SaaS | アプリケーションまで | データと利用者設定のみ |
| FaaS/サーバレス | 実行基盤を含め、呼び出されたときだけ関数を動かす | 関数のコードのみ。実行時間の上限など制約がある |
オンプレミスとクラウドの違いは、機能そのものよりも費用の出方と調達の速さに表れます。オンプレミスはピークに合わせた設備を先に購入するため初期コストが大きく、遊休が出ます。クラウドは使った分を払う形なので初期コストが小さく、運用コストが業務量に連動します。逆に、ほぼ一定の負荷を長期間動かし続ける用途ではオンプレミスのほうが TCO で有利になることもあります。「クラウドは常に安い」ではなく、負荷の変動幅と利用期間で判断します。
配置の形では、事業者の共用基盤を使うパブリッククラウド、自社専用に構築するプライベートクラウド、両者や社内システムを組み合わせるハイブリッドクラウド、複数事業者のサービスを併用するマルチクラウドがあります。マルチクラウドは特定事業者への依存(ロックイン)を避け、障害の影響範囲を分ける狙いで採られます。
処理をどこで行うかという観点では、端末に近い場所で先に処理するエッジコンピューティング、端末とクラウドの中間層に処理を置くフォグコンピューティングがあります。カメラ映像をその場で圧縮・検知してからクラウドへ送れば、回線帯域とクラウド側の処理量を同時に減らせます。IoT や動画配信の設計問題では、この「どこで削るか」が定番の論点です。
ストレージ・RAID・バックアップ
ストレージはまず「どうつなぐか」で分類します。サーバに直結するのが DAS(Direct Attached Storage)、LAN 上でファイル共有として見せるのが NAS(Network Attached Storage)、ストレージ専用のネットワークを別に敷いてブロック単位で見せるのが SAN(Storage Area Network)です。SAN は光ファイバのファイバチャネルを使う FC-SAN と、既存の IP ネットワーク上で iSCSI などを使う IP-SAN に分かれます。
| 用語 | 内容 | 向く用途 |
|---|---|---|
| DAS | サーバに直結。そのサーバからしか使えない | 小規模、単独サーバ |
| NAS | LAN 経由でファイル単位に共有する専用機 | 部門のファイル共有 |
| SAN | 専用ネットワークでブロック単位に接続。複数サーバから共有できる | DB や仮想化基盤の共有ディスク |
| ブロックストレージ | 固定長ブロックの集合として提供。OS がファイルシステムを載せる | OS 領域、DB |
| オブジェクトストレージ | データとメタデータをひとまとまりの「オブジェクト」とし、固有の識別子で読み書きする | 画像・ログなど非構造データの大量保管。容量の拡張性が高い |
| ストレージ仮想化 | 複数の物理ストレージを 1 つの論理プールに束ねて割り当てる | 機器をまたいだ容量の融通 |
| シンプロビジョニング | 大きな容量を割り当てたように見せ、実際に書かれたぶんだけ物理領域を消費させる | 初期投資の抑制。実容量の枯渇監視が要る |
選び方の目安は、複数のサーバがファイル単位で共有したいなら NAS、データベースや仮想化基盤のように OS がブロックデバイスとして扱いたいなら SAN です。SAN は業務 LAN と経路を分けられるので、バックアップの大量転送が業務通信を圧迫しません。ただし FC-SAN は専用の機器と配線が要るため、既存の IP ネットワークを流用できる IP-SAN と費用を比較して決めます。
RAID
RAID(Redundant Arrays of Inexpensive Disks)は、複数のディスクをまとめて 1 台に見せ、速度か信頼性(あるいは両方)を上げる技術です。データを分割して並列に書くストライピング、同じ内容を 2 台に書くミラーリング、誤り検出用のパリティという 3 つの部品の組合せで理解します。ストライピングで 1 台に書く単位をチャンクサイズと呼びます。
| レベル | 仕組み | 最小台数 | 実効容量(1 台 c、n 台) | 耐えられる故障 |
|---|---|---|---|---|
| RAID 0 | ストライピングのみ | 2 | n × c | なし(1 台失うと全滅) |
| RAID 1 | ミラーリング | 2 | c(2 台 1 組が基本。ミラー対を並べる実装なら n ÷ 2 × c) | ミラー 1 組につき 1 台 |
| RAID 2 | ビット単位ストライピング + ハミング符号 | ― | 符号用ディスクを除いた分 | 1 台(台数はデータ幅と符号長で決まる。実用例はほぼない) |
| RAID 3 | バイト単位ストライピング + 専用パリティディスク | 3 | (n - 1) × c | 1 台 |
| RAID 4 | ブロック単位ストライピング + 専用パリティディスク | 3 | (n - 1) × c | 1 台(パリティディスクに書込みが集中) |
| RAID 5 | ブロック単位ストライピング + パリティを分散 | 3 | (n - 1) × c | 1 台 |
| RAID 6 | 2 種類のパリティを分散 | 4 | (n - 2) × c | 2 台 |
| RAID 10(1 + 0) | ミラー対をストライピング | 4 | n ÷ 2 × c | 各ミラー対で 1 台(同じ対の 2 台が壊れると復元不可) |
計算の型: RAID の実効容量
RAID 5 の実効容量 =(n - 1)× 1 台の容量 / RAID 6 =(n - 2)× 1 台の容量 / RAID 10 = n ÷ 2 × 1 台の容量(RAID 1 は 2 台 1 組なら 1 台ぶん)
- 台数 n と 1 台の容量を確認する
- 例: 2 T バイトのディスク 6 台を RAID 5 で構成する
- 実効容量 =(6 - 1)× 2 = 10 T バイト。パリティ 1 台ぶんが冗長分として消える
- 同じ 6 台を RAID 6 にすると(6 - 2)× 2 = 8 T バイト、RAID 10 なら 6 ÷ 2 × 2 = 6 T バイト
バックアップ方式
バックアップは「取る時間」と「戻す手間」がトレードオフです。3 方式の違いはどこからの変更分を取るかだけで決まります。
| 方式 | 取得する範囲 | 取得時間 | 復旧の手順 |
|---|---|---|---|
| フルバックアップ | 全データ | 最も長い | 最新のフルを 1 本戻すだけ |
| 差分バックアップ | 直前のフル以降に変更されたデータ | フルからの日数とともに伸びる | フル + 最新の差分の 2 本 |
| 増分バックアップ | 直前のバックアップ(種類を問わない)以降に変更されたデータ | 最も短い | フル + その後のすべての増分を順に適用 |
日曜にフル、月曜から土曜まで毎日取る運用なら、木曜に障害が起きたときの復旧は、差分方式なら「日曜のフル + 水曜の差分」の 2 本、増分方式なら「日曜のフル + 月・火・水の増分」の 4 本になります。夜間のバックアップ時間を短くしたいなら増分、復旧を速く確実にしたいなら差分、というのが判断軸です。
計算の型: バックアップの所要時間
所要時間 = 対象データ量 ÷ 書込み速度 / 差分の対象量 = 1 日の変更量 × フルからの経過日数
- 単位をそろえる(G バイトと M バイト/秒が混在するなら、対象量を M バイトに直す)
- 例: 対象 400 G バイト、1 日の変更量 20 G バイト(一定)、書込み速度 100 M バイト/秒
- フルバックアップ = 400,000 ÷ 100 = 4,000 秒(約 67 分)
- 増分は前日からの 20 G バイトだけなので、毎日 20,000 ÷ 100 = 200 秒
- 差分は日曜からの日数に比例し、水曜なら 3 日分の 60 G バイトで 60,000 ÷ 100 = 600 秒
夜間の作業時間枠に収まるかは、この形で確認します。復旧側の所要時間を問われたら、戻す本数(差分ならフル + 差分の 2 本、増分ならフル + 増分すべて)ぶんを合計します。
関連する運用として、いつの時点に戻せるかを決める世代管理(何世代分を保存するか)、ある瞬間の状態を短時間で記録するスナップショット、別のストレージや遠隔地へ継続的に複製するレプリケーションがあります。スナップショットとレプリケーションは復旧目標時点(RPO)を短くしますが、論理的な誤削除は複製先にも伝わるため、世代を持つバックアップの代わりにはなりません。
科目 B システムアーキテクチャへの橋渡し
科目 B の問 4 は、構成図と条件表を読んで四則演算と短い記述で設計判断を答える形式です。直近 19 回のうち 14 回が計算を含み、1 問あたりの小設問は平均 6.5 個。解答欄の字数は 15〜40 字が中心で、50 字以上は出ていません。題材は「中堅企業の情報システム部門が新サービスや移行を検討する」場面が定番で、直近 11 回はクラウド移行・利用形態の選定と、IoT・エッジ・動画の 2 ジャンルで 8 割強を占めます。
本章の知識がそのまま設問になる論点は次のとおりです。解き方の手順は第 24 章で扱います。
| 科目 B での問われ方(10 年での問数) | 本章のどこを使うか | 失点しやすい点 |
|---|---|---|
| データ量・帯域・所要時間の計算(7 問で最多) | 使用率とスループットの型 | 単位換算(ビットとバイト、秒と月)と、足すべき系統の取りこぼし |
| ボトルネックの特定と性能改善(7 問) | 実効スループットとパイプライン | 「増強」以外の手段(配置変更・キャッシュ・不要データの削減)が出てこない |
| スケールアウト/アップと台数試算(6 問) | キャパシティプランニングとサイジング | 切り上げ忘れ、冗長分の加算漏れ |
| 稼働率と SLA の計算(4 問) | 直列・並列の稼働率、許容停止時間 | SLA の水準が要求を満たすかの突き合わせを飛ばす |
| 冗長化・単一障害点(4 問) | 冗長構成とクラスタ | 冗長化されていない要素を構成図から見つけられない |
| クラウド形態と責任分界(3 問) | IaaS/PaaS/SaaS/FaaS | SaaS を PaaS・IaaS と取り違える |
ひっかけポイント
理解度チェック(科目 A 形式)
Q1. 稼働率が 0.9 の装置 4 台を使い、2 台ずつを並列にした組を 2 組つくって、その 2 組を直列に接続した。システム全体の稼働率はおよそいくらか。
- 0.6561
- 0.9639
- 0.9801
- 0.9999
正解: ウ 並列 1 組の稼働率は 1 -(1 - 0.9)2 = 0.99 で、それを直列につなぐので 0.99 × 0.99 = 0.9801 です。ア は 4 台すべてを直列にした 0.94、イ は 2 台直列の組を 2 つ並列にした構成の値、エ は 4 台すべてを並列にした値です。
Q2. ある装置の MTBF と MTTR がともに現在の 1.5 倍になったとき、この装置の稼働率はどうなるか。
- 1.5 倍になる
- 1.5 の 2 乗分の 1 になる
- 1.5 分の 1 になる
- 変わらない
正解: エ 稼働率 = MTBF ÷(MTBF + MTTR)の分子と分母がともに 1.5 倍になるため約分され、値は変わりません。ア は MTBF だけが伸びると考えた誤り、ウ は MTTR だけが伸びると考えた誤りです。イ は式から導けない値です。
Q3. あるサーバに、1 件あたり CPU 時間 20 ミリ秒を要する処理 A が毎秒 10 件、40 ミリ秒を要する処理 B が毎秒 5 件到着する。このときの CPU 使用率は何 % か。
- 20
- 40
- 45
- 60
正解: イ 1 秒あたりの CPU 使用時間は 10 × 20 + 5 × 40 = 400 ミリ秒なので、400 ÷ 1,000 = 40% です。ア は処理 A だけを数えた値、ウ は合計 15 件に平均 30 ミリ秒を掛けた誤り、エ は 20 + 40 = 60 をそのまま率とみなした誤りです。
Q4. 部品の選定と設計の作り込みによって、そもそも故障が発生しないようにする信頼性設計の考え方はどれか。
- フォールトアボイダンス
- フェールセーフ
- フェールソフト
- フールプルーフ
正解: ア 故障の発生自体を避ける考え方がフォールトアボイダンスです。イ は故障が起きたときに安全な側へ倒す設計、ウ は故障部分を切り離して縮退運転する設計、エ は人の誤操作が事故につながらないようにする設計で、いずれも「構成要素の品質を高めて故障そのものを減らす」ものではありません。
Q5. コンテナ型仮想化の説明として適切なものはどれか。
- ハードウェア上で直接動作する制御プログラムが、複数のゲスト OS を並行して動かす。
- ホスト OS のカーネルを共有し、アプリケーションと実行に必要なライブラリだけをまとめて隔離実行する。
- ホスト OS 上のアプリケーションとして仮想化ソフトを動かし、その上でゲスト OS を動かす。
- 稼働中の仮想マシンを停止させずに別の物理サーバへ移動させる。
正解: イ コンテナ型はゲスト OS を持たず、ホスト OS のカーネルを共有するため軽量で起動が速いのが特徴です。ア はハイパバイザ型、ウ はホスト型、エ はライブマイグレーションの説明です。
Q6. スケールアウトによる性能向上が特に有効なシステムはどれか。
- 1 件あたりの処理時間が長く、分割できない一括更新が中心のバッチシステム
- 単一のトランザクション内で大量の表を結合する分析処理が中心のシステム
- 排他制御を伴う更新処理が大半を占めるシステム
- 参照処理が大半を占め、同じ処理を複数のサーバで分担できるシステム
正解: エ スケールアウトは同じ役割のサーバを並べて負荷を分ける方式なので、独立に処理できる参照系が多いほど効きます。ア〜ウ はいずれも処理を分割できない、または更新の同期負担が増えるため、1 台の性能を上げるスケールアップのほうが適します。
Q7. クライアントとサーバを結ぶ通信経路は毎秒 200 件の要求を運べ、サーバは毎秒 150 件の要求を処理できる。このシステムの実効スループットは毎秒何件か。
- 50
- 150
- 175
- 350
正解: イ 直列につながった資源では、能力の小さいほう(ボトルネック)が全体のスループットを決めるので 150 件です。ア は差、ウ は 2 つの能力の平均、エ は和で、いずれも実効スループットにはなりません。
Q8. IaC(Infrastructure as Code)の説明はどれか。
- ソースコードが変更されるたびに、自動でビルドとテストを実行する。
- 物理サーバ上の仮想マシンを、負荷に応じて別の物理サーバへ移動させる。
- サーバやネットワークの構成をコードとして記述し、その記述から環境を自動で構築・変更する。
- 運用手順を文書化し、作業者が手順書に従って設定作業を行う。
正解: ウ IaC は構成そのものを記述として残し、同じ環境を何度でも再現できるようにする考え方です。ア は継続的インテグレーション、イ はライブマイグレーション、エ は従来の手作業運用で、いずれもコードによる構成管理ではありません。
Q9. キャパシティプランニングの目的として適切なものはどれか。
- 業務量を予測して必要な資源量を見積もり、稼働後も実測を続けて応答時間の要求を満たし続ける。
- 障害が発生したときに、あらかじめ定めた手順で速やかに復旧できる体制を整えておく。
- システムの利用者を認証し、与えられた権限を超える操作が行われないようにする。
- 開発に必要な工数を見積もり、要員計画と作業スケジュールを作成して進捗を管理する。
正解: ア キャパシティプランニングは性能要件を将来にわたって満たし続けるための継続的な活動です。イ は障害管理・コンティンジェンシー計画、ウ はアクセス管理、エ はプロジェクト計画で、いずれも性能・容量の管理ではありません。
Q10. オブジェクトストレージの特徴はどれか。
- OS からは固定長ブロックの集合として見え、ファイルシステムを載せて使う。
- LAN 経由のファイル共有プロトコルを用い、ディレクトリ階層でファイルを管理する。
- 割り当てた容量のうち、実際に書き込まれた分だけ物理領域を消費させる。
- データとメタデータをひとまとまりとして扱い、階層構造ではなく固有の識別子で参照する。
正解: エ オブジェクトストレージは識別子でアクセスする方式で、非構造データの大量保管と容量の拡張性に優れます。ア はブロックストレージ、イ は NAS(ファイルストレージ)、ウ はシンプロビジョニングの説明です。
Q11. HA クラスタ構成の説明として適切なものはどれか。
- 現用系の障害を運用者が検知し、手動で待機系へ切り替える。
- 現用系と待機系が同じ処理を実行し、結果を照合して誤りを検出する。
- 現用系の生存確認が途絶えると、待機系が自動的に処理を引き継ぐ。
- 複数のサーバがデータベースを分割して保持し、問合せを分担する。
正解: ウ HA クラスタはハートビートの途絶を契機に自動でフェールオーバする構成で、セッション情報を共有していれば処理中のトランザクションも継続できます。ア は手動切替で自動引継ぎではなく、イ はデュアルシステムの照合、エ はシェアードナッシング型の分散データベースの説明です。
Q12. スケールインの説明はどれか。
- 負荷の減少に合わせてサーバの台数を減らし、費用を最適化する。
- サーバ 1 台の CPU やメモリを削減して費用を抑える。
- サーバ 1 台の CPU やメモリを増設して処理能力を高める。
- 同じ構成のサーバを追加して処理能力を高める。
正解: ア 「イン/アウト」は台数、「アップ/ダウン」は 1 台の性能を指します。イ はスケールダウン、ウ はスケールアップ、エ はスケールアウトの説明で、スケールインと混同されやすいのはイ です。
Q13. 稼働中のシステムについて、MTTR の短縮に直接つながる施策はどれか。
- 故障率の低い高信頼部品へ計画的に交換する。
- 装置を二重化し、一方が停止しても処理を続けられるようにする。
- 障害箇所をすぐ特定できるよう、エラーログの取得機能を組み込む。
- 定期的な予防保守を実施し、劣化した部品を事前に交換する。
正解: ウ MTTR は「故障してから復旧するまで」の平均なので、原因の切分けを速める仕組みが直接効きます。ア と エ は故障の発生自体を減らす MTBF 側の対策、イ は系として止めないための冗長化で、いずれも 1 回あたりの修理時間そのものは短くなりません。
Q14. 読取り 15 ミリ秒、演算 25 ミリ秒、書込み 40 ミリ秒の 3 工程からなる処理を、それぞれ別の装置が担当して重ねて実行する。1 分間に処理できる最大件数はおよそ何件か。
- 750
- 1,500
- 2,400
- 4,000
正解: イ パイプラインでは最長工程(書込み 40 ミリ秒)ごとに 1 件が完了するので、60,000 ÷ 40 = 1,500 件です。ア は 3 工程の合計 80 ミリ秒で割った値、ウ は演算 25 ミリ秒、エ は読取り 15 ミリ秒で割った値で、いずれも律速工程を取り違えています。
まとめ
| 論点 | 覚える式・要件 | 誤りやすい点 |
|---|---|---|
| 稼働率 | MTBF ÷(MTBF + MTTR) | 分母を MTBF だけにしない。両方を同率で変えても不変 |
| 直列・並列 | 直列 = a × b、並列 = 1 -(1 - a)(1 - b) | 「一方だけ」は並列の式では出せない。内側から合成する |
| MTTR 短縮 | エラーログ取得、保守部品常備、遠隔保守 | 予防保守・冗長化は MTBF 側 |
| 使用率 | Σ(件数 × 1 件の処理時間)÷ 観測時間 | 単位換算とピーク/平均の取り違え |
| 実効スループット | 直列資源の最小能力 | 和・平均・最大にしない |
| パイプライン | 単位時間の件数は最長工程で決まる | 工程時間の合計で割らない |
| M/M/1 | Tr = Ts ÷(1 - ρ)、ρ = λ × Ts | 利用率が 1 に近づくと待ちが急増する |
| 信頼性設計 | アボイダンス/トレランス/セーフ/ソフト/フールプルーフ | 止めるのか動かし続けるのかで見分ける |
| 冗長構成 | デュアル=同時実行・照合、デュプレックス=主系と待機系 | ホット/ウォーム/コールドは待機のさせ方の違い |
| スケール | アウト/イン=台数、アップ/ダウン=1 台の性能 | 参照系はアウト、更新系はアップ |
| 仮想化 | コンテナ型はゲスト OS を持たない | ライブマイグレーションはレプリケーションではない |
| クラウド | IaaS はゲスト OS 以上が利用者責任 | PaaS・SaaS では OS のパッチ管理はできない |
| RAID | 5 は(n - 1)、6 は(n - 2)、10 は n ÷ 2(RAID 1 は 2 台で 1 台ぶん) | 耐えられる故障台数と実効容量をセットで覚える |
| バックアップ | 差分=フル + 最新差分、増分=フル + 全増分 | 取得時間が短い増分ほど復旧に手数がかかる |
この章の計算は、稼働率・使用率・スループットの 3 本柱を型どおりに解けるかで得点が決まります。式を覚えるだけでなく、問題文の「どの範囲を聞かれているか」を先に確定させる癖をつけてください。次章はソフトウェアです。ここで扱った資源の割り当てを、OS がタスクとメモリのレベルでどう管理しているかを見ていきます。