「サーバー」という言葉から何をイメージするでしょうか?
ウォーターサーバー!
ビールサーバー!
まあ、そんな声も聞こえなくはないですが(^^;)
よく見る模式図だとパソコンがクライアント、四角い箱がサーバー…というイメージではないでしょうか?
たとえばこんなイメージ:
じつはこれは一つの見方であって、これだけではありません。
「サーバー」と言ったときに、実は2つの意味があります。
1つはみなさんご存じの、ハードウェア(コンピューター)としてのサーバー。
2つ目はソフトウェア(プログラム)としてのサーバーです。
ハードウェアとしてのサーバー
ハードウェア、機械としてのサーバーはなかなか見る機会がないと思いますが、機械の構成としてはみなさんお使いのパソコンとほぼ同じです!
CPUがあって、メモリがあって、HDD、ネットワークなど、構成としてはほとんど違いがありません。
Windowsを入れて、Wordを入れて文章の編集もできるし、ゲームを入れて遊ぶこともできます。
じゃあ何が違うか?
それはネットワーク越しの管理機能だったり、CPUにセキュリティ機能が入っていたり、HDDが長期間運用しても壊れにくい、とか、サーバーならではの仕様になっています。
ですので、そういったセキュリティや長期運用ということを考えなければみなさんのパソコンもふつうにサーバーとして使うことは可能なんです。
ソフトウェアとしてのサーバー
ここからが一番聞いてほしい内容なのですが、サーバーの本質は「ソフトウェア」です。
サーバーを何の用途で使うかによって入れるソフトは変わってくるのです。
ここでは、ハードウェアとしてのサーバーを「サーバー機」、ソフトウェアとしてのサーバーを「サーバーソフト」として区別することにします。
サーバー機をファイルサーバーとして使いたければファイルサーバーソフトをインストールします。
Webサーバーとして使いたければ例えば「Apatche HTTP Server」(Webサーバー)をインストールし、ファイル転送用に「FTPサーバー」をインストールします。また遠隔管理用に「SSHサーバー」をインストールします。
ここで気づいてほしいのは、一つのコンピューターに複数の「サーバー」ソフトを入れることができるということ。
ご説明したWebサーバーの例では3つの「サーバー」ソフトが入ります。
ところで、サーバー機を特定するためにはIPアドレスが必要です。
IPアドレスは通常1マシン(コンピューター)につき一つ。
IPが192.168.0.123だとして、サーバー機は特定することはできますが、どのサーバープロセス(ソフトが実行されている状態のことを「プロセス」といいます)にアクセスすればいいのかはわかりません:
となると、一つのサーバー機の中の複数のサーバーソフトウェアはどうやって区別されるのでしょうか?それを区別するのがポート番号なのです!
ポート番号まで指定してあげればサーバープロセスを特定することができるのです:
ここに挙げたサーバーソフトのポート番号をご紹介すると:
サーバー種別 | ポート番号 |
---|---|
Webサーバー | 80 |
FTPサーバー | 20,21 |
SSHサーバー | 22 |
となります。
実はみなさんお使いのウェブブラウザ(ChromeとかFirefox、Edge、IEなど)もアドレスバーに入れるURLには自動的にポート番号が足されています。たとえば
www.example.com
にアクセスしようとすると自動的に
www.example.com:80
と変換されます。
まとめ
「サーバー」にはハードウェア、ソフトウェアの2つの意味がある。
ハードウェアとしてのサーバーはパソコンとあまり変わらない。
ソフトウェアとしてのサーバーは一つのマシンに複数入れることができる。
マシンを特定するのがIPアドレス、サーバーソフトを特定するのがポート番号。
補足情報
サーバーOS
サーバー機に入るOSは大別して
- Unix/Linux系OS
- Windows Server(サーバー向けWindows)
Windows Serverを入れることもUnix/Linuxを入れることも可能です。
サーバーソフト
サーバーソフトの呼び方はOSによって異なります。
- Unix/Linuxではデーモン
- WindowsではWindowsサービス(単にサービス、と呼ぶことも多い)
なお、デーモンやWindowsサービスなどのサーバーソフトのことを「サービス」と総称することもあります。
ファイルサーバー
Windowsの場合パソコン向けWindows、サーバー向けWindows Server問わず標準でファイル共有の機能が入っています。
また、「NAS」というファイルサーバーに特化したハードウェア製品もあります。
仮想環境
最近ではAWSとかGCPなどのサービスで「仮想サーバー」が使えるようになっていますが、初心者の方にとっては「サーバーもよくわからないのに仮想と言われても…」という状況でしょうね。
ここで言いたいのは、仮想サーバーの勉強は後回しにしてください、ということ。
本記事の説明ですと一つのサーバー機には一つのIPアドレスが振られる、というご説明でしたが、仮想サーバーになると状況が変わります。一つのサーバー機の中に仮想のサーバー機がいくつも入っているイメージになります。こうなると一つのサーバー機にIPが複数割り振られる状況になるので、実機の(物理的な)サーバーを理解してから仮想サーバーの勉強をしてみてくださいね、とういことです。