Webアプリが完成したら、サーバーを利用して公開する必要があります。その前にそもそもサーバーとは何か、どのような種類があるのかまとめたいと思います。
サーバーとは
サーバー(Server)は文字通り「提供する側」を意味し、利用者のリクエストに応じて、データやファイルなどの情報を取り出したり送り返したり、あるいはデータの保管・整理をするコンピュータやプログラムのことです。物理的に存在するものや、実体のないものがあることは頭に入れておきましょう!
サーバーの種類
コンピュータとしてのサーバーは大きく分けて物理サーバーと仮想サーバーの2種類があります。利用する際は目的や予算に応じて最適なものを選ぶ必要があります。
物理サーバー
物理サーバーは、物理的に存在する1台のサーバーのことです。
物理サーバーにはさらに「共用サーバー」と「専用サーバー」の2種類に分けられます。
共有サーバーは、1台のサーバーを複数人が共有するものでもので、「さくらサーバー」、「XSERVER」などがこれにあたります。
専用サーバーは、1台のサーバーを一人が占有するもので、排他的な運用が可能です。
仮想サーバー
仮想サーバーは、1台の物理サーバー上で複数台のOSを動かすことで、“複数のサーバーと見なして”稼働させる仕組みのことです。
仮想サーバーはさらに「VPS」と「クラウドサーバー」の2種類に分けられます。
VSP(Virtual Private Server)は、「仮想専用サーバー」とも呼ばれ、サーバー上に仮想的に利用者向けの環境を構築して提供するもので、ネットワークなど共用で利用するものはあるものの、CPUやメモリなどは個別に割り振られることから共用サーバーに比べてハイパフォーマンスが期待できます。料金は求めるパフォーマンスに応じて課金されます。
クラウドサーバーは、特定のサーバーではなく、サーバーの機能が複数台に分散されており、必要な分のCPUやメモリを自由に設定することができます。料金は利用時間に応じて課金されます。
これまでの4種類のサーバーは、コンピュータとしてのサーバーです。それに対して用途に応じてさまざまな機能の提供を実現するのが、以下のソフトウエアとしてのサーバーです。
Webサーバー
Web上において、利用者のWebブラウザ(Chrome、Safariなど)からのリクエストに応じてデータを返してあげるサーバーであり、HTTPを中心としたHTMLファイルなどを取り扱います。
Railsアプリの開発中に何度も打ち込むであろう
rails s
のコマンドで立ち上がるPumaもこれにあたります(このサーバ自体は、開発用のPC上に作られたものです。外部に公開しているわけではないので、他のPCからブラウザ経由でアプリケーションにアクセスすることはできません)。
FTPサーバー
FTPとは「File Transfer Protocol」の頭文字で、ファイル転送プロトコルとも呼ばれています。FTPサーバーは、Webサーバーとのファイルの送受信を行なうサーバーです。
リクエストがあったときだけにファイルを送信するWebサーバーとは異なり、FTPサーバーは、利用者がコンピュータからサーバーにデータをアップロードしたり、サーバーからデータをダウンロードしたりすることができます。
メールサーバー
メールサーバーは、メールの送受信サービスを提供するサーバーです。送信と受信はそれぞれ別のサーバーになっており、送信側をSMTPサーバー、受信側をIMAPやPOP3サーバーといいます。
ファイルサーバー
ファイルサーバーとは、ネットワーク上でデータを共有・使用するためのサーバーです。
ファイルサーバー機能を利用すると、複数のサーバーおよび WindowsやMacなどさまざまなOSのクライアントPC間でのデータ共有をスムーズに行うことができます。
データベースサーバー
データベースサーバーは、顧客情報などのデータを必要に応じて保存、上書き、抽出するためのサーバーであり、データの取り出しにはSQL(MySQLやPostgreSQLなど)を利用して抽出します。
DNSサーバー
DNS(Domain Name System)サービスを提供するサーバーであり、利用者のリクエストに応じてインターネット上でアクセスする名前を解決してくれるサーバーになります。
アプリケーションサーバー
アプリケーションサーバーは、利用者からのリクエストに応じて、Javaやphpなどのプログラムを実行して必要なデータを取り出す、特定の条件に応じた結果をWebサーバーに戻す役割を持っています。
終わりに
サーバーといえば、データセンターの中で何台も置かれた黒い大きな箱というイメージがありましたが、それ以外にもさまざまな種類のサーバーがあることがわかりました。これらのサーバーの働きや連携によって快適なWebが利用できることを覚えておきましょう!
参考
サーバーとは?種類や用途について簡単に解説
サーバーとは丨種類や役割を詳しく解説
【Rails】rails serverコマンド(rails s)の使い方まとめ