支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡


そもそもサーバーとは何か?

現代ではPCやスマホ、タブレットなどでインターネットに接続されていることが当たり前になっています。メールや動画サイト、そしてSNSやメッセージングアプリなど、日常生活で使っているサービスやツールはほとんど全てがサーバーを使用しているのが現状です。

では、そもそもサーバーとは何なのでしょうか?知らない方にもわかりやすいように説明すると、サーバーとは「要求されたユーザーからの指示を処理し、求められる情報や反応をユーザーに提供する機器、またはソフトウェア」ということになります。

イメージとしてわかりやすいのは「サーバールーム」と呼ばれる部屋に大量に陳列された巨大なPC(ワークステーションとも呼ばれます)でしょう。PCそのものはデータを格納しておくための「箱」として扱われ、インストールされているサーバーソフトウェアがインターネットから大量の指示を受け取り、格納されたデータの中からそれぞれの指示に合致する情報や答えを、ChromeやMicrosoft EdgeのようなWebブラウザを通じてユーザーに提示するのがサーバーの役割です。

いくつかあるサーバーの種類

サーバーにはいくつか種類があり、「Webサーバー」「メールサーバー」「ファイルサーバー」「データベースサーバー」など様々な働きを担っています。

このようにそれぞれの働きによって分類されるサーバーの種類もありますが、大きく分けるとサーバーの基本形は2つあります。それが「サーバーOS」と「ミドルウェア」と呼ばれるものです。

サーバーOS

「OS」と聞くと一般的にはPCであればWindowsやMacOS、スマートフォンなどであればiOSやAndroidなどを思い浮かべる方も多いのではないでしょうか。

これらのOSはいわゆるコンシューマー向け=一般用途で使われるコンピューターなどで使われる機能を持ったOSで、想定されている使い方も家庭や個人の使用に特化されているものがほとんどです。しかしサーバーの場合は主に業務や事業用途で使われることになるため、個人用途で想定された機能などは必要がない場合もあります。

そのため、サーバーとして機能させるために必要な作り方をされたサーバー用のOSが存在しており、それがサーバーOSと呼ばれるものです。一般的にサーバーOSは個人用途のOSと比較してネットワークに関する機能やセキュリティに関する機能に優れており、また動作安定性でも個人用OSよりも優れているという特徴があります。どちらもOSであるため、コンピューターを動かすための基本機能を搭載していることは共通していますが、サーバーOSと個人用OSの最大の違いとして、GUIが存在しない場合がある、というものがあります。

「GUI」とは「Graphical User Interface」の略で、視覚的に見てわかりやすい形で形成された「OSの見た目」のことを言います。デスクトップにアイコンがあり、アイコンをクリックするとアプリが立ち上がる、という動作はおなじみですが、この「デスクトップにアイコンがある」という状態が「GUIが存在している」状態だと考えてください。

それに対して、サーバーの場合は常日頃から人が操作するわけではありません。通常はサーバーラックやサーバールームに設置されており、メンテナンスなどは必要ですが基本的には電源が入っている限り無人の状態でも動作するようになっています。無人の状態で動作するため、人が操作するのは必要最低限となり、そうであればGUIは必要ないと考えられるケースも多数存在します。操作はコマンドを直接打ち込んで行われることもあるため、サーバーOSにはGUIが搭載されていない場合も多いのです。

Windows系OSとUNIX系OS

「OS」という言葉を聞いた時に多くの人が想像するのはiPhoneなどに搭載されている「iOS」やAndroidスマホに搭載されている「Android」、またPCに搭載されている「Windows」やMacに搭載されている「MacOS」のことでしょう。しかしこれらのOSとサーバーOSで異なるのは、前述の通り「GUIが搭載されていないことがある」という点です。サーバーOSには大きく分けてWindows系サーバーOSとUNIX系サーバーOSの2種類があります。

これらはどちらもサーバーを機能させるための基本OSであり、サーバーを構築する場合にはどちらかの系統のOSを使うことになるわけですが、Windows系サーバーOSとUNIX系サーバーOSには互換性がありません。どういうことかと言うと、サーバーにインストールして機能を付加するために、サーバーでもアプリを使うのですが、Windows系サーバーOS用のアプリとUNIX系サーバーOS用のアプリは別々で、どちらでも使えるアプリというのは基本的に存在しないのです。

そのため、Windows系サーバーとUNIX系サーバーではそれぞれにアプリを用意しインストールする必要があります。通常は両方のサーバーを同時に運用することは珍しいことですが、仮に何らかの理由でWindows系サーバーからUNIX系サーバーに乗り換えたりする事態になった場合、このようなアプリの違いや互換性の無さが与える業務への影響については十分に検証しておく必要があります。

どちらが一般的なサーバーOSなのか、という点は気になるところでしょう。これまでは傾向としてUNIX系サーバーOSのほうがシェアとしては高い傾向がありました。サーバー以外のUNIX系OSはもともとネットワークへの接続に適した構造になっていると認識されていて、この特徴を活かした形でサーバー系OSでもその発展形や改良型のUNIX系サーバーOSが多く採用されてきたという経緯があります。

また、UNIX系OSの場合はサーバー向けも含めて対応するアプリの多くがフリーソフトである点もシェアを高めた原因の一つだと言えるでしょう。UNIX系OSのもう一つの特徴としては「無料のものもある」ということです。UNIXはもともとAT&Tベル研究所で開発されたOSですが、その初代UNIXが派生を続々と生んで現在に至っています。つまりUNIX系OSは単一の製品のことを表すわけはなく、様々な派生を含んだ数種類のUNIX系の流れをくんだOSの総称として使われる言葉でもあります。

UNIX系のOSに無償のものがあるという点は現在でも変わっておらず、ネットワークの接続に大きなアドバンテージを持っているという特徴も変わりません。そのため現在でもサーバー系OSとしてはUNIX系OSのシェアが大きくなっており、UNIX系OSを学ぶエンジニアも多いのです。

Windows系サーバーOSはPC向けのWindowsと同様にMicrosoftが開発・販売する製品ですが、サーバーOSとしてのWindows OSは「Windowsサーバー・スタンダード・エディション」と「Windowsサーバー・データセンター・エディション」の2種類に分かれています。データセンター・エディションはその名の通り大規模なデータセンターを運用する場合や、大容量のデータベースを構築・運用する場合に最適とされています。通常の使い方であればスタンダード・エディションが最適であろうという意見が大半を占めているのが現状です。

ミドルウェア

サーバーOSが決まったらサーバーの構成が全て決まるわけではありません。個人向けPCでそれぞれ使うアプリケーションが異なるように、サーバーOSでも用途によって使うアプリケーションが異なります。つまり、サーバーOSに「乗せて」使用するためのアプリケーションが存在します。OSとアプリケーションの考え方はサーバーも個人向けPCも同様で、「OSがコンピューターを制御し、アプリケーションが機能を担当する」という流れは変わりません。この流れにおいて「OSとアプリケーションの間を取り持つ機能を担うのがミドルウェアと呼ばれるものです。

OSとアプリケーションだけが存在するコンピューターがあるとしたら、アプリケーションは機能のみを担当する役割であるため、その制御や管理をOSが行うことになります。しかし一方で、OSはコンピューター全体の制御と管理も担っているため負担が大きくなってしまいます。このような状況を改善するためにミドルウェアが必要になると考えればわかりやすいかもしれません。つまり、OSがコンピューター本体の制御と管理に集中でき、なおかつアプリケーションが本来の機能を発揮できるようにお互いの動作の補佐を行うために存在するのがミドルウェアだということになります。

ミドルウェアの種類

ミドルウェアにも種類があり、大きく分けて3種類のミドルウェアに分類されます。

1つ目は「Webサーバー」。普段閲覧するWebサイトなどを、ユーザーのリクエストに応じて表示させる機能を担います。テキストが中心となって構成されるブログなどが代表的なものになりますが、動画の再生や音楽の再生などを含めた「動的なコンテンツ」の閲覧を行うためのサイトにもWebサーバーが使われます。ただし、このような「動的なコンテンツ」の利用を行う場合は次に説明する「アプリケーションサーバー」との連携が必要になります。

2つ目は「アプリケーションサーバー」。主にPHPやJavaScript、Rubyなどで構築されたアプリケーションを実行し、実行内容をWebサーバーを通じてユーザーリクエストに反映させる機能を担っています。どちらかと言うとWebサーバーを補佐するような役割を担っており、Webサーバー単体では実行不可能な「動的コンテンツ」の生成を行うことになります。さらに「動的コンテンツ」の生成を行うために「データベースサーバー」との連携も行います。

3つ目が「データベースサーバー」。SQLなどのデータベース管理用言語を用いてアプリケーションサーバーからの要求を実行し、必要な情報を抽出・選別してアプリケーションサーバーに返し、最終的にWebサーバーを通じてユーザーが閲覧することになります。それぞれのユーザー情報に合わせて必要な情報が異なることもあるため、顧客情報やユーザーごとの過去の行動履歴などを管理し、それをデータベース管理言語で管理し実行する役割を担います。

サーバーの構築とは?

ここまではサーバーとは何かということと、サーバーOSには種類があるということを紹介してきました。ここからは実際にサーバー環境を構築するということが何なのかについて解説していきます。

そもそも「サーバー構築」とは、ある特定の役割や機能を持つサービスやシステムそのものを作り上げることを指しています。具体的に言うと、動画サイトを作りたい場合は動画データを格納し、動画を再生するアプリケーションが必要となり、再生される動画を閲覧するためのWebサイトが必要になります。この場合は「動画データ格納用のデータベースサーバー」「動画再生用のアプリケーションサーバー」「Webサイト用のWebサーバー」が必要となり、それぞれの機能を持つサーバー環境を作っていくことになります。

サーバーの構築には専門的な知識が必要になりますが、しっかりとした知識を持った「サーバーエンジニア」が携われば、自由度の高いサーバーシステムを構築することが可能です。企業内で行われる構築内容として、社内からでないとアクセスできないファイルサーバーや、社外では受信できないメールサーバーの構築などがあげられます。このようなカスタマイズ要素を持ったサーバーの構築をすることも可能です。

サーバーを構築する上でのポイント

サーバーは知識を持ったサーバーエンジニアが関わることで自由度の高いシステムを構築することが可能になりますが、サーバーを構築する上で抑えておくべきポイントがいくつか存在します。

第一に「目的にあったサーバーを選ばなければいけない」ということがあげられます。目的にはサーバーの規模やスペックも含まれます。例えば100人の企業が10,000人まで対応できるサーバーを構築する必要はありません。社用メールは外部サービスを使っているのに、共有ファイルサーバーと同時に運用できるメールサーバーを構築する必要はありません。

そして第二に、十分なセキュリティ対策が必要です。社内メインで運用する場合であっても、インターネットへの接続を行う何らかの機器とつながることがある場合は、外部からの接触は避けられません。また、インターネットに接続する形式公開されるサーバーの場合は、不測のサイバー攻撃を受ける可能性はゼロではありません。そのため、サイバー攻撃やウイルス対策などのセキュリティ対策をしっかり行う必要があります。

第三のポイントとして、サーバーは「構築して終わり」ではないということを抑えておく必要があります。構築されたサーバーは長期に渡って社員や関係者によって使用されていくことになります。その間にトラブルが起きないようにするために、不具合が起きていないか監視をし、仮に不具合が起きたり、起きそうな兆候がある場合にはそれを未然に防いだりする必要もあります。このような保守・運用業務も必要になります。

まとめ

ここまでサーバーとは何かということや、実はサーバーにも複数の種類があるということ、サーバーOSやミドルウェアがあり、サーバーを構築した後にも必要なことがいくつもあるということを紹介してきました。ネットワーク社会となった現代ではサーバーの存在はとても重要です。同時にサーバー周辺業務を専門に扱うサーバーエンジニアという職種も注目されることが増えています。これを機会にサーバーの知識を深め、サーバーエンジニアを目指すことも検討してみてはどうでしょうか?