1.2 集約型と分割型アーキテクチャ
ITインフラはコンピュータにより構成されます。基本的な考え方として「集約型」と「分割型」というものがあります。それぞれのメリットとデメリットを比較していきましょう。
1.2.1 集約型アーキテクチャ
昔の映画でコンピュータというと、部屋いっぱいの謎の機器、巨大なカセットテープのような装置、青・緑・黄などに光る多数のランプ、さらにメガネの科学者が大量に映し出されていましたよね。
企業で利用されるコンピュータはここまで巨大ではないですが、ITシステム黎明期には、大型コンピュータを利用し、すべての業務処理をその上で実行する形が主流でした(図1.2)。
こういった大型コンピュータは「汎用機」「ホスト」「メインフレーム」などと呼ばれます。システムアーキテクチャという観点では、1つのコンピュータですべてを処理するため、「集約型」と呼ぶことができます。集約型の最大のメリットは、構成がシンプルになることです。
集約型アーキテクチャでは、その企業における主要業務のすべてをその1台で実行するため、機器故障などで業務が止まらないように、さまざまな工夫が行なわれています。たとえば図1.3にあるように、コンピュータを構成する主要部品はすべて多重化されており、その1つが故障しても、業務を継続することが可能になっています。CPUを含むその構成要素については第2章でより詳しく説明します。
また、複数の異なる業務処理を同時に実行できるよう、有限リソースの管理を行なっています。これにより、1つの処理が誤って大量データをリクエストするなど、コンピュータに負担をかけるような処理を実行しても、ほかの処理に影響がないようになっています。1台のコンピュータとはいえ、中の人がたくさんいるようなイメージです。
多くの企業においていまだ利用されており、主に「基幹系」と呼ばれる、その企業にとっての最重要業務システムにおいて利用されていることが多いです。たとえば銀行であれば「勘定系」と呼ばれるシステムがこれに当たります。
ただし、大型コンピュータは導入コストおよび維持コストが高くなる傾向があります。また、大型コンピュータのパワーが不足した場合に、もう1つ別な機器を購入することは非常に高コストであり、拡張性に限界があるというデメリットがあります。昨今ではより安価かつ拡張性の高い仕組みとして、分割型が用いられるようになりました。この仕組みについて次項で説明します。
■メリット
- 1台の大型コンピュータだけで済むため、構成がシンプルとなる
- 大型コンピュータのリソース管理や冗長化により、信頼性が非常に高く、かつ高性能である
■デメリット
- 大型コンピュータの導入コストと維持コストが高い
- 拡張性に限界がある
1.2.2 分割型アーキテクチャ
分割型アーキテクチャは、図1.4のように、複数のコンピュータを組み合わせて1つのシステムを構築する仕組みです。
大型コンピュータは信頼性が高く高性能でしたが、昨今では小型コンピュータでも、十分な性能を実現することができるようになりました。また、大型コンピュータに比べ、小型コンピュータは圧倒的に安く購入できます。その価格差は、100倍といったレベルになることもあります。
ただし、1台のコンピュータとしての信頼性は、大型コンピュータには及ばない面があります。この欠点を補うため、分割型アーキテクチャでは複数のコンピュータを利用することで、1台が壊れた場合の信頼性を担保します。
分割型アーキテクチャは、標準的なオペレーティングシステムや開発言語を利用することから「オープン系」とも呼ばれます。また、複数のコンピュータをつなげて利用することから「分散システム」と呼ばれることもあります[※1]。
分割型のメリットは、1つ1つのコンピュータの信頼性は低くてもよいため、より安価なものを利用することで、全体的なコスト削減につながることです。また、より多くのコンピュータを利用することでシステム全体の性能が向上するため、拡張性が高いという特徴があります。
しかし、台数が増えることで、それを日々運用管理していくための仕組みが複雑になる傾向があります。また、各サーバーが壊れた場合の影響範囲を極小化するために、サーバーごとの役割について、より細かく検討する必要があります。サーバーを分割する一般的な方式として、垂直型と水平型の2つがあります。これらについて、次に説明します。
■メリット
- より安価にシステムを構築できる
- サーバー台数を増やせるため、拡張性が高い
■デメリット
- サーバー台数が増えることで、管理の仕組みが複雑となる
- 1台壊れた場合の影響範囲を極小化するための仕組みの検討が必要
物理サーバーと論理サーバーの違い
分割型アーキテクチャで利用されるコンピュータは「サーバー」と呼ばれます。サーバーという言葉は、コンピュータそのもの(ハードウェア)を指すこともありますし、そのコンピュータで動いているソフトウェアを指すこともあります。
サーバーという言葉は、本来「給仕する人」、つまりレストランのウエーターと同義です。ITインフラにおけるサーバーも、注文を受け取り、サービスを提供する役割があります。
図1.5をご覧ください。たとえば、インターネットにアクセスした際に、ユーザーからの入力およびHTMLの生成を担うのは、サーバー上で稼働するソフトウェアである「Webサーバー」です。大量のデータを保存し、リクエストに応じてデータを提供するのはデータベース機能を提供する「DBサーバー」です。
※1 分散システムという言葉は、つながりを表わすだけでなく、別の意味を持っています。興味のある方は、調べてみてください。
コンピュータそのものを指す場合は「物理サーバー」と呼びます。特にIntel社のx86系のサーバーは、Intel Architecture(IA)を採用していることから「IAサーバー」と呼びます。このIAサーバーは、皆さんがお使いのパソコン(PC)と、基本的なアーキテクチャが同じです。サーバーをイメージしにくい方は、「モニターのないPC」をイメージしてみてください。
WebサーバーやDBサーバーが、1つの物理サーバーの上で動いていることがありますし、それぞれが個別の物理サーバーの上で動いていることもあります。