「サーバー」をざっくり説明します
このコラムはITエンジニアを目指して就活をしている人を対象に、さまざまな情報をわかりやすく解説していきます。
普段からスマートフォンなどを使っている皆さんであれば、一度は「サーバー」という言葉を聞いたことがあると思いますが、そのサーバーという言葉からどんなことを想像しますか?
サーブ(Serve)は給仕する、つまりサービスを提供するという意味ですね。そしてサーバー(Server)は、Serveに人や物を表す「er」をつけた単語です。
このサーバーという言葉はITの世界で頻繁に使われるようになりましたが、その使われるようになったのは「クライアントサーバー」という言葉がきっかけかもしれません。
クライアントサーバーシステムとは
クライアントは直訳するとお客様や利用者という意味です。サーバーはお客様に奉仕する、利用者の要求にこたえるのが仕事である人・物ですね。
流れとしては、
- サービスを利用する側である「クライアント」が何らかの処理要求をサーバーに出す
- サーバーはその処理を行なってクライアントに結果を返す
の繰り返しとなります。
クライアントサーバーシステムの典型例
わかりやすい例が、スマートフォンの検索アプリでしょう。
検索アプリで特定のキーワードを入力すると、ほどなくしてその結果が画面に表示されますよね。今どきは一瞬で結果が表示されますのでスマホが答えてくれているような印象を持つかもしれませんが、実は裏側ではさまざまな処理が行われています。
スマホの検索システムの場合、クライアントは当然スマホですが、検索処理の要求先はアプリの開発元が設置しているサーバーになります。そのサーバーは世界のどこかにありますが、私たちがそれを意識することはほとんどありません。
スマホからの処理要求を受け取ったサーバーは、該当するキーワードが含まれるデータを探して、スマホの画面で見やすくなるような処理をしたうえで、インターネットを経由して結果のデータをスマホに送ってくれます。
データを受けとったスマホは、私たちが見やすいようにデザインやレイアウトを施して画面に表示してくれます。
パソコンのWebブラウザを使って、検索サイトを利用したり、ショッピングサイトを利用する場合も同じことが行われています。
利用者であるクライアントの要求にサービス提供者(サーバー)側がこたえる一連の流れがクライアントサーバーシステムです。
ちなみに、かつては価格も処理性能も高い1台のホストコンピューターがすべての処理を行う集中処理が一般的でしたが、低価格で処理性能の高いコンピューターの登場により、複数のコンピューターが処理を分け合う分散処理が現在の主流になっています。
例にあげたクライアントサーバーやWebシステムも、分散処理システムになります。
ハードウェアとしてのサーバー、ソフトウェアとしてのサーバー
サーバーには複数の意味合いがあります。
一つ目は物理的なハードウェアとしてのサーバーです。
サーバーとして使われることを目的に利用する専用のコンピューターのことです。
高性能なCPUや高速で大容量の記憶領域(メモリ、HDDやSDDなど)を搭載したカスタムコンピューターから、一つの基盤に機能を集約した安価なシングルボードのコンピューターまで、サーバーとして利用できるコンピューターはさまざまあります。
二つ目はソフトウェアとしてのサーバーです。
サーバーソフトウェアといったほうがわかりやすいかもしれません。
サーバーソフトウェアの種類はたくさんありますが、代表的なものとして、
- Webサーバー(ホームページを見られるようにします)
- メールサーバー(メールサービスを提供)
- ファイルサーバー(ファイルの共有サービスを提供)
- プリンタサーバー(プリントサービスを提供)
- FTPサーバー(ネット上でファイルのやり取りを実現します)
- データベースサーバー(データベース機能を提供します)
- アプリケーションサーバー(さまざまな機能を提供します)
などがあります。
ハードウェアとしてのサーバー専用コンピューターに導入するのが一般的ですが、1台のコンピューターで複数のサーバーソフトウェアを稼働させる場合や、ネットワーク上にある複数のコンピュータが目的別にサーバーとして稼働し、相互に連携する場合もあります。
クラウド時代のサーバー
かつてはサービスの提供者は自前でコンピューターを調達し、企業であれば会社の中にサーバーコンピューターを設置して管理していました。
21世紀に入ってからは、コンピューターやインターネットを取り巻く技術の進化や発展により、物理的なハードウェアを自前で用意せず、ネット上で利用できる仮想のコンピュータを手軽に利用できる時代になりました。
サーバーだけでなく、ストレージ(記憶媒体のこと)やネットワークも仮想化の動きが加速し、そうした仮想化技術によって構築されたITインフラを提供するクラウドサービス事業者が登場し、さまざまな場面で利用されています。アマゾンのAWS、マイクロソフトのAzure、グーグルのGoogle Cloudなどが代表的です。
多くの企業がクラウドに情報資産を保管しインターネット経由で利用する、いわゆるクラウドネイティブといった動きも増えています。
クラウド時代のエンジニア
クラウド時代のITエンジニアを目指すなら、自社の手元にある/クラウド上にあるを問わず、サーバーがどんなものでどのように利用されているのかをしっかりとおさえておく必要があるでしょう。
5GやIoTといった新技術によって、今までにないような高画質の写真や映像がスマホ上のサービスでも扱われるようになることで飛躍的にデータ量(いわゆる「ギガ」です)が増えるでしょう。それに伴って、多くのデータのやり取りを支えるITインフラの需要も増えていくことになります。
インフラエンジニアが活躍できるのはまさにこの領域です。ハードウェアとしてのコンピューターの知識、サーバーの基本ソフトに使われるLinuxについての知識、ネットワークに関する知識、セキュリティの関する知識、サーバーソフトウェアの構築など広い領域を扱います。
以上のように、多くの役割をこなすサーバーの重要性はますます高まっていきます。
サーバーをしっかり理解し扱えるようになって、サーバーの専門家とも言えるインフラエンジニアを目指してみるのはいかがですか?