インターネットが普及し、多くの横文字が飛び交う中「サーバー」という言葉を聞いたことがある人も多いのではないでしょうか?
サーバーというと、大きな機械や複雑に絡む配線など、なんとなくイメージがあるかもしれませんが、どんな役割があるのかまでは知らない人も多いと思います。しかし、私たちが何気なく使用しているサービスの裏側では、複数のサーバーが連携していて、それによりサービス提供が実現しています。
例えば「メールのやり取り」を考えてみます。メールの送受信には「送信するため」「送信先を調べるため」「受信するため」の3つのサーバーが見えないところで稼働し、それにより私たちはスムーズなメールのやり取りができるのです。
そこで今回は、知っておきたいサーバーに関わる用語や種類、役割、仕組みをはじめ、「サーバー」に関する基礎知識やその種類について解説していきます。ITに関する基礎知識を得たい方や、企業でサーバーの運用を考えている方に読んでいただきたい内容となっています。ぜひ最後までご覧ください。
まず、サーバーの言葉の意味から解説していきます。サーバーとは英語で表記するとServerで、「給仕する」という意味があり、IT用語では「サービスを提供する側」という意味があります。また、2つ目の長音符を入れずに「サーバ」と表記することもありますが、これも同じ意味です。
サーバーの意味をもう少し詳しく説明すると、「ネットワークを通じて、クライアントからのリクエストを受け取り、適切な処理を行なっていくコンピュータやプログラム」です。
サーバーには、「ソフトウェアを稼働させる土台としてのサーバー」と「用途別に必要な機能を提供するソフトウェアとしてのサーバー」の大きく2種類があります。それぞれの詳しい内容については後の章で解説していきます。
一方で、サービスの提供を受ける側を「クライアント」と言います。サーバーとクライアントの違いは、説明した通りサービスを「提供する側」なのか「受ける側」なのかという点です。また、サーバーやネットワーク機器などで構成されるシステムをサーバーサイトと言い、そのシステムに接続しているパソコンやスマホをクライアントサイドと言います。
ちなみに、サーバーと関連して出てくる言葉が「アップロード」と「ダウンロード」です。もしかすると、サーバーよりも聞き馴染みのある言葉かもしれません。
これはサーバーとクライアント間の画像や動画といったデータ・情報のやり取りのことを指します。クライアントからサーバーにデータの提供を行うことを、アップロードと言い、身近な例ではSNSに写真や動画を載せることが挙げられます。また、サーバーからクライアントがデータを受け取ることをダウンロードと言い、身近な例では、インターネット上で公開されている画像やデータを手元の端末に取り込むことが挙げられます。
サーバーの種類や役割の解説に入る前に、そもそものパソコンとの違いについて説明します。結論から言うと、パソコンとサーバーはどちらもコンピュータの分類になります。個人の使用を想定したコンピュータであるパソコンと、サーバーとしてのコンピュータはどちらも、CPUやメモリ、HDD(ハードディスクドライブ)といったもので構成されています。
つまり、サーバーの仕組みは性能によって多少の差はあるものの、私たちが使用しているパソコンとほとんど変わりはありません。
しかし、それぞれの使用用途の違いから、求められるスペックは変わってきます。サーバーは24時間365日稼働することや、複数ユーザーの利用が想定されます。サーバーにとって重要なことは、「稼働の安定性」や「複数アクセスの迅速な処理」、「災害などの外部からの衝撃に耐えれる耐久性」などのスペックです。
またサーバーの選択・構築・設定の際は、想定される利用規模に応じたスペックだけでなく、セキュリティにも配慮した選択も行っていく必要があります。
冒頭で、サーバーは大きく分けて2種類に分類することができると述べましたが、「ソフトウェアを稼働させる土台としてのサーバー」もまた2つに分類することができます。それぞれの利用形態も含めて、詳しく解説していきます。
【物理サーバー】
物理的に存在するハードウェアのサーバを指します。物理サーバー1台に対して1つのOSで使用するため、性能の安定性を確保することができます。従来は、このかたちしかなかったため、サーバーといえば物理サーバーでした。サーバーの容量が不足した場合は、物理的にハードウェアを1台追加して容量を拡張する必要があるため、それにかかる費用やスペースの確保が必要になります。
・専用
物理サーバーを1ユーザーや1組織で専有するする利用形態です。OSを含めた機能のカスタマイズや高度なセキュリティ設定が必要な場合に向いています。
・共有
1台の物理サーバーを複数ユーザーで共有する利用形態です。ハードウェアのリソースを分け合うことで、コストを抑えることができるため、個人利用や小規模ビジネスなどに向いています。
【仮想サーバー】
仮想化サーバーはその名の通り、サーバーの仮想化を行ったものです。サーバーの仮想化とは、1台の物理サーバー上で仮想化ソフトウェアを使って複数OSを動かし、それら1つ1つをサーバーに見立てる方法です。物理サーバーとは違い、ハードウェアを追加する必要がないため、サーバーの台数やコストの削減、そして運用にかかる負担の軽減が期待できます。
・クラウドサーバー
クラウド事業者が構築したサーバーの中から、必要な機能のみ提供を受ける利用形態です。利用した分だけコストのかかる、従量課金制になっていることが多いです。
・VPS(Virtual Private Server)
直訳すると「仮想専用サーバー」となるVPSは、仮想的に環境を構築してユーザに提供します。仮想サーバー1台が割り当てられるため、自由にカスタマイズし、他ユーザーの影響を受けにくく安定的な運用が可能です。
物理型のサーバーの筐体には3つの形状があり、構成するシステムの規模感によって選択する必要があります。サーバーの形状と合わせて、メリット・デメリットをまとめていきます。
・タワー型サーバー
筐体自体にある程度の高さや奥行きがあり、単体で使用されることの多いサーバーです。
メリット:据え置き型で購入後すぐに設置可能、導入コストも他の2つより抑えられる
デメリット:複数サーバー間での連携や機能拡張が行いにくい
・ラックマウント型(ラック型)
複数のサーバーと組み合わせて使用することが多く、サーバーラックと呼ばれる専用のラックに格納し、複数段積み重ねて利用されるのが一般的です。
メリット:ラック内に関連機器が集約されるため管理・運用が行いやすく、鍵付きのラックでセキュリティが頑丈
デメリット:他の2つよりも消費電力が大きい、増設時に新たなスペースが必要となる
・ブレード型サーバー
サーバーが細長い刃(ブレード)のような形状をしており、そのサーバーをブレードシャーシ(サーバを格納する筐体)に差し込み使用されます。
メリット:運用コストの削減、サーバー増設時はブレードシャーシにサーバーを差すだけのため、手間もスペースもかからない
デメリット:導入コストが高額
ここからは、ソフトウェアとして機能を提供するサーバーを解説していきます。このサーバーには、用途別に数多くの種類がありますが、「受動型」と「能動型」の2つに分類することができます。以下でサーバーの具体例を挙げていきます。
【受動型】
リクエストに対してレスポンスを返すという、従来利用されてきた一般的なサーバーです。
・メールサーバー
メールの送受信を円滑にするサーバーで、送信用と受信用でサーバーが分かれています。メールサーバーから承認を得ることで、私たちの元(メールソフト)へメールが届きます。
・ファイルサーバー
ネットワーク間でファイルを保管・共有するためのサーバーです。
・DNS(Domain Name System)サーバー
IPアドレスとドメインを紐づける役割のあるサーバーです。Webサイトやメールはドメインを使用するため、インターネットを利用する上で欠かせないサーバーです。
・SSL(Secure Sockets Layer)サーバー
インターネット上でのデータやり取りを暗号化する仕組みで、通信データの盗み見やなりすまし、データ改善といった不正行為から守ることができます。
・Webサーバー
Webページを表示するサーバーでHTMLファイルやCSSファイル、画像ファイルなど、静的データを配信します。
・アプリケーションサーバー
Webサーバーからのリクエスを受け、アプリケーションプログラムの実行やデータベースサーバーの処理、動的なデータの生成を行い、その結果をWebサーバーに返します。
・データベースサーバー
様々なデータを格納・管理し、クライアントからのリクエストに応じてデータを返します。
特に下の3つは、「Web3層構造」と呼ばれる、Webシステムの基本構造です。サーバーでの処理を3箇所に分けることで、負担を分散することができ、レスポンスやコンバージョン率といった問題を解決させることができます。
【能動型】
能動型は、サーバーから各機器への指示や、異常検知などの機能を持ち、IoTなどの先端技術で活用されています。
・SNMP(Simple Network Management Protocol)サーバー
ルータやサーバー、スイッチなどネットワーク機器をインターネット経由で監視・制御します。ネットワーク監視の基本とも言えます。
・IoT(Internet of Things)サーバー
近年よく聞くIoT(モノのインターネット)デバイスからデータを収集したり、指示を出すサーバーです。
先ほど挙げたサーバーの利用手段は、大きく以下の3つになります。それぞれの利用形態に特徴があり、自社の予算やリソース、必要な機能・スペックに応じて選択していく必要があります。
・購入
文字通り、サーバーを購入する買い切りの手段です。導入にあたっては他の2つよりも高額になりますが、自社専用のサーバーとして機能のカスタマイズが可能です。
サーバーを管理するスペースの確保が必要な他、導入にあたっての機器選定から、設定、運用、保守などサーバー運用に関する全てを自社で担う必要があるため、専門的な知識を持つ人材が必要になります。
・レンタル
サービス事業者がデータセンターで管理している物理サーバーをインターネット経由でレンタルする方法です。サーバーをレンタルするには、レンタルサーバーのサービス提供している企業に申し込みます。ちなみに、サーバーを保管しているデータセンターとは、サーバーやネットワーク機器を保管する専用の建物のことです。
購入だと負担の大きかったコストやスペース、専門知識のある人材の確保などの問題を解消してくれます。購入と比べるとカスタマイズ性は落ち、共有サーバーのレンタルの場合は、他ユーザーの利用状況次第で処理速度への影響が出る可能性も理解しておく必要があります。
・クラウド
クラウドサービス事業者の提供する仮想サーバーを借りて利用する方法です。インターネット経由でサーバーをレンタルするというのはレンタルサーバーと変わりありませんが、レンタルサーバーは物理サーバーを使用する一方、クラウドサーバーは仮想サーバーを使用します。仮想サーバーはOSや機能の選択を自由に行え、スケーラビリティがあります。
従来、自社内にサーバーを購入し保管・管理するオンプレミス型が主流でしたが、現在ではクラウドサービスの普及によって、自社でサーバーの保有しないサーバーレスが進んでいます。
サーバーの種類や役割、仕組み、利用形態について解説してきましたが、全てにおいて共通するのが、システム運用が必要ということです。環境を構築して終わりではなく、24時間365日正常に稼働させるため、状況に合わせた拡張・縮小や、不具合への対応も必要となってきます。
このシステム運用は、サーバーの「購入」をすると全て自社でする必要がありますが、「レンタル」や「クラウド」の場合は、全体の運用や保守は提供事業者が行うため、そこにかかる負担を減らすことができます。
クラウドサービスの普及により、クラウド型へ移行している企業も増えています。ここで、ローカル処理からクラウド型のサーバー処理を導入した、JR東日本の発行する交通系ICカード「Suica」の例を見ていきましょう。
従来Suicaは、改札機にタッチ → 読み込み → 書き込みの流れで、運賃計算は改札機(ローカル)で処理していました。そのため、異なるエリア間でのSuica利用ができず、事前チャージ必須やチャージ額の限度、オートチャージ利用にも条件があるなどの制約があり、ユーザーにとって不便な点でもありました。
クラウド化されたSuicaは、改札機にタッチ → 読み込み → 運賃計算をサーバーへ要求し回答を受け取る → 書き込みという流れで処理を行います。運賃計算をサーバーが行うことにより、エリアを跨いだ運賃の計算も可能になり、その他にも企画券と組み合わせた利用なども可能になります。また、クラウド化によりWebやスマホとの親和性の高い新しいSuicaサービスの提供を目指すと発表されており、クラウド型のサーバー処理導入でユーザーの利便性を高めるだけでなく、新しいビジネスやサービスも生まれようとしています。(出典:新しいSuicca改札システムの導入開始について[1])
Suicaのサービス開始は、2001年11月で、当時としては画期的なシステムでした。そこから、市場のトレンドやユーザーの需要に合わせて機能拡張や機械の設置、ルール変更を行なってきましたが、それも限界に近づきつつありました。その悩みを解決してくれるのが「クラウド化」でした。大規模データ処理や高速ネットワークの環境が整った現代だからこそ、実現できたクラウド化と言えます。
ここまで、サーバーに関する基礎知識やその種類について解説してきました。
サーバーには「ソフトウェアを稼働させる土台としてのサーバー」と「用途別の必要な機能を提供するソフトウェアとしてのサーバー」の2種類があり、そこからさらに枝分かれしていき、利用形態も様々です。
サーバーを選ぶ際は、想定される利用規模と、稼働の安定性や耐久性、処理速度といったサーバーのスペックを照らし合わせて、限られたコストとリソースで最適な利用ができるよう選択していく必要があります。
JIITAKのプロダクト開発では、クラウドサービスを組み合わせ、目的に応じたインフラ環境を構築し、高度な可用性、拡張性、セキュリティを備えた総合的なソリューションを提供します。
プロダクト開発や運用でお困りごとのある方は、ぜひJIITAKまでご相談ください。