Server

サーバーとは?

サーバー(server)は簡単に言えば、ネットワーク上のデータ保管場所である。
server には「提供する場所」という意味がある。インターネットなどのネットワークを通じて、利用者の要求(リクエスト)に応じ、それに対応するデータを提供するコンピューターを「サーバー」と呼ぶ。
サーバーは Web ページの閲覧、メール、SNS、ネットショッピングなど、インターネットに関連するあらゆるサービスで利用されている。

サーバーとクライアント

ネットワークでデータを提供する側をサーバー、データを利用する側をクライアント(client)という。
Web サイトを閲覧したりメールを送信したりするとき、クライアントからの要求に対して、サーバーから動画ファイルや HTML ファイルなどのデータファイルが返される。
クライアントの要求に応じて加工されたファイルを送ったり、データを保存したりすることがサーバーの主な役割である。

アップロードとダウンロード

クライアントがサーバーに情報を提供することを「アップロード(Upload)」という。
(例) 動画投稿サイトに動画を投稿する、SNS に写真を上げる

一方、クライアントが提供元であるサーバーからファイルを受け取ることを「ダウンロード(Download)」という。
(例) インターネットで公開された画像や動画をコンピューターに取り込む

サーバーとネットワークの仕組み

サーバーの役割をイメージできるように、ホームページを作成してから訪問者に閲覧されるまでの流れを例に見てみよう。

ホームページデータをサーバーにアップロードする

単に自分の PC にホームページのデータがあるだけでは、インターネット利用者に見せることはできない。
ホームページを閲覧できるようにするには、そのホームページのデータをサーバーに保存する必要がある。

ユーザーがブラウザーに URL を入力するとサーバーにリクエストが届く

インターネット利用者がホームページ URL を Google Chrome のようなブラウザーに入力し、Enter キーを押すと、サーバー側にリクエストが送信される。

  • URL

    • Web ページの位置を示す文字列で、アドレスとも呼ばれる。
    • 現在のサイトのトップページの URL は「https://www.devkuma.com」である。
  • ブラウザー

    • インターネットを通じてホームページ(Web サイト)を PC やスマートフォンで閲覧するためのソフトウェア。
    • Google Chrome、Safari、Internet Explorer などが有名である。

リクエストに応じてサーバーはユーザーの PC やスマートフォンにデータを提供する

サーバーは URL に対応するページのデータを取り出し、HTML や画像などのファイルをユーザーの PC やスマートフォンなどの端末に提供する。

さらに、Google や Naver などの検索エンジンを通じてアクセスできるようにするには、サーバーにホームページのデータをアップロードするだけでなく、インデックス(登録)が必要である。
単にホームページのデータをサーバーにアップロードしただけでは、Google や Naver などでいくら検索してもそのサイトは検索されない。
ブラウザーに URL を直接入力する代わりに検索エンジンを通じてサイトにアクセスできるようにするには、検索エンジンのデータベースにホームページのデータをインデックス登録することが必須である。

サーバーの種類

コンピューターとしてのサーバーは、大きく「物理サーバー」と「仮想サーバー」の 2 種類に分けられる。

物理サーバー

物理的に存在する 1 台のサーバーで、「共有サーバー」と「専用サーバー」の 2 種類に分けられる。

専用サーバー

1 台のサーバーを専用で使うため、他の利用者の影響を受けないことや OS を変更するなどのカスタマイズが可能で、使い方の自由度が高い点が利点である。ただし、適切にカスタマイズして運用するには、ある程度の専門知識が必要である。

共有サーバー

いわゆるレンタルサーバーで、1 台の物理サーバーを複数の利用者が共有して使用する。 費用を抑えて利用でき、メンテナンスの手間がかからないという利点はあるが、複数の利用者が共有して使うためカスタマイズしにくく、他のユーザーの利用状況によって処理に影響が出ることがある。またサーバーが故障すると、多くの利用者に影響を与える可能性がある。

仮想サーバー

1 台の物理サーバー上で複数の OS を動作させ、複数のサーバーと見なして稼働させるサーバーで、「VPS」と「クラウドサーバー」の 2 種類に分けられる。

VPS サーバー

VPS は Virtual Private Server の略で、仮想専用サーバーとも呼ばれる。
共有サーバーと同じように 1 台の物理サーバーを共有するが、仮想的に個別の環境が構築されているため、他の利用者の影響を受けにくいという利点があり、カスタマイズ性も高い。

クラウドサーバー

クラウド環境に作られたサーバーである。 VPS と同じく仮想専用サーバーを構築するが、サーバー容量や処理性能などのリソースがプランごとに固定される VPS よりも、リソースが固定されないクラウドサーバーは、予期せずアクセスが急増した場合でも迅速にリソースを増やせるなど、柔軟性が高いという特徴がある。代表例として AWS、GCP がある。

サーバーの用途

前で紹介した 4 種類のサーバーは、コンピューターとしてのサーバーである。
それに対して、用途に応じてさまざまな機能の提供を実現するものが、ソフトウェアとしてのサーバーである。

Web サーバー

クライアントからのリクエストに応じて Web 上のデータをクライアントへ返すサーバーで、Web サイト(ホームページ)を構成する HTML ファイル、ページ内の構成やデザインを調整する CSS ファイル、画像ファイルなどが含まれている。 保存された Web ページの情報をクライアントが要求すると、該当するデータを返して送信する。

メールサーバー

メールを送受信するときに使われるサーバーである。
送信用と受信用でサーバーが分かれており、送信サーバーには SMTP サーバー、受信サーバーには IMAP や POP3 サーバーが使われている。 電源を切っている間にメールが送られた場合でも、再び電源を入れれば問題なく受信できるのは、送られてきたメールのデータがメールサーバー内に保存されているためである。

DNS サーバー

DNS(Domain Name System)サーバーは、IP アドレスとドメインを結び付けるために使われるサーバーである。
IP アドレスはネットワークに接続された機器に割り当てられた固有番号で、Web 上の住所のようなものである。しかし数字の列は人には覚えにくいため、その数字の列に名前を付けたものがドメインである。

ドメインや DNS サーバーについては、JPRS(株式会社日本レジストリサービス)という全国の jp ドメインを管理している企業が配布している解説漫画が分かりやすい。

ファイルサーバー

ネットワーク上でデータを共有および利用するために使うサーバーである。
ファイルサーバーを通じて、複数のサーバーやさまざまな OS 間でデータ共有を円滑に行える。

データベースサーバー

データベースを搭載し、データベース管理システムが動作するサーバーで、クライアントの要求を受けてデータベース内で整理された情報を検索し、処理結果を返す。

FTP サーバー

FTP(File Transfer Protocol)サーバーは「ファイル転送プロトコル」とも呼ばれ、Web サーバーとファイルを送受信するために使われる。
リクエストがあるときだけファイルを送る Web サーバーとは異なり、FTP サーバーではクライアントからサーバーへアップロードしたり、サーバーからダウンロードしたりできる。 Web サイト作成時には、Web サーバーに新しいファイルをアップロードするために FTP サーバーが使われる。

SSH サーバー

SSH(Secure Shell)サーバーは、クライアント情報を暗号化するサーバーである。
初期のリモート通信方法では個人情報が暗号化されず、情報が流出してしまう場合があったが、パスワードや暗証番号などの個人情報を送信するときに、SSH サーバーによって暗号化してから安全にリモート送信できるようになった。