サーバーとは?今さら聞けない種類や役割、用途を基礎からしっかり解説!
Webサイトの構築や、システム開発を行う際に「サーバー」は欠かせませんよね。しかしサーバーの仕組みや役割、種類についてきちんと理解しているという方は、エンジニアの中でも少ないのではないでしょうか。
サーバーはさまざまなITサービスを提供するために欠かせないもので、用途に合わせていくつかの種類があります。普段は特にインフラを意識せず設計やプログラミングを行うクライアントサイドのエンジニアの方でも、サーバーの知識があれば役立つ機会は多いはずです。
そこで今回は、サーバーの基礎知識から用途別の種類、これからサーバーを学ぶ方が身に付けるべき知識についても分かりやすく解説します。サーバーについて知識を深めたい方はぜひ参考にしてください。
サーバーの基礎知識
まずはサーバーの定義や役割、種類について解説します。
サーバーとは?
サーバーとは「利用者の要求に応じたサービスを提供するコンピュータ」のことです。サーバーには必要なデータを保存しておく役割と、利用者からの「この情報が欲しい」というリクエストに対して「データをサーブ(提供)する」役割があります。
またサーバーに対してデータを受け取る側、つまり私たちが普段使用するPCやスマホは「クライアント」と呼ばれます。
例えば私たちが特定のWebサイトを見たいと思ったとき、クライアントPCのWebブラウザにURLを入力すれば、Webサイトが画面に表示されますよね。これはWebを管理するサーバーに対してリクエストを送り、それに対してサーバーが保存しているデータを提供している状態です。
一般的にサーバーと呼ばれるものには2種類の意味合いがあります。一つはWebサーバーやメールサーバーなどのように特定の要素に特化し、リクエストに応じてデータを提供する仕組み(ソフトウエア)のことを指します。
もう一つはそのソフトウエアを含むコンピュータ全体(ハードウエア)を指します。このハードウエアとソフトウエアの各サーバーが連携して動作することにより、さまざまなサービスをクライアントに提供できるのです。
ハードウエアとしてのサーバーの種類
まずハードウエア(コンピュータ)としてのサーバーの種類を紹介します。大きく分けて物理サーバーと仮想サーバーの2種類があり、どちらもメリット・デメリットが存在するため、環境によって選択しましょう。
物理サーバー
物理サーバーとは、物理的に存在する一台のサーバーのことを指します。
物理サーバーは原則として一台のハードウエアに対し一つのOSしかインストールできません。またCPUやメモリ、ストレージなどのハードウエアリソースに直接アクセスするため、パフォーマンスが高いというメリットがあります。
物理サーバーはさらに「専用サーバー」と「共用サーバー」に分けられます。
専用サーバー
専用サーバーとは、一台のサーバーを購入もしくはレンタルし、企業や個人で専有する使い方です。ほかの利用者の影響を受けずに自由な設定ができます。
ハードウエアリソースを専有できるため、ハイスペックな性能や高度なセキュリティーコントロールを求める場合に最適です。デメリットとしては費用が高額になるほか、利用者自身でサーバーの構築や運用を行う必要があるため、専門知識や運用の手間を要します。
共用サーバー
共用サーバーとはいわゆるレンタルサーバーで、サーバーを複数のユーザーで共有する使い方です。
共用サーバーは専用サーバーよりもコストを抑えられることや、運用やメンテナンスの手間がかからないことがメリットです。
一方設定を自由に変更することはできず、またハードウエアリソースを共有するため、ほかの利用者の使用状況によっては自身の処理に影響があります。
個人利用や小規模なサービス、または安価で利用したい場合などに向いています。
仮想サーバー
仮想サーバーとは、一台の物理サーバー上で仮想化技術により複数台に分割されて稼働する仮想的なサーバーです。物理サーバー上に仮想化ソフトウエア(ハイパーバイザ)をインストールすることで実現します。
それぞれの仮想サーバーにOSやアプリケーションをインストールでき、独立した環境として使用できることがメリットです。
また複数のサーバーでリソースを共有するためムダがなく効率的ですが、逆に負荷がかかりやすく物理サーバーよりもパフォーマンスが落ちる傾向があります。仮想サーバーはさらに「VPSサーバー」と「クラウドサーバー」に分けられます。
VPSサーバー
VPSとは「Virtual Private Server」の略で、仮想上の専用サーバーという意味です。
共用サーバーと同じように一台の物理サーバーを共用しますが、その上に構築された仮想サーバーと割り当てられたリソースは専有できます。
共用サーバーよりも自由度が高く、ほかの利用者の影響も受けにくいです。ただし仮想サーバーの構築や運用は利用者自身で行う必要があります。
クラウドサーバー
クラウドサーバーとは、クラウド環境に構築された仮想サーバーです。
特定の仮想サーバーを利用するのではなく、必要な分だけCPUやメモリなどのリソースを設定した仮想サーバーをクラウド上に構築して利用できます。
設定はあとから変更することも可能なため、柔軟性や拡張性を求める場合に最適です。
従量課金制のため、使った分だけ費用が発生します。管理が行き届いていないと費用が上がる可能性があるため、予算計画が立てにくいことはデメリットかもしれません。
ソフトウエアとしてのサーバーの種類
次にソフトウエアとしてのサーバーの種類を紹介します。
用途に応じてさまざまな機能を提供するソフトウエアとしてのサーバーは、OSとアプリケーションの中間に位置するためミドルウエアと呼ばれることもあります。ここではよく使われるものを紹介します。
Webサーバー
利用者からのリクエストに応じて、Web上のコンテンツであるテキストや画像データなどを送り返すサーバーです。
Webサイトを表示するために欠かせないサーバーであり、WebシステムはWebサーバーと次に紹介するアプリケーションサーバー、データベースサーバーで構成されることが多いです。これは「Web3層構造」と呼ばれ、大規模システムでよく採用されます。
Webサーバーの代表的な製品はApache、Nginxなどです。
アプリケーションサーバー
Webシステムにアプリケーションプログラムを動作させるサーバーです。Webサーバーからのリクエストに応じて、PHPやJava、Rubyなどのプログラムを実行して必要なデータを取り出し、Webサーバーに処理の結果を返します。
アプリケーションサーバーの代表的な製品はTomcat、Unicornなどです。
データベースサーバー
データベースを管理するシステムであるDBMS(DataBase Management System)が動作するサーバーです。アプリケーションサーバーからのリクエストに応じて、データベース言語であるSQLを利用してデータベースから必要な情報を抽出して返します。DBMSの代表的な製品はOracle Database、MySQL、PostgreSQLなどです。
メールサーバー
メールの送受信を行うサーバーです。送信側と受信側で別のサーバーになっており、送信側をSMTP (Simple Mail Transfer Protocol)サーバー、受信側をIMAP (Internet Message Access Protocol)サーバーやPOP3(Post Office Protocol)サーバーと呼びます。
メールを送信する際はSMTPサーバーが次に紹介するDNSサーバーとともに宛先を見つけ出し、IMAPやPOP3サーバーにある利用者ごとのメールボックスへ送信します。メールサーバーの代表的な製品はPostfix(SMTP)、Dovecot(IMAP・POP3)などです。
DNSサーバー
DNSは「Domain Name System」の略で、利用者のリクエストに応じてIPアドレスとドメイン名を紐付けるサーバーです。
IPアドレスはインターネット上の通信先を表しますが、数字の羅列のためなかなか覚えにくいものです。そこで覚えやすい「google.com」などのドメイン名を使用した場合でも、DNSサーバーがIPアドレスに変換して通信先を指定することを可能にします。
DNSサーバーの代表的な製品はBIND、NSDなどです。
ファイルサーバー
ネットワーク上でファイルを管理・共有するための機能を提供するサーバーです。ファイルサーバーを利用すれば、OSや場所を問わずにクライアントPC間でデータのやりとりができます。Windowsではファイル共有機能を利用したり、LinuxではSambaなどのソフトウエアを追加したりして構築することが多いです。
FTPサーバー
FTPは「File Transfer Protocol」の略で、インターネット経由でファイルを送受信するためのプロトコル(通信規格)です。サーバーとクライアント間でファイルをアップロード・ダウンロードする際に使われます。このFTPの仕組みを使って接続されるサーバーをFTPサーバーと呼びます。FTPソフトの代表的な製品はFFFTP、WinSCPなどです。
サーバーを扱うエンジニア
さまざまなITシステムを支えるサーバーですが、エンジニアの方でもサーバーを特に意識したことがない方も多いかもしれません。多くの種類があるエンジニア職の中で、サーバーに携わるエンジニアについて紹介します。
サーバーエンジニア
サーバーエンジニアはサーバーの設計・構築・運用・保守を担当するエンジニアです。使用用途やユーザー規模に合わせてサーバーの種類・スペックの選定をし、適切な設計を行います。構築作業は物理サーバーなら電源やほかの機器とサーバーをケーブルでつなぐ配線作業から、OSのインストール・設定作業まで担当します。構築後はサーバーが安定稼働するよう監視を行い、メンテナンスやトラブル対応、セキュリティ対策も行います。
サーバーサイドエンジニア
サーバーサイドエンジニアはシステムの裏側(サーバー側)から行う処理に対して、必要なプログラムの設計・開発を行うエンジニアです。一方でWebサイトの見た目や画面の動きなど、ユーザーが直接目にする部分はフロントエンドエンジニアが担当します。サーバーエンジニアがサーバー環境の構築や運用を行うのに対し、サーバーサイドエンジニアはサーバー側で動作するシステムの開発を行います。
クラウドエンジニア
近年のクラウドサービスの発展に伴い、インフラ環境を物理環境からクラウド環境へ移行する企業が増えています。クラウドエンジニアはクラウド環境上のサーバーやネットワークといったインフラ環境全体の設計・構築を行うエンジニアです。サーバーエンジニアがクラウドのスキルを身につけて、クラウドエンジニアへ転身するケースも多いです。
これからサーバーを学ぶなら?
これからサーバーについて学びたいと考える人は、具体的にどのような知識を身につけるべきでしょうか。サーバーをはじめとするITインフラ環境は技術の発展とともに変化しているため、新しい技術も含めて紹介します。
コンピュータアーキテクトの知識
サーバーの適切な設計〜運用までを行うには、コンピュータがどのような仕組みで動いているのかを理解し、サーバーの負荷や可用性まで考慮してCPUやメモリなどのリソースを選択する必要があります。実際にサーバーを構築してみたり、基本情報技術者試験などの資格を取得したりして改めて体系的に学び直すこともおすすめです。
サーバーOSの知識
サーバーOSとはサーバー向けに開発されたOSのことで、多数のPCが同時接続可能なように設計されています。サーバーOSは大きく分けて「Windows系」と「Unix系」がありますが、Unix系が大きなシェアを占めています。特に開発環境ではUnixから派生したLinuxが使われることが多いため、Linuxを扱えるエンジニアのニーズは高いです。
仮想化・コンテナ技術の知識
一台の物理サーバー上で複数の環境を実現する仮想化技術は今後も必要とされるでしょう。
さらに最近では仮想化技術の一つとして、コンテナ技術が注目されています。コンテナは従来の仮想化とは違い、一つのOS上で複数のアプリケーション環境の実現が可能になります。動作が軽量で構築も容易なこともメリットです。
コンテナを実装するソフトウエア『Docker』や、コンテナの運用管理や自動化を行うソフトウエア『Kubernetes』などの知識があると役立ちます。
クラウドの知識
クラウドは柔軟性やコスト、ビジネススピードの加速などメリットが多く、サーバー構築は今や物理環境よりもクラウド環境で行うことが主流になってきています。そのためサーバーを扱ううえでクラウドの知識は必須といえるでしょう。SaaS、PaaS、IaaSといったクラウドサービスの利用形態や内容、各クラウドベンダーの特徴などを理解しているエンジニアは重宝されます。
Infrastructure As Code
Infrastructure As Code(IaC)は、サーバーなどのインフラ構成や設定をコード化して管理するという考え方です。IaCを利用すれば環境構築作業を自動化でき、人為的なミスや工数の削減につながります。IaCツールの「Chef」や「Ansible」、これらのツールで使われるRubyやPythonといったプログラミング言語の知識が今後さらに求められるでしょう。
あらゆるITサービスにサーバーは欠かせない
サーバーにはさまざまな種類が存在し、連携しながらWebサイトやアプリケーションを構築しています。快適なサービスの提供にはサーバーが必要不可欠といえるでしょう。
今までサーバーを特に意識していなかったエンジニアの方でも、サーバーの知識を身につければトラブルに対応できたり、サーバー環境を考慮したサービス設計やプログラミングができたりとメリットは大きいです。
サーバーはクラウドをはじめ、新たな技術の発展が目覚ましい分野でもあります。ぜひこの機会に、サーバーについて学んでみてはいかがでしょうか。
文/江副杏菜
RELATED関連記事
RANKING人気記事ランキング
NEW!
【稼げるIT職種2025】「年収800万円以上欲しいエンジニア」が知っておきたい、今狙い目の職種TOP4
日本のエンジニアは甘すぎ? 「初学者への育成論」が米国からみると超不毛な理由
縦割り排除、役職者を半分に…激動の2年で「全く違う会社に生まれ変わった」日本初のエンジニア採用の裏にあった悲願
サスケ完全制覇者・エンジニア森本裕介の素顔「この先もSASUKEを諦める選択肢はない」【サスケくん】
NEW!
成長したいなら「責任を取る側に立つ」一択。学生起業・CTO歴任を経て松本勇気が推す、エンジニアが伸びる環境
JOB BOARD編集部オススメ求人特集
タグ