Webサーバ、メールサーバ、ファイルサーバなど、業務に必要なサーバは様々です。単純にサーバ構築と言っても、それが指すものは明確ではなく、何をするのにどのようなサーバを構築する必要があるのかを前提として知っておく必要があります。しかし、様々なことばがあることによって、サーバ構築に関する理解は難しいものとなってしまっています。

今回は、サーバ構築に必要な基礎知識についてまとめました。

サーバとは

サーバということばは、ハードウェアを指す場合とソフトウェアを指す場合の2つがあります。サーバ構築の知識を得るために、様々なWebサイトや書籍を読むことになると思いますが、その文章内でどちらの意味で使っているかを判断できるようになることが、サーバの理解を進めるための第一歩です。

サーバということばを次のように図で整理しました。

サーバOSをインストールされたサーバのことを○○サーバと呼ぶことがあります。例えば、LinuxベースのCentOSがインストールされたサーバを「Linuxサーバ」と呼びます。

また、特定の目的のためにサーバアプリケーションソフトがインストールされたサーバを△△サーバと呼ぶことがあります。Webサイトのためのサーバを「Webサーバ」、メールの送受信のためのサーバを「メールサーバ」など。

Webサーバを正しく表現するのであれば、「LinuxOSのApacheというWebサーバアプリケーションソフトを入れた専用サーバ」ですが、このサーバのことを単に「Webサーバ」と呼ぶことが多いです。

Webサーバということばが、「Webサーバというサーバアプリケーションソフト」を指しているのか「Webサーバとしての機能、環境を整えたサーバ」を指しているのかを区別して考えられるようにしておきましょう。

次に「サーバ」「サーバOS」「サーバアプリケーションソフト」について紹介します。

4種類の「サーバ」

サーバを借りる場合には、「共用サーバ」「(レンタル)専用サーバ」「VPS」「パブリッククラウド」の4種類があります。また、サーバを借りずに社内でサーバコンピュータを購入して構築する「オンプレミス」もありますが、かなり大規模なシステムでない限り、選択するメリットはあまりありません。

現在必要な要件、サービスの成長に伴い必要な要件を洗い出して、4種類のサーバから適したものを選び、サーバを借ります。

「サーバOS」の種類

サーバOSは、開発チームあるいは開発会社がどのような言語で開発するのかによって選びます。

主なサーバOSの種類は次の通りです。

Windows系OS

・Windows Server

UNIX系OS

・Solaris

・HP-UX

・AIX

・Mac OS X

Linux系 OS

・Red Hat Enterprise Linux

・CentOS

・Debian GNU/Linux

・openSUSE

BSD系OS

・FreeBSD

・NetBSD

・OpenBSD

サーバOSの選び方

サーバOSを選ぶ際の、大きな論点としては、オープンソースを利用するのかという点があります。

オープンソースは商用ソフトウェアと異なり、開発を行なったコミュニティは、不具合の責任を持ちません。また、何らかの不具合が発生したときに、開発コミュニティがすぐに対応しない場合があり、自分たちで不具合に対応するか、対応できる人に依頼する必要があります。

ただ、商用フトウェアでも、不具合が発生した時に自分達で修正することができず、ベンダーの修正完了を待つことになるので、必ずしも安全であるということはありません。また、責任をどこまで持つのかという点が重要で、補償範囲によっては、オープンソースを選んだ方が良い場合も多々あります。

主な「サーバアプリケーションソフト」

サーバOSのインストールされたサーバに対して、サーバアプリケーションソフトをインストールすることで、何らかの目的のためのサーバを構築します。

サーバを構築は、主に次のような目的で行われます。

・ファイル共有→ファイルサーバ

・プリンタ共有→プリントサーバ

・電子メール→メールサーバ

・Web→Webサーバ

・FTP→FTPサーバ

それぞれの目的に対して、適切なサーバアプリケーションソフトをインストールして構築を行ないます。

LinuxベースのOSの場合、ファイル共有サーバであれば「Samba」、メールサーバであれば「Postfix」、Webサーバであれば「Apache」、FTPサーバであれば「vsftpd」などが有名で、これらのサーバアプリケーションソフトをインストールして構築します。

どのようなサーバを構築する際にも「セキュリティ」と「安定性」が重要

サーバを構築する場合には、当然ですがセキュリティが重要です。残念なことに、サーバの情報を抜き取ったり、クラッシュさせたりという悪意のある攻撃者は多数います。

サーバの構築自体は、簡単にいってしまえば、パソコンにMicrosoft Officeのソフトウェアを入れるのと変わりません。しかし、どこからそのサーバにアクセスさせるのか、どのような権限でどこまでアクセスさせるのかといった点をしっかりと設計して、攻撃に対する備えをする必要があり、セキュリティのための設定が非常に重要となります。

また、サーバが落ちてしまうことで業務に大きな影響が出るため、安定して運用ができるような構築も重要です。そこには、サーバOSの理解やサーバアプリケーションソフトへの理解が重要で、メモリやCPUをどのように管理するか、どのようなスペックが必要なのかといった知識が必要となります。

まとめ

今回は、サーバ構築に必要な基礎知識を紹介しました。開発チームや開発会社にサーバの構築を依頼する場合に、どのサーバOS、どのサーバアプリケーションソフトを使うのかという選定のための知識が無くても、サーバということばが何を意味しているのか、大枠としてどのような構成になっているのかは理解しておくと良いでしょう。