変更要約: 初版
2.3システム構成と仮想化
集中処理と分散処理、クライアントサーバシステム、Web3層構造、クラスタリングと負荷分散という代表的なシステム構成パターンを学びます。さらに1台の物理マシン上で複数のOSを動かす仮想化(ハイパーバイザ)、より軽量なコンテナ、そしてIaaS/PaaS/SaaSというクラウドサービスの提供形態の違いを整理します。
システムをどう構成するかは、性能・信頼性・拡張性・コストのバランスを決める重要な設計判断です。1台に処理を集める構成と、複数台に分散する構成、それぞれの利点と課題を理解した上で、仮想化やクラウドという現代的な実現手段を押さえていきます。
2.3.1集中処理・分散処理とクライアントサーバ
- 集中処理=1台の高性能な中央コンピュータに処理を集約する方式。管理が一元化しやすく統制が取りやすい一方、その1台に障害が起きるとシステム全体が止まる単一障害点になりやすい欠点があります。分散処理=処理を複数台のコンピュータに分散させる方式。1台が故障しても他が動き続けられる、負荷を分けて処理できるといった利点がある一方、構成が複雑になり管理コストが増します。
- クライアントサーバシステム=処理を要求するクライアントと、要求に応えてサービスを提供するサーバとに役割分担する分散処理の代表形態。Web3層構造=Webシステムをプレゼンテーション層(画面表示・Webサーバ)・アプリケーション層(業務ロジック・APサーバ)・データ層(データ保存・DBサーバ)の3つに分離する構成で、各層を独立して増強・保守できる利点があります。
2.3.2クラスタリングと仮想化
- クラスタリング=複数台のサーバを束ねて1台であるかのように振る舞わせる構成。障害時に処理を引き継ぐフェイルオーバを目的とするものと、複数台で処理を分担する負荷分散を目的とするものに大別されます。負荷分散(ロードバランシング)=ロードバランサが複数のサーバへリクエストを振り分け、特定の1台に負荷が集中するのを防ぐ仕組みです。
- 仮想化=1台の物理マシンのハードウェア資源を、複数の仮想マシン(VM)に分割・共有させる技術。中核となるのがハイパーバイザで、物理ハードウェア上に直接載るホスト型(Type1)と、既存のOS上で動くゲスト型(Type2)があります。仮想化により、1台の物理サーバで複数のOS・アプリケーションを独立して動かし、集約率を高められます。
「集中処理は単一障害点になりやすい/分散処理は複雑だが可用性が高い」「クラスタリング=フェイルオーバ目的か負荷分散目的」「ハイパーバイザにはホスト型(Type1)とゲスト型(Type2)がある」「コンテナはOSカーネルを共有し仮想マシンより軽量」が最頻出です。IaaS/PaaS/SaaSで利用者が管理する範囲の境界を問う問題も繰り返し出ます。
新しいWebサービスの基盤を検討する場面を考えます。当初は1台のサーバにWebサーバ・アプリケーション・データベースを全て同居させる集中構成で始めたとしても、利用者が増えるにつれ「アクセスが急増するとサーバ全体が重くなる」「特定の機能だけ改修したいのに全体を止めないといけない」という課題が出てきます。そこでWeb3層構造へ移行し、プレゼンテーション層・アプリケーション層・データ層を分離すれば、たとえばアプリケーション層だけを増強する、データ層だけをバックアップ強化するといった層ごとの独立した対応が可能になります。さらにアプリケーション層を複数台に増やし、その手前にロードバランサを置いて負荷分散クラスタを構成すれば、1台あたりの負荷を減らしつつ、1台が故障しても残りのサーバでサービスを継続できます。基盤の実装方式も選択が必要です。各サーバを物理マシンでそのまま用意すると調達に時間がかかり集約率も低いため、仮想化(ハイパーバイザ上に複数のVMを構成)や、より軽量なコンテナ(OSカーネルを共有しアプリケーションとその依存関係だけをパッケージ化する技術。VMより起動が速く消費資源も少ない)を使えば、1台の物理サーバでも柔軟に多数の実行環境を用意できます。さらにインフラそのものの調達・運用を外部化したい場合はクラウドを検討します。仮想マシンや基本的なネットワークといったインフラだけを借りて自分でOS以上を管理するIaaS、アプリケーション実行基盤(言語ランタイムやミドルウェア)まで提供され自社はアプリケーションの実装に集中できるPaaS、業務アプリケーションそのものが完成品として提供され自社は利用と設定だけを行うSaaSという具合に、管理したい範囲と外部に任せたい範囲に応じて提供形態を選ぶのが実務の判断です。
| 提供形態 | 利用者が管理する範囲 | 例 |
|---|---|---|
| IaaS | OS・ミドルウェア・アプリケーション | 仮想サーバ・ストレージ |
| PaaS | アプリケーションのみ | アプリ実行基盤・DBサービス |
| SaaS | 利用設定のみ(インフラ・アプリとも提供側が管理) | 業務アプリケーション(メール・会計等) |
ひっかけ: 「分散処理は常に集中処理より優れている」は誤りです。分散処理は可用性で有利な一方、構成が複雑になり管理コストが増すという欠点があり、要件次第では集中処理が適する場合もあります。また「コンテナは仮想マシンと同じくゲストOSを個別に持つ」も誤り=コンテナはホストのOSカーネルを共有し、VMより軽量・高速に起動する点が本質的な違いです。「SaaSはIaaSより利用者の管理範囲が広い」も誤り=SaaSが最も利用者管理範囲が狭く、IaaSが最も広いのが正しい順序です。
2.3.3この節のまとめ
- 集中処理は単一障害点になりやすく、分散処理は可用性が高い分、管理は複雑。Web3層構造は各層を独立して増強・保守できる
- クラスタリングはフェイルオーバか負荷分散が目的。仮想化(ハイパーバイザ)はホスト型(Type1)/ゲスト型(Type2)。コンテナはOSカーネル共有でVMより軽量
- IaaS=OS以上を利用者管理・PaaS=アプリのみ利用者管理・SaaS=利用設定のみ(管理範囲は狭い順にSaaS<PaaS<IaaS)
進捗の記録にはログインが必要です。
理解度チェック
(軽い確認用)Q1. 1台の高性能サーバに処理を集約していたところ、そのサーバの障害でシステム全体が停止した。この構成が抱えていた本質的な弱点はどれか。
Q2. クラウドサービスのうち、OSやミドルウェアの管理・パッチ適用は利用者が行い、仮想サーバやネットワークなどのインフラのみを提供元が管理する形態はどれか。
Q3. 複数のアプリケーション実行環境を1台の物理サーバ上に用意したい。起動の速さと消費資源の少なさを重視し、ホストのOSカーネルを共有する方式を採用したい場合、適した技術はどれか。

