開発したシステムやサービスを公開するためには、サーバーの存在は必要不可欠です。
コンビニのATMや電子マネー、何気なく見ているブログや動画サービス等は、サーバーがあるからこそ皆さんが利用出来るようになっています。
今回は、サーバーとは何か、そしてサーバー構築の基本についてご紹介します。
サーバー構築とは?
サーバー構築とは、WEBサービス・システム等を提供するためのサーバー環境を作ることを指します。
WEBサービスを利用する場合はWEBサーバー、メールの送受信にはメールサーバーの構築等、目的に応じたサーバーを構築することで、それぞれの機能が利用出来るようになります。
そもそもサーバーとは?
サーバーとは、ネットワーク上にあるデータの保管庫、またネットワークを介して他のコンピュータにデータの情報やサービスを提供するコンピュータのことを指します。
「役立つ」「提供する」などの意味をもつ英語のServerが語源となっています。
SERVER = 役立つ・提供する
サーバーは、基本的には私たちが普段利用しているコンピュータと違いはありませんが、様々なアプリケーションやミドルウェアをインストールすることで、WEBサービスの運営やデータベースの管理等、必要に応じた役割を担うことが出来ます。
ネットワーク上でデータを提供する側をサーバーと呼ぶのに対して、サーバーから提供されたデータを利用する側をクライアントと呼びます。
サーバー:データを提供するコンピューター
クライアント:提供されたデータを利用するコンピューター
WEBサイトの閲覧を例に挙げると、私たちクライアント側の端末がサーバー側の端末へ要求を送ることで、サーバー側が対象のWEBサイトのデータファイル(HTMLや画像ファイル等)を送り返してくるため、クライアント側はそのデータファイルを基にWEBサイトを表示しています。
このように、クライアントに対して必要なサービス(情報やファイル)を提供するのがサーバーの役割です。
知っておきたいサーバー関連の基礎知識
サーバー構築を考えている場合、押さえておくべき点はたくさんあります。
ここでは、最低限知っておきたい基礎知識についてご紹介します。
サーバーの種類と特徴
サーバーには数多くの種類があります。
一口にサーバー構築といっても、その用途や目的に応じて、最適な選択肢は変わってきます。
代表的なサーバーの種類と、メリット・デメリット等の特徴、どういった場合におすすめのサーバーかをご説明します。
レンタルサーバー(共用サーバー)
文字通り、レンタルするサーバーのことを指します。
サーバー貸し出し専門の業者が設置・運用しているサーバーを、ユーザーが契約して借りることが出来ます。
借りた後は、提供したいサービスを遠隔でサーバーにアップロードすることで、サービスを公開することが出来ます。
高パフォーマンスなサービスを公開したい、自身でサーバーを用意出来ない方向けにおすすめです。
メリット
- 自身でサーバーを用意する必要がなく、ランニングコストが安い
- 基本的なメンテナンスは運営会社が行うため不要
- 契約後、すぐに利用可能
デメリット
- 緊急メンテナンスやセキュリティ面等は、運営会社依存の運用となってしまう
- 他ユーザーの負荷が大きくなると、自身のサービスの通信速度にも影響が出てしまう
- カスタマイズ性が低いため、設定が自由に出来ない
VPS
VPS(Virtual Private Server)は、仮想専用サーバーのことを指します。
物理サーバー上に利用者毎の仮想のサーバーを構築して、独立した専用サーバーと見立てて利用することが出来るサーバーです。
コストを抑えたい中小企業や、高パフォーマンスを求めないサービスの公開におすすめです。
メリット
- 管理者権限が付与されており、カスタマイズ性が高い
- VPSサーバー毎にメモリ・CPUが割り当てられるため、他ユーザーの影響を受けにくい
デメリット
- 定期的なメンテナンスは自身で行わなければならない
- サーバーに関する専門知識が必要である
専用サーバー
専用サーバーは、物理サーバーを1つ占有して、企業やサービス毎に専用として利用するサービスです。
サーバー管理の知識があり、設定等を自由にカスタマイズしたい運用の場合におすすめです。
メリット
- OSやCPU、メモリの変更等が自由にカスタマイズ出来る
- 専用のサーバーなので、他ユーザーの影響を受けることが全くない
デメリット
- システムやサービスの規模によってはハイスペックなものを用意する必要があり、イニシャルコスト、ランニングコストともに高くなる
- サーバーに関する専門知識が必要である
クラウドサーバー
クラウドサーバーは、物理サーバー上に構築された仮想サーバーにネットワーク経由でアクセスするサーバーです。
仮想サーバーにアクセスする点はVPSと同様ですが、1つの契約につき複数の仮想サーバーを利用出来るため、用途に応じてリソースの増減を選択することが出来ます。
自身でサーバーを用意出来ないが、豊富なリソースを利用したい方におすすめです。
メリット
- サービスの規模に応じて、リソースを柔軟に追加・削除できる
- 導入後すぐに利用可能で、イニシャルコスト、ランニングコストともに低い
デメリット
- システムの規模によっては、長期的な利用になるとコストが高くなる場合もある
- 緊急メンテナンスやセキュリティ面等、運営会社依存の運用となってしまう
サーバーOSの種類と特徴
クライアントPCと同様、サーバーPCにもOSにはいくつかの種類があります。
それぞれ以下のような特徴があります。
Windows系
クライアントPCでも一般的なWindowsとGUIは類似しており、操作が比較的簡単です。
国内企業のOSシェア率はWindowsが高いため、サーバー導入時にWindows系を選ぶ企業は多いです。
サーバー用のWindowsということもあり、性能は高くなっていますが導入費用は少し高めです。
Linux系
Linux系OSは、オープンソースのため無料で利用出来ることが特徴です。
WindowsのようなGUIに対応しているものも中にはありますが、コマンドラインによる操作が主となっているため、扱うためにはコマンドを覚える必要があります。
操作方法については調べればたくさん出てきますが、サーバーやLinux系のPC初心者の方には若干ハードルが高いかもしれません。
Unix系
Unixは、Linuxの派生元となったOSです。Unix系OSはネットワークへの接続に適しており、以前からサーバーOSとして使われ続けてきた実績があります。
現在Unix系は商用化されており、利用にはライセンスを購入する必要があります。
しかしながら、Unix系OSには資料や情報も多いため、カスタマイズが行いやすく、幅広いエンジニアが扱うことが出来ます。
BSD系
BSDもLinux同様、Unixの派生版になります。代表的なものにFreeBSDがあります。
オープンソースのため無料で利用出来ますが、日本語での情報が少なく、基本的なアプリケーションはLinux向きとして開発されることも多いため、初心者にはあまりおすすめしないOSです。
サーバー構築において大事なポイント
サーバー構築はサービスを安全に運用していくためにも大切な工程です。
大事なポイントをいくつかご紹介します。
目的に合わせたサーバー選びをする
開発・公開するシステムやサービスの規模、予算、人員のサーバーに対する理解度等の状況をまずは整理しましょう。
状況を整理すると、自身でサーバーを構築するべきか、外部のサーバーをレンタルして利用するべきかが見えてきます。
どの選択を取るのが将来的にもベストになるか、それぞれのサーバーのメリット・デメリットから考えましょう。
サーバーの安定性を確保する
サーバーは構築後も、運用に支障がないかを監視し続けなければなりません。
アクセス数の急上昇や予期せぬ不具合でサーバーがダウンしないか等、確認する必要があります。
場合によっては、サーバーの増設などの対策が求められます。
セキュリティ設定を徹底する
サービスの利用者が増えれば増えるほど、預かる顧客情報も増えてきます。
SQLインジェクションやDDos攻撃等、サーバー攻撃に備えてセキュリティ対策も行いましょう。
また、システム自身にも脆弱性が潜んでいないかの確認は重要です。
脆弱性診断については、こちらの記事でも詳しく紹介しているのでぜひご確認ください。
まずは目的にマッチしたサーバー選びから
初心者の方は、サーバー構築は何から始めるべきか悩んでしまう方が多いです。
まずは、自社や自身が公開したいサービスの規模や予算等について洗い出しましょう。
自前でサーバーを構築するべきかレンタルするべきか、コストや安全性も考慮した上でどれが最適かを見極めましょう。