IT初心者向けにざっくりとサーバーとは何か?を分かりやすく解説します。
結論から言ってしまうと、サーバーとは何かしらの情報・処理を提供するコンピュータのことです。このページでは、サーバーって結局何?Webサーバーとか、メールサーバーって何?という素朴な疑問にお答えしつつ、サーバーに対する基本的な理解を深めていきます。
IT初心者の方でも知らないと恥ずかしい超基本知識ですので、是非最後までご覧ください。
それでは早速解説を始めます。
サーバーとは
サーバーとは何か?実は、この答えは非常にシンプルです。
サーバーとは何かしらの情報やサービスを提供するコンピュータのこと。つまり、あなたが今お使いのノートパソコンも、他のノートパソコンに情報を提供するために利用できるようにすればサーバーと呼ぶことができます。
本来、サーバー(server)とは「奉仕する」「サービスを提供する」といった意味を持つ単語です。
IT業界で単に「サーバー」と言った場合、情報やサービスを「提供する」コンピューター全般のことを指します。
サーバーと言うと、大きな黒色の物体を思い浮かべてしまいがちですが、実はこれは半分正解で半分間違い。あくまでも、何らかの情報やサービスを提供するコンピュータであれば、それはサーバーと呼んでしまってOKです。
Webサーバーとか、メールサーバーとか、データベースサーバーといっても、究極的にはただのコンピュータ。このコンピュータに、Webの機能を備えたソフトウェアをインストールしたものが、Webサーバーと呼び、データベースの機能を備えたソフトウェアをインストールしたものとデータベースサーバーと呼んでいるだけ。
サーバーとして利用する機器に「Apache HTTP Server」などのWeb用のソフトウェアを入れれば、Webサーバー。「MySQL」や「Oracle Database」を入れれば、データベースサーバーと呼ばれるようになります。
実は、皆さんが想像するパソコンにもちょっとした設定を行うだけで、Webサーバーやデータベースサーバーとして利用することが可能なのです。
ここでは、より根本的なところからサーバーの役割とその存在意義をイメージできるよう、サーバーが生まれた歴史的背景を簡単に概説していきます。
より本格的にサーバー回りの知識を身につけたいという方は、以下の書籍を覗いてみてください。
サーバーの歴史
サーバーという概念が誕生するまでの簡単な歴史を解説しつつ、なぜサーバーが必要になったか?サーバーの存在意義は?というところを解説します。
ちょっと遠回りに感じますが、歴史的な経緯を知るとサーバーの役割や意味がよくわかります。
黎明期のパソコン利用:スタンドアロン
先ほど、「お使いのノートパソコンもサーバーとして利用することが可能」と説明しましたが、まずはそのパソコン自体の話から。
パソコン(パーソナルコンピューター)が誕生した当初、実は、パソコンは現在のようにインターネットに接続して利用するようなものではなく、それ単独(スタンドアロン)で利用する形で広く使われていました。今でいうところの、電卓のような使い方をイメージしてもられば良いかと思います。
コンピュータがネットワークに接続しないで利用される状態をスタンドアロンと呼びます。
今で言うところの「機内モード」のような状態で、他のコンピュータや周辺機器などと一切動作の関連がない状態を表します。電卓もその意味では、他の電卓と接続されておらず1台が単独で動作しているという意味でスタンドアロンで使われているということができます。
他のコンピュータとデータのやり取りが必要になる場合には、磁気テープなどの外部媒体を経由してデータの受け渡しをするなど、基本的にはコンピュータはスタンドアロンの状態で利用されていたのです。
パソコンが普及した当初の性能(パソコンが処理できること)は、簡単な計算や文書の作成がメインであり、扱えるデータ量も今とは比べ物にならないレベルで小さかったため、スタンドアロンの使い方でも特に不自由は発生しませんでした。
コンピュータ間のデータのやり取りをフロッピーディスクやUSBメモリなどで行う形態をスニーカーネットワークと呼びます。
ケーブルの代わりに、実際に歩いて(スニーカーを履いて)データをやり取りすることからこの呼び方が生まれました。
コンピュータネットワークの誕生
しかし、徐々にパソコンの性能が進化するにつれて、スタンドアロンのまま使い続けるには無理が生じてきます。
そもそも1台のパソコンで扱えるデータ量には限りがあることや、数十台のコンピュータが外部媒体を通してデータ共有を行うことには効率性の観点から無理があります。
そこで、誕生したのがコンピュータネットワークという概念。スタンドアロンで動作しているコンピュータ同士を相互に接続し、それぞれのコンピュータが持つリソースを相互に利用しあえる形とするのです。
コンピュータ同士を接続しておけば、例えばコンピュータAにしかないデータをコンピュータBが読み取ってデータの操作をしたり、コンピュータAがコンピュータBとコンピュータCに対して情報を一斉送信したりすることが可能になります。
このようにコンピュータをネットワークで接続しておき、どのコンピュータからでも同じようにお互いのコンピュータのデータやプログラムを共有できるようにしたのです。
サーバーとクライアント
コンピュータネットワークの登場とともに誕生したのがサーバーという概念です。
先ほど「コンピュータAにしかないデータをコンピュータBが読み取ってデータの操作」をすると説明しましたが、このようにデータや何らかのサービスを提供する側のコンピュータAのことを「サーバー」、逆にそれらのデータ・サービスが提供されるコンピュータBのことを「クライアント」と呼ぶようになります。
これが、サーバーという概念のはじまり。
本文冒頭で「サーバーとは何かしらの情報やサービスを提供するコンピュータのこと」と説明しましたが、まさにその意味がよくわかるかと思います。
サーバー専用機の導入
コンピュータとネットワークの仕組みはさらに進化を続けます。
先ほど説明した、コンピュータ同士を接続するだけのコンピュータネットワークでは、どのサーバーにデータがあるのか?どのサーバーにプログラムがあるのか?という情報管理が難しくなってしまうというデメリットが存在します。
お互いがサーバーでありクライアントでもあるコンピュータネットワークでは、データの管理だけではなく、コンピュータのリソース的な観点からも非効率。データを保管しておくだけのサーバーに、文章作成ソフトやメール機能を付けておくのは意味がありません。
ここで登場するのが、サーバー専用機です。サーバー専用機とは、その名の通り「サーバーの役割だけを持つコンピュータ」のこと。無駄な機能を省いて、サーバーとしての役割に特化したコンピュータをネットワーク上に一台置いておくような使い方をするようになります。
この形が現代のネットワークの基本構成。このサーバー専用機は、そもそも画面すら必要としないので、いわゆる黒い大きな物体のような形になります。
これを我々は単にサーバーと呼びますが、あくまでもコンピュータの役割として「サーバー」と呼んでいるにすぎません。
いずれにせよサーバーとは、何かしらの情報やサービスを提供するコンピュータのことであるということを頭に入れておきましょう。
現代のシステムアーキテクチャの主流―。「クライアント」と「サーバ」の2つから成り立つシステムのことを「クライアントサーバシステム」と呼びます。
以下記事では、クライアントサーバシステムについて詳しく解説しています。合わせてご覧ください。
サーバーの2つの意味
これまで「サーバーとは、何かしらの情報やサービスを提供するコンピュータのこと」であると何度も説明してきましたが、より実務的な観点から言うと、サーバーは2つの意味で使い分けられています。
1つが、本来の意味「サービスや機能を提供する役割」としてのサーバー。もう1つが、いわゆる実際の機器を指して利用されるサーバーです。
(ここが、恐らくこのページにたどり着いた人の大半が混乱しているポイントです。)
つまり、「サーバー」という言葉が文脈に応じて2つの意味で使い分けられているということ。
「Webサーバー」「データベースサーバー」などという場合は、前者の役割に重きを応じた言い方。「タワーサーバー」や「ラックサーバー」という場合には、実際の機器を指しています。
ある程度システムの知識や、実務経験がついてくれば何となくどっちの意味で使われているサーバーなのか?は把握できますが、慣れるまではわからなくなったら確認するのが無難です。
サーバを実際に作ってみたい方は
サーバやネットワーク関連の基本的な仕組みや処理の内容を詳しく知るには、自分で1からWebサイトを作成してみるのがおすすめです。
以下では、WordPressを用いて1から自分のサイトを作成する方法を解説しています。最初は、何をしているかわからない部分も多いのが実情かもしれませんが、自分で自分のサイトをバージョンアップしたり改修・バグ調査をする中で、ある程度の実践的な知識を身に着けることが可能。
初心者向けにハードルを下げて解説した入門記事ですので、是非ご活用ください。
また、より実践に即した形で知識を習得したいという方は以下の書籍をご参照ください。