1. 概要
システム構成とは、コンピュータシステムを構成する要素の組み合わせ方や接続方法を定義したものです。システム構成の選択は、システムの性能、信頼性、拡張性、コスト効率などに大きく影響します。適切なシステム構成を選ぶことで、業務要件に最適なシステムを構築できるとともに、障害発生時の影響を最小限に抑え、システムの可用性を高めることができます。
flowchart LR A[システム構成] --> B[信頼性向上のための構成] A --> C[性能向上のための構成] A --> D[結合方式による構成] A --> E[クライアント・サーバ構成] A --> F[分散処理構成] A --> G[クラウドコンピューティング] B --> B1[デュアルシステム] B --> B2[デュプレックスシステム] B --> B3[クラスタ/クラスタリング] B --> B4[タンデム結合] B --> B5[バックアップサイト] C --> C1[マルチプロセッサシステム] C --> C2[ロードシェアリングシステム] D --> D1[密結合システム] D --> D2[疎結合システム] E --> E1[シンクライアント] E --> E2[ピアツーピア] F --> F1[グリッドコンピューティング] F --> F2[仮想化技術] F --> F3[エッジコンピューティング] G --> G1[SaaS] G --> G2[PaaS] G --> G3[IaaS] G --> G4[FaaS] G --> G5[サーバレス]
図表1: システム構成の分類
2. 詳細説明
2.1. 信頼性向上のためのシステム構成
信頼性向上のためのシステム構成は、障害発生時にもシステムの機能を継続させるための冗長構成を持つものです。主な構成には以下のようなものがあります。
2.1.1. デュアルシステム
デュアルシステムは、同一の処理を行う2つのシステムを用意し、一方を主系(現用系)、もう一方を従系(待機系)として運用する構成です。主系に障害が発生した場合、従系に切り替えて処理を継続します。平常時は主系のみが処理を行い、従系はスタンバイ状態です。
2.1.2. デュプレックスシステム
デュプレックスシステムは、2つのシステムが同時に稼働し、互いにバックアップとなる構成です。一方のシステムが障害を起こした場合でも、もう一方のシステムが処理を引き継ぎます。デュアルシステムとの大きな違いは、平常時から両方のシステムが稼働している点です。
flowchart TD subgraph "デュアルシステム(平常時)" A1[主系:稼働中] B1[従系:待機中] A1 --> |データ同期| B1 end subgraph "デュアルシステム(障害時)" A2[主系:障害発生] B2[従系:稼働に切替] A2 -.-> |障害発生| B2 end subgraph "デュプレックスシステム(平常時)" C1[システムA:稼働中] D1[システムB:稼働中] C1 <--> |相互監視・バックアップ| D1 end subgraph "デュプレックスシステム(障害時)" C2[システムA:障害発生] D2[システムB:稼働継続] C2 -.-> |処理引継ぎ| D2 end
図表2: デュアルシステムとデュプレックスシステムの比較
2.1.3. クラスタとクラスタリング
クラスタは、複数のコンピュータを接続して1つのシステムとして機能させる構成です。クラスタリングにより、1台のコンピュータでは実現困難な高い処理能力や高可用性を実現します。障害が発生した場合は、クラスタ内の他のコンピュータが処理を引き継ぎます。
flowchart TD subgraph "共有ディスク型クラスタ" A1[サーバA] --- S[共有ストレージ] B1[サーバB] --- S C1[サーバC] --- S A1 <--> B1 B1 <--> C1 A1 <--> C1 end subgraph "共有ディスクレス型クラスタ" A2[サーバA] --- SA[ストレージA] B2[サーバB] --- SB[ストレージB] C2[サーバC] --- SC[ストレージC] A2 <--> B2 B2 <--> C2 A2 <--> C2 SA <-.-> |データ複製| SB SB <-.-> |データ複製| SC SA <-.-> |データ複製| SC end
図表3:クラスタ構成の例
2.1.4. タンデム結合
タンデム結合は、複数のコンピュータを直列に接続し、処理を順次受け渡す構成です。障害発生時には、障害のあるコンピュータをバイパスして処理を継続します。主に大規模なトランザクション処理システムで用いられます。
2.1.5. バックアップサイト
バックアップサイトは、災害などによって主要なデータセンターが使用できなくなった場合のために用意される代替施設です。準備状況によって以下の3種類に分類されます。
- ホットサイト:常に稼働状態で、データも最新に保たれており、即時に切り替えが可能なバックアップサイト
- ウォームサイト:ハードウェアは設置されているが、データは定期的に更新される程度のバックアップサイト
- コールドサイト:建物と基本的なインフラのみが準備されているバックアップサイト
graph subgraph "バックアップサイト比較" classDef hot fill:#f96,stroke:#333,stroke-width:2px; classDef warm fill:#ff9,stroke:#333,stroke-width:2px; classDef cold fill:#9cf,stroke:#333,stroke-width:2px; HS[ホットサイト] --- HS1[復旧時間: 数分~数時間] HS --- HS2[コスト: 高] HS --- HS3[データの更新: リアルタイム同期] HS --- HS4[設備の準備: 完全に稼働可能な状態] WS[ウォームサイト] --- WS1[復旧時間: 数時間~1日] WS --- WS2[コスト: 中] WS --- WS3[データの更新: 定期的なバックアップ] WS --- WS4[設備の準備: ハードウェア設置済み] CS[コールドサイト] --- CS1[復旧時間: 数日~数週間] CS --- CS2[コスト: 低] CS --- CS3[データの更新: バックアップの搬入が必要] CS --- CS4[設備の準備: インフラのみ] class HS hot; class WS warm; class CS cold; end
図表4:バックアップサイトの比較表
2.2. 性能向上のためのシステム構成
性能向上のためのシステム構成は、システムの処理能力を向上させ、レスポンス時間を短縮するための構成です。主なものには以下があります。
2.2.1. マルチプロセッサシステム
マルチプロセッサシステムは、1台のコンピュータ内に複数のプロセッサ(CPU)を搭載し、並列処理を行うシステムです。処理能力の向上や負荷分散が可能になります。単一の共有メモリを使用するため、プロセッサ間の通信効率が高いのが特徴です。
2.2.2. ロードシェアリングシステム
ロードシェアリングシステムは、複数のサーバーに処理を分散させ、負荷を均等化する構成です。システム全体の処理能力向上とレスポンスタイムの短縮を図ります。特にWebアプリケーションなど、アクセス集中が予想されるシステムで効果的です。
2.3. 結合方式によるシステム構成
結合方式によるシステム構成は、複数のプロセッサやコンピュータの接続方法による分類です。リソースの共有方法によって特性が大きく異なります。
2.3.1. 密結合システム
密結合システムは、プロセッサ間で主記憶を共有する構成です。プロセッサ間の通信が高速で、同期が取りやすいという特徴があります。
- シェアードエブリシング:すべてのリソース(メモリ、ディスクなど)を共有する構成
- シェアードナッシング:各プロセッサが独自のリソースを持ち、リソースを共有しない構成
2.3.2. 疎結合システム
疎結合システムは、各コンピュータがネットワークを介して接続され、データ交換を行う構成です。各コンピュータは独立して動作し、必要に応じて通信します。スケーラビリティが高く、障害の影響範囲が限定的であるというメリットがあります。
classDiagram class 密結合システム { +メモリ共有: 共有メモリを使用 +通信方法: 高速なメモリアクセス +同期方法: 厳密な同期制御が必要 +スケーラビリティ: 限定的 +障害の影響: 広範囲に及ぶ可能性 +利点: 高速な処理、一貫性の維持が容易 +例: シェアードエブリシング シェアードナッシング } class 疎結合システム { +メモリ共有: 個別のメモリ空間 +通信方法: ネットワーク経由のメッセージパッシング +同期方法: 非同期通信が基本 +スケーラビリティ: 高い +障害の影響: 局所的に制限される +利点: 拡張性、耐障害性が高い +例: クラスタ 分散システム }
図表5:密結合と疎結合の比較
2.4. クライアント・サーバシステムの構成
クライアント・サーバシステムは、サービスを提供するサーバと、サービスを利用するクライアントに役割を分担する構成です。処理の分散やリソースの効率的な活用が可能になります。
2.4.1. シンクライアント
シンクライアントは、クライアント側の端末に最小限の機能しか持たせず、ほとんどの処理をサーバー側で行う構成です。セキュリティの向上やメンテナンスの簡素化などのメリットがあります。端末側にはデータを保存せず、アプリケーションもサーバー側で実行するため、情報漏洩リスクの低減にも貢献します。
2.4.2. ピアツーピア
ピアツーピアは、クライアントとサーバーの区別がなく、各コンピュータが対等な関係でリソースを共有する構成です。中央サーバーに依存しないため、耐障害性が高く、スケーラビリティにも優れています。ファイル共有サービスや分散型アプリケーションなどで利用されています。
2.5. 分散処理のシステム構成
分散処理のシステム構成は、複数のコンピュータにタスクを分散させて効率的に処理を行うための構成です。主なものには以下があります。
2.5.1. グリッドコンピューティング
グリッドコンピューティングは、ネットワーク上の複数のコンピュータリソースを組み合わせて、高性能な計算環境を実現する構成です。地理的に分散したコンピュータを活用できます。大規模な科学計算や複雑なシミュレーションなどのタスクに適しています。
2.5.2. 仮想化技術
仮想化技術は、物理的なハードウェアリソースを論理的に分割・統合し、効率的に利用するための技術です。様々な方式があります。
- ホスト型仮想化:既存のOSの上に仮想化ソフトウェアをインストールし、その上でゲストOSを動作させる方式
- ハイパーバイザー型仮想化:ハードウェア上に直接仮想化ソフトウェアをインストールし、複数のゲストOSを動作させる方式
- コンテナ型仮想化:OS上で複数の独立した実行環境(コンテナ)を提供する方式
flowchart TD subgraph "ホスト型仮想化" PH1[物理ハードウェア] HO1[ホストOS] VM1[仮想化ソフトウェア] G11[ゲストOS 1] G12[ゲストOS 2] A11[アプリケーション] A12[アプリケーション] PH1 --> HO1 HO1 --> VM1 VM1 --> G11 VM1 --> G12 G11 --> A11 G12 --> A12 end subgraph "ハイパーバイザー型仮想化" PH2[物理ハードウェア] HV2[ハイパーバイザー] G21[ゲストOS 1] G22[ゲストOS 2] A21[アプリケーション] A22[アプリケーション] PH2 --> HV2 HV2 --> G21 HV2 --> G22 G21 --> A21 G22 --> A22 end subgraph "コンテナ型仮想化" PH3[物理ハードウェア] HO3[ホストOS] CE3[コンテナエンジン] C31[コンテナ 1] C32[コンテナ 2] A31[アプリケーション] A32[アプリケーション] PH3 --> HO3 HO3 --> CE3 CE3 --> C31 CE3 --> C32 C31 --> A31 C32 --> A32 end
図表6:仮想化技術の比較
2.5.3. VM(Virtual Machine:仮想マシン)
VMは、物理的なコンピュータ上に作成された仮想的なコンピュータです。1台の物理サーバー上で複数のOSを同時に稼働させることができます。リソースの有効活用、環境の分離、可搬性の向上などのメリットがあります。
2.5.4. VDI(Virtual Desktop Infrastructure:デスクトップ仮想化)
VDIは、サーバー上に仮想デスクトップ環境を構築し、ユーザーが任意の端末からアクセスできるようにする技術です。デスクトップ環境の集中管理が可能になり、セキュリティの向上やメンテナンスの効率化が図れます。
2.6. クラウドコンピューティング
クラウドコンピューティングは、インターネットを通じてコンピューティングリソースをサービスとして提供する形態です。必要に応じてリソースを柔軟に利用できるというメリットがあります。
2.6.1. クラウドサービスモデル
クラウドサービスは、提供される機能のレベルによって以下のように分類されます。
- SaaS(Software as a Service):アプリケーションをサービスとして提供
- PaaS(Platform as a Service):アプリケーション実行環境をサービスとして提供
- IaaS(Infrastructure as a Service):仮想化されたコンピュータ資源をサービスとして提供
- FaaS(Function as a Service):個々の機能(関数)をサービスとして提供
flowchart TD subgraph "クラウドサービスモデル比較" direction TB subgraph "ユーザー管理範囲" direction LR U1["オンプレミス (全て自己管理)"] --- U2["IaaS"] --- U3["PaaS"] --- U4["FaaS"] --- U5["SaaS\n(全てサービス)"] end end
flowchart TD subgraph "クラウドサービスモデル比較" direction TB subgraph "サービス内容" S1["SaaS (Software as a Service)"] --- S1D["完全なアプリケーション 例: Office 365, Salesforce"] S2["PaaS (Platform as a Service)"] --- S2D["開発・実行環境 例: Google App Engine, Heroku"] S3["IaaS (Infrastructure as a Service)"] --- S3D["仮想マシン、ストレージ 例: AWS EC2, Azure VMs"] S4["FaaS (Function as a Service)"] --- S4D["個別の機能をサーバレスで実行 例: AWS Lmbda, Azure Functions"] end end
flowchart TD subgraph "クラウドサービスモデル比較" direction TB subgraph "ユーザーの責任範囲" R1["SaaS"] --- R1D["アプリケーション設定のみ"] R2["PaaS"] --- R2D["アプリケーション開発・データ管理"] R3["IaaS"] --- R3D["OS以上の全レイヤー"] R4["FaaS"] --- R4D["関数コードとデータのみ"] end end
図表7:クラウドサービスモデルの比較
2.6.2. サーバレスコンピューティング
サーバレスコンピューティングは、サーバーの構築・管理をクラウドプロバイダに任せ、開発者はコードの実装のみに集中できる構成です。FaaSの発展形として位置づけられ、イベント駆動型の処理に適しています。利用した分だけ課金される点も特徴的です。
2.6.3. IaC(Infrastructure as Code)
IaCは、インフラストラクチャの構成をコードとして管理し、自動化する手法です。環境の再現性や一貫性を高めることができます。構成管理ツール(Ansible、Puppet、Chefなど)やTerraformのようなプロビジョニングツールを使用して実現します。
2.7. 新しいシステム構成の動向
2.7.1. エッジコンピューティング
エッジコンピューティングは、データ処理をネットワークのエッジ(端)で行い、クラウドへの通信遅延を削減するシステム構成です。IoTデバイスの増加に伴い重要性が高まっています。リアルタイム性が求められる処理や、プライバシーに関わるデータの前処理に適しています。
flowchart TD subgraph "特性比較" direction TB comp1["レイテンシ"] --- comp1c["クラウド: 高\nエッジ: 低"] comp2["処理能力"] --- comp2c["クラウド: 高\nエッジ: 制限あり"] comp3["ネットワーク負荷"] --- comp3c["クラウド: 高\nエッジ: 低"] comp4["リアルタイム性"] --- comp4c["クラウド: 低\nエッジ: 高"] comp5["データ保護"] --- comp5c["クラウド: 集中管理\nエッジ: 分散管理"] end
flowchart TD subgraph "クラウドコンピューティング" direction TB D1[IoTデバイス] --> |全データ送信| N1[ネットワーク] N1 --> |大容量データ転送| C1[クラウド] C1 --> |分析・処理| R1[結果] R1 --> |長い応答時間| D1 end subgraph "エッジコンピューティング" direction TB D2[IoTデバイス] --> |データ生成| E2[エッジ処理装置] E2 --> |前処理・フィルタリング| N2[ネットワーク] N2 --> |必要なデータのみ| C2[クラウド] C2 --> |高度な分析| R2[結果] E2 --> |即時処理| D2 end
図表8:エッジコンピューティングとクラウドコンピューティングの比較
2.7.2. マイグレーション技術
マイグレーションは、システムやデータを別の環境に移行する技術です。
- ライブマイグレーション:稼働中のVMを停止することなく別の物理サーバーに移動させる技術。サービスの継続性を保ちながらメンテナンスや負荷分散が可能です。
2.7.3. サーバコンソリデーション
サーバコンソリデーションは、複数の物理サーバーを集約し、少数の高性能サーバーに統合することで、管理コストの削減や効率化を図る手法です。仮想化技術と組み合わせることで、リソースの有効活用とエネルギー消費の削減が実現できます。
3. 応用例
3.1. 金融機関のシステム構成
金融機関では、システムの信頼性が極めて重要です。そのため、デュプレックスシステムを採用し、主系(現用系)と従系(待機系)を常に同期させています。また、災害対策としてホットサイトを遠隔地に設置し、主要データセンターに問題が発生した場合でも、業務を継続できるようにしています。重要なデータは複数の場所にリアルタイムで複製され、障害発生時のデータ損失を最小限に抑える構成となっています。
3.2. Eコマースサイトのシステム構成
Eコマースサイトでは、アクセス集中時にも安定したサービスを提供するため、ロードシェアリングシステムを採用し、複数のWebサーバーに負荷を分散させています。また、クラウドコンピューティング(IaaS)を利用することで、季節的な需要変動に対応した柔軟なリソース調整を行っています。IaCを活用してインフラ構成を自動化し、急なトラフィック増加にもスケールアウトで対応できるよう設計されています。
3.3. 製造業の生産システム
製造業では、工場内の各機器からデータを収集・分析するために、エッジコンピューティングを活用しています。センサーデータの一次処理をエッジデバイスで行い、必要なデータのみをクラウドに送信することで、リアルタイム性の向上とネットワーク負荷の軽減を実現しています。異常検知などの即時対応が必要な処理はエッジで実行し、長期的な傾向分析などの高度な処理はクラウドで行うといった機能分担がなされています。
3.4. 教育機関のデスクトップ環境
教育機関では、学生用PCの管理コスト削減と均一な環境提供のために、VDI(デスクトップ仮想化)を導入しています。物理的なPCはシンクライアント化し、サーバー側で仮想デスクトップを集中管理することで、ソフトウェア更新や環境設定の一括管理を実現しています。また、学生は自分のデバイスからも仮想デスクトップにアクセスできるため、場所を問わず一貫した学習環境が提供されています。
4. 例題
例題1
A社では、基幹業務システムの信頼性向上のため、新たなシステム構成を検討している。業務の重要性から、システム障害時にもサービスを継続する必要があり、切り替え時間は最小限に抑えたい。最も適切なシステム構成を選択せよ。
- コールドサイト方式
- デュアルシステム
- ウォームサイト方式
- タンデム結合方式
【解答】b
【解説】デュアルシステムは、主系と従系の2つのシステムを用意し、障害発生時に即座に切り替えられる構成です。コールドサイトとウォームサイトは災害対策用の構成であり、切り替えに時間がかかります。タンデム結合は直列処理を行う構成であり、障害発生時に処理をバイパスしますが、完全な冗長性は確保されません。基幹業務の継続性と最小限の切り替え時間という要件を満たすのはデュアルシステムが最適です。
例題2
クラウドサービスのうち、「ユーザーはアプリケーションの利用のみ行い、ハードウェアやOSなどの管理は一切行わない」モデルとして最も適切なものを選択せよ。
- IaaS
- PaaS
- SaaS
- FaaS
【解答】c
【解説】SaaS(Software as a Service)は、ソフトウェアをサービスとして提供するモデルであり、ユーザーはアプリケーションの利用のみを行います。IaaSはインフラストラクチャ、PaaSはプラットフォームを提供するモデルであり、ユーザーはそれぞれの上位レイヤーの管理を行う必要があります。FaaSは特定の機能(関数)をサービスとして提供するモデルです。選択肢の中で「アプリケーションの利用のみ」という条件に合致するのはSaaSです。
例題3
以下の説明に当てはまるシステム構成はどれか。 「物理サーバー上で直接動作し、複数のゲストOSを効率的に実行できる仮想化方式」
- ホスト型仮想化
- ハイパーバイザー型仮想化
- コンテナ型仮想化
- VDI
【解答】b
【解説】ハイパーバイザー型仮想化は、物理ハードウェア上に直接仮想化ソフトウェア(ハイパーバイザー)をインストールし、その上で複数のゲストOSを動作させる方式です。ホスト型仮想化はホストOSの上に仮想化ソフトウェアをインストールするため、リソースのオーバーヘッドが大きくなります。コンテナ型仮想化はOS上で複数の独立した実行環境を提供するものであり、完全なゲストOSを動作させるものではありません。VDIはデスクトップ環境を仮想化する技術です。
例題4
2つのデータセンターを利用したシステム構成において、常に両方のデータセンターでシステムが稼働し、一方に障害が発生した場合でも、もう一方でサービスを継続できる構成を何というか。
- デュアルシステム
- デュプレックスシステム
- タンデム結合
- コールドサイト
【解答】b
【解説】デュプレックスシステムは、2つのシステムが同時に稼働し、互いにバックアップとなる構成です。デュアルシステムは主系と従系に分かれ、通常は主系のみが稼働します。タンデム結合は処理を直列につなぐ構成です。コールドサイトは災害発生時のバックアップとして建物とインフラのみを準備した構成です。両方のデータセンターが常に稼働しているという条件に合致するのはデュプレックスシステムです。
例題5
以下の説明に当てはまるクラウドコンピューティングの特徴はどれか。 「インフラストラクチャの設定をコードとして管理し、自動化された方法でプロビジョニングする手法」
- サーバレスコンピューティング
- エッジコンピューティング
- IaC(Infrastructure as Code)
- サーバコンソリデーション
【解答】c
【解説】IaC(Infrastructure as Code)は、インフラストラクチャの構成をコードとして管理し、自動化する手法です。サーバレスコンピューティングは、サーバーの管理をクラウドプロバイダに任せる形態です。エッジコンピューティングは、データ処理をネットワークの端で行う構成です。サーバコンソリデーションは、複数のサーバーを集約する手法です。インフラストラクチャをコードとして管理するという説明に合致するのはIaCです。
5. まとめ
システム構成は、コンピュータシステムの信頼性、性能、拡張性などを決定する重要な要素です。信頼性向上のためのデュアルシステムやデュプレックスシステム、性能向上のためのマルチプロセッサシステムやロードシェアリングシステム、クラウドコンピューティングによるSaaS/PaaS/IaaS/FaaSなどのサービスモデル、仮想化技術によるVMやVDI、さらにはエッジコンピューティングやサーバレスといった新しい技術まで、多様なシステム構成が存在します。
システム要件に応じて適切なシステム構成を選択することで、効率的で信頼性の高いシステムを構築することができます。また、IaC(Infrastructure as Code)のような技術を活用することで、システム構成の一貫性と再現性を高め、マイグレーションやサーバコンソリデーションなどの作業を効率化することも可能になります。
情報処理技術者には、これらの様々なシステム構成の特徴を理解し、要件に応じて最適な構成を選択・設計する能力が求められます。システムの可用性、性能、コスト、拡張性などのバランスを考慮し、業務の要件に最適なシステム構成を設計できることが重要です。