サーバーが必要となった場合は、いつもWindows Serverを選定してしまうけど、Linuxサーバーってどんな時に使うんですか??
Windows系サーバーとLinux系サーバーでは得意な分野や特徴が大きく異なります。
Linux系サーバーの特徴や、最適なサーバーOSの選定のポイントを紹介するね!
「サーバー」と言えば、現在主流なのは主に「Windows系サーバー」と「Linux系サーバー」の2種類です。※他にもUNIX系OSを使用したサーバーなどもありますが割愛します。
今回の記事では、Windows系サーバーとLinux系サーバーの特徴を紹介し、どのように使い分けていけば良いかを解説していきます。
初めに
サーバーを調達する場合、目的や用途によって最適なサーバーを選定する必要があります。
サーバー選定において、まず重要なのは「サーバーOS」の種類です。
サーバーOSでは、大きく分けて「Windows系OS」と「Linux系OS」があり、両者は大きく特性が異なります。
サーバーの調達においてCPUのコア数やメモリサイズなどのスペック面も重要ですが、まずはそのサーバーにどのOSを載せるかによって、導入に必要なライセンス費用や、構築や運用で必要になる技術レベル、稼働させるアプリケーションの対応有無や向き不向きが変わります。
よって、そのサーバーの用途や予算などによって最適なサーバーOSを選定することが重要です。
今回の記事では、Windows系サーバーOSとLinux系OSの特徴を解説しつつ、選定するうえでのポイントを紹介していきます。
Windows系サーバーOSの特徴
パソコンで一般的に使用されているのはWindows10ですが(2021年11月現在)、一言でWindowsと言っても様々な種類があります。
皆さんが家庭や職場で使用するパソコンにインストールして使用するパソコン用のバージョンや、家電製品やカーナビやPOSといった特定の製品などに組み込まれた組み込み機器専用のバージョンや、スマートフォンなどのモバイル向けバージョン、学生や教師などの教育機関向けのバージョンがあります。
更に、サーバー用としてMicrosoftが提供しているのが「Windows Server」という製品名のOSです。
その「Windows Server」の種類に何があるかを見てみましょう。
用途 | OS名 | 説明 |
---|---|---|
小規模環境向け | Windows Server 2019 Essentials Edition | 25ユーザー又は50デバイスまでしか対応していない使用規模が限定されたエディション。安価に利用可能。 |
標準的な環境向け | Windows Server 2019 Standard Edition | 殆ど機能が使用可能だが、Hyper-Vのホストといった大規模向けの用途や高信頼性が求められる用途の機能で制約がある。 |
大規模環境や高信頼性用途向け | Windows Server 2019 Datacenter Edition |
WindowsServerのすべての機能を利用可能。 |
上記のなかでも、Essentialsはあまり使われておらず、主にStandardを使用し、必要によってDatacenterを使用するような使い分けです。
次項では、このWindows系サーバーOSの特徴を紹介していきます。
Windows10などのパソコンとUIが同じ
Windows10などの一般ユーザーが仕事やプライベートで使用するパソコンに入っているWindowsと、サーバー系のWindowsは、用途は異なりますが、「カーネル」と呼ばれるOSの根幹部分は同じものを共有しています。
よって、画面の構成や操作感などは、Windows系のパソコンと変わりはなく、日常的にWindowsパソコンを使用している方なら、迷うことなく操作をすることができます。
これは、Windows系サーバーの大きな特徴の一つです。
構築や運用の難易度が低い
前述したように、サーバーOSとは言え、UIは皆さんが仕事やプライベートで使用しているWindowsと同じです。
そのため、使い方を覚えることが容易であり、サーバーに対する深い知識がなくても扱えて、構築や運用で求められる技術レペルも下がります。
必要になる技術レベルが下がると、構築や運用に経験が豊富で高い技術を持つ技術者は不要になるため、結果的に構築、運用コストも下がります。
本来サーバーは、内部的には高度な技術や先進的な技術を駆使しながらサービスを提供しています。
そのため、それを理解した能力の高い技術者しか扱えないものですが、それを誰でも簡単に扱えるように作り込むのは簡単ではありません。
その意味では非常に優れたOSだと言えます。
初心者の敷居は低いが本当に簡単かと言えば、そこは賛意両論があるかと思います。
Microsoft製品との連携が容易
Windows系サーバーはMicrosoftが開発や販売をする製品です。
MicrosoftはサーバーOS以外にも様々な製品を提供しています。
あまりに多くすべてを列挙することは困難ですが、主だった製品としては以下です。
- Windows10などパソコン用OS
- Microsoft Office
- Microsoft SQL Server
- Microsoft Azure
- .NET Frameworkを中心としたアプリ開発プラットフォーム
Windows系サーバーは、こういったMicrosoftが提供している製品群との親和性は高く、製品やサービスによっては、Windows系サーバー上でしか利用できないものも多々あります。
また、Windows系のサーバーを利用して、これらの製品群を一元的に管理できたり、相互に連携して、より便利に利用できるようになったりします。
この特徴もLinux系サーバーには提供できない付加価値です。
無償利用はできない
後述するLinux系OSでは、大半のディストリビューションで無償利用が可能です。
ただ、Windows系サーバーOSはすべて有償でしか提供されていません。
また、そのライセンス形態は非常に複雑です。
クラウド環境ではなく、オンプレ環境(オンプレミス:サーバー機器やOSを購入して自社内で利用すること)で使用する場合であれば、まずはWindowsServer本体の購入が必要です。
その価格は、稼働する機器のコア数などによって変わります。
また、物理筐体と併せてWindowsServerを購入する場合は、「OEMライセンス」と呼ばれる、その筐体のみで使用することを許可されたライセンス形態を利用して、安価にOSを購入することができたりします。
また、Windows系サーバーOSの場合は、そのサーバーにアクセスしてサービスを利用するユーザーや機器の数分の利用ライセンスも別途購入する必要があります。
この利用ライセンスを「CAL(キャル)」と呼びます。
これらの複雑なライセンス形態を理解したうえで、必要な費用を支払い利用します。
Linux系サーバーOSの特徴
当見出しでは「Linux系サーバーOS」と書きましたが、厳密には語弊があり、多くのLinuxのディストリビューションでは、サーバー用と個人ユーザー用とでOS自体を分けて提供しているケースは少ないです。
Linuxの場合、OSをインストールする際に、デスクトップ用途(個人用)なのか、サーバー用途なのかを選択させて、その用途ごとに必要な機能が併せてインストールされるといった形式が一般的。
また、Linuxでサーバー用途の場合、マウスで操作をするGUI自体が不要な場合も多いので、コマンド操作のみ可能な「CUI」だけで運用する前提で、最初からGUIをインストールしないといった選択もできます。
WindowsでもLinuxでも同じですが、グラフィカルな画面があると、その画面描写の処理で、CPUやメモリーなどのリソースを大量に消費します。
逆に画面描写の処理が不要であれば、そのOSは僅かなリソースでも軽快に動作します。
次項では、主にサーバー用途の場合のLinuxにおける個々の特徴を紹介していきます。
CUI(コマンドライン)での操作が一般的
Windows系サーバーと比較した場合に、一番大きな特徴の一つです。
前項でも軽く記載しましたが、LinuxでもWindowsのようにグラフィカルなデスクトップが用意され、マウスでフォルダやファイルを開いたり、アプリケーションを起動するといったGUIベースでの操作は可能です。
ただ、Linuxの場合は、CUIでのコマンドラインですべての操作が行えるため、サーバーとして使用する場合はGUIを使わないことがほとんどです。
コマンド操作と聞くと、初心者には敷居が高い印象を持たれますし、すべての操作はコマンドを知っていることが前提のため、慣れるまで時間が掛かります。
ただ、コマンドですべての操作が行えると言うことは、それらの処理を自動化するのも容易ですし、GUI環境で表示されているボタンのどちらを押せばよいか迷うといったこともありません。
慣れれば操作は明確で明瞭です。
これらは大きなメリットの一つです。
OSSのため無償で利用可能
Linuxでは「OSS(Open Source Software)」と呼ばれるライセンス形態を採用しています。
まずは「OSS」について、Wikipediaの記事から内容を引用してみましょう。
オープンソースソフトウェア(英: Open Source Software、略称: OSS)とは、利用者の目的を問わずソースコードを使用、調査、再利用、修正、拡張、再配布が可能なソフトウェアの総称である。
~~中略~~
オープンソース・イニシアティブは「オープンソースの定義」に従ったソフトウェアをオープンソースのソフトウェアと定義している。
オープンソースの定義は単純にソースコードへのアクセスが開かれていることを定義するものではなく、オープンソースのソフトウェアは利用者がそのソースコードを商用および非商用の目的を問わず利用・修正・頒布することを許し、それを利用する個人や団体の努力や利益を遮ることがないことを定義している。
オープンソース・イニシアティブはオープンソースライセンスというライセンスカテゴリを管理しており、そのオープンソースの定義に準拠したライセンスのみをオープンソースライセンスとして承認している。
オープンソースソフトウェアはオープンソースライセンスが課せられたソフトウェアであると言い換えることが出来る。
オープンソースソフトウェア -Wikipedia
要するに、対象のソフトウェアのソースコードを誰でも閲覧や取得できるように公開し、最低限のルールさえ守れば好きに使って良いよといった扱いのライセンス形態です。
よって、今回紹介しているLinuxについても、様々なディストリビューションがあり、それらは原則ソースコードを公開しています。
その為、そのディストリビューションのLinux本体をWindowsのように値付けして販売することができません。
ただ、それではビジネスとして成り立たないため、Linuxディストリビューションを商用で提供している企業では、その企業が独自にカスタマイズしたディストリビューションのLinux本体は無償で使用できるが、そのディストリビューションのサポート、保守契約を有償で提供するといったビジネスモデルが多いです。
トラブル時のサポートや脆弱性や不具合に対応したパッチの継続的な提供などは、十分なセキュリティを確保してLinuxサーバーを安定的に運用する場合には不可欠になるため、とても重要です。
有名なディストリビューションとしては、RedHat社の「Red Hat Enterprise Linux(RHEL)」があります。
逆に、上記のような手厚いサポートや保守を求めなければ、全て無償で利用できて、セキュリティパッチも継続的に提供してくれるディストリビューションも多くあります。
このようなディストリビューションを上手く選定することで、高い費用を掛けずにサーバーを構築、運用することが可能になります。
低いスペックの端末でも動作する
前述したとおり、LinuxはグラフィカルなGUIも使用できますが、コマンドによるCUIだけですべての操作が完結できます。
そのため、はじめからGUIをインストールしないで使用することも多いのですが、その場合は、画面の描写やエフェクトなどの処理にリソースが取られることがなく、低いスペックの機器上でも軽快に動作します。
体感的には、Windows系サーバーに求められるスペックの半分程度のコア数やメモリーサイズでも支障無く動作します。
必要とするスペックが低いということは、高負荷で過酷な状況であっても安定して稼働させることができることになるため、大規模なウェブサービスなどで採用されるサーバーOSの大半はLinux系サーバーです。
他のOSSライセンス製品との相性が良い
ここで言うOSS製品とは、サーバー内でサービスを提供するミドルウェアやソフトウェアを差します。
例えば以下のような製品です。
- Apache HTTP Server
- nginx
- MariaDB(MySQL)
- PostgreSQL
- Perl/PHP/Python
- squid
同様の製品は他にも多くありますが、これらの製品群はLinuxにしか対応していないか、またはLinux上で稼働させる想定で開発され、その後WindowsOSにも対応させている経緯があり、Linux上での動作が最も最適化されています。
よって、これらの製品群を利用してサービスを提供する場合、特別な理由が無い限り、必然的にサーバーOSはLinuxを選定することになります。
構築や運用の難易度が高い
前述したWindows系サーバーOSとは真逆の特徴です。
デスクトップ環境があり、マウスを組み合わせて操作するGUIもインストールされたLinuxであればまだ良いですが、リモートで操作することを前提に、CUIしかインストールされていない場合も多く、その場合はコマンド操作しかできません。
そのため、コマンドを知らない場合はファイルのコピーという簡単な操作であっても容易ではありません。
また、アプリケーションなどのインストールもWindowsとは大きく手順が異なります。
ファイルシステムもWindowsでは見慣れた、CドライブにOSを格納し、データ領域としてDやEのドライブレターを指定して……といった仕組みではなく、「 / (ルート)」を頂点としたLinux独自の異なる仕組みが使われています。
「パーミッション」と呼ばれるフォルダやファイルなどに対するアクセス権も数字で表現しており、初見で設定値を理解することは困難です。
何もかもがWindows系OSと異なっており、Windows系サーバーOSのように、初心者でも何となくで操作できる代物ではありません。
よって、Linuxを用いてサーバーを構築したり、運用をする場合は、Linuxの専門的な知識や経験が求められることになり、上級者向けのサーバーと言えます。
Linuxの「ディストリビューション」について
ここまでの記事で、「ディストリビューション」という名称を何度か記載していますが、その「ディストリビューション」についても簡単に紹介しておきます。
一言で「Linux」と言っても、実際には様々な製品があります。
LinuxはOSSライセンスで運用されており、そのソースコードは公開されています。
よって、そのソースコードをダウンロードすることで、誰でもオリジナルのLinuxを作ることができます。
様々な人がLinuxを改変して公開し、なかには大変出来の良いLinuxがあると、そのソースコードをもとに、さらに改変したLinuxが出来上がります。
「ディストリビューション(distribution)」とは、直訳すると「流通」とか「配送」といった意味ですが、Linuxの世界においては、上記のように、公開されているソースコードから派生して分岐していった様々なLinuxの「種類」のことを指します。
主要なディストリビューション
前述したLinuxの「ディストリビューション」ですが、数あるなかでも、サーバー用途で採用されることの多い、メジャーなディストリビューションがあります。
当項では、主にサーバー用途を前提としたうえで、有名なディストリビューションを紹介していきます。
Red Hat Enterprise Linux(RHEL)
前述しましたが、アメリカのRed Hat社が提供している商用Linuxディストリビューションです。
企業が有償でLinuxを利用する場合のデファクトスタンダードと呼べる製品です。
RHELでは、そのバージョンがリリースされてから10年間のサポートを保証するため、サポート切れに伴うサーバーのリプレイスなども少なく済み、このサポート期間の長さも一つの売りになっています。
尚、現在(執筆時点:2021年11月)の最新のバージョンはRHEL 8.4です。
CentOS
Linuxは大きな分類分けの中で、「redhat系」、「Debian系」、「Slackware系」があり、「redhat系」のディストリビューションです。
この「CentOS」は上記の「RHEL」から商標などの要素を排除したクローンOSです。
開発元はRed Hat社とは別であり、今では提携関係にありますが、こちらはRHELと異なり、無償で利用可能です。
当然、Red Hat社の手厚いサポートなどはありませんが、有償LinuxのデファクトスタンダードであるRHELと同等の製品を無償で利用できることは非常に大きな魅力です。
尚、現在(執筆時点:2021年11月)の最新のバージョンは8.5です。
従来のCentOSでは、RHELへの更新を後から自身に反映させる方式でした。
そのため、十分に動作確認も取れた更新内容が適用されることもあり、信頼性の向上にも繋がっていました。
「CentOS Stream」では、流れが逆になり、RHELへ適用予定の更新内容を、先に「CentOS Stream」に適用させるようになります。
「CentOS Stream」で動作検証された更新箇所をRHELへ適用する流れに変わります。
要するにRHELのβ版の様な立ち位置になります。
Ubuntu
近年急速にユーザー増やしているディストリビューションであり、「Debian系」の分類になります。
Debian系のため、アプリケーションのインストール方法がRed Hat系とは異なり、また、ディレクトリ構成もRed Hat系とは若干異なります。
Ubuntuでは、GUIの開発にも力を入れており、デスクトップの見た目や使い勝手の評判も良く、サーバー用途に限らず利用されています。
その他のディストリビューション
私の知る限り、商用環境に導入する場合に、Linuxサーバーを有償で利用するなら「RHEL」、コストを抑えて無償で利用するなら「CentOS」といった選択が以前は定番でしたが、前述した通りCentOSプロジェクトが方針転換を図ったことで、後継の「CentOS Stream」では不安な部分もあり、商用環境でも安定して運用できる無償ディストリビューションについて、明確にこの製品がおススメとは言い辛い状況になっています。
そのため、様々なディストリビューションを広く検討する必要があります。
因みに、個人的には「RedHat系」と分類されるディストリビューションの方が使いやすくおススメしたいのですが、あくまで慣れの要素も大きいので、最終的には「RedHat系」、「Debian系」に拘らず良さそうと思えるものを選定して頂ければ良いかと思います。
参考までにLinuxのディストリビューションの一覧が掲載されているWikipediaのリンクも紹介しておきます。
Windows系サーバーとLinux系サーバーの向いている用途
当項では、Windows系サーバーとLinux系サーバーでそれぞれ向いている用途を簡単に紹介していきます。
サーバーを導入する際に、「常にWindows Server」とか「常にLinux」といった考えではなく、用途や状況によって最適なサーバーOSを選定するべきです。
以下は個人的な選定基準であり、世の中のスタンダードかはわかりませんが、参考にしていただければ幸いです。
Windows系サーバーが向ている用途
個人的にWindows系サーバーが最適だと思うサーバーの用途を紹介していきます。
Windowsパソコン管理用途全般
Windowsパソコンの管理で使用するサーバーとは、具体的は以下のサービスを指します。
WindowsのPro以上のエディションを搭載したパソコンを会社内で管理する場合に使用するサーバー。
パソコンへのログオンアカウントの一元化や、ネットワークリソースに対するアクセス権管理、管理下にあるパソコンの設定などの管理が行える。
この「AD」を利用するにはWindows Serverが必要になります。
「WSUS」は略称であり、正式な名称は「Windows Server Update Services」です。
Windowsパソコンで定期的に適用されるWindows Updateの配信を集中管理するためのサーバーです。
「WSUS」を使用しない場合、Windows Updateは各端末ごとに個々のタイミングで適用され、適用されるパッチの種類を制限することはできません。
「WSUS」を使用することで、管理下のWindowsパソコンのWindows UpdateはWSUSサーバーを介して実施されるようになり、システム管理者が許可したパッチのみ適用されるような運用が可能になります。
この「WSUS」を利用するにはWindows Serverが必要になります。
企業内で使用される様々なファイルを一元的に管理するためのサーバーです。
ファイルサーバーとして必要な機能は、ネットワーク上で特定のフォルダを様々なユーザーで共有してアクセスできるようにして、それに対して必要によってアクセス権を付与できれば良いという単純なものであり、それだけであればLinuxサーバーでも十分構築可能ですが、前述したActive Directoryと相互に連携させる場合はWindows Serverを使用して構築したほうが便利です。
上記のなかでも、特に「Active Directory」については、ある程度の規模の企業で自社の端末を管理するためにはほぼ必須のサーバーです。
このサービスを利用するためには、Windows Serverが必要になります。
Linuxで構築したサーバーでは、「Active Directory」における管理サーバーの役割である「ドメインコントローラー」にはなれません。
また、ファイルサーバーについては、Active Directoryとの連携がし易いという理由以外にも、Windows Serverで構築することのメリットがあります。
例えば、Windows Serverでは、VSS(Volume Shadow Copy Service)と呼ばれるボリューム内の状態のスナップショットを取得し、世代管理できる機能があります。
この機能を利用することで、一週間前の特定のタイミングまでファイルの状態を戻したり、消してしまったファイルを復元することができます。
この機能はファイルサーバーとの相性も良く、やはりファイルサーバーを構築するのであれば、Windows Serverを使用して構築することをおススメしたいです。
ASP.NETを使用したウェブアプリケーション用サーバー
ウェブアプリケーションを動かせる開発言語やプラットフォームは色々ありますが、Microsoftが提供しているASP.NETと呼ばれるウェブアプリケーションフレームワークを用いたウェブアプリケーションを動かすには、「IIS」と呼ばれるウェブサーバーが必要になります。
その「IIS」はMicrosoftが開発したウェブサーバー用のミドルウェアであり、Windows Server上でしか利用できません。
Linux用のIISは存在しません。
そのため、ASP.NETを使用してウェブアプリケーションを作成する場合、そのアプリケーションを稼働させるウェブサーバーは必然的にWindows Serverを選定する必要があります。
「SQL Server」を使用したデータベース用サーバー
国内で使用されているRDBMS(Relational DataBase Management System)のなかでも大きなシェアを占めるMicrosoftの「SQL Server」ですが、こちらを稼働させるサーバーでは、Windows Serverが望ましいです。
最近では「SQL Server on Linux」と呼ばれる、Linux上で動く「SQL Server」も提供されていますが、まだ利用実績も少なく、一般的ではありません。
また、Linux用に「SQL Server」を新しく開発したわけではなく、Windows用の「SQL Server」に対して「SQL Platform Abstraction Layer(SQL PAL)」と呼ばれるOS用レイヤーをLinuxとの間に挟み込み、Linux上で操作できるようにしたイメージです。
まだLinux版SQL Servrはリリースされて日が浅いこともあり、当面は「SQL ServerはWindows Server上で利用する」といった認識で変わりはないかと思います。
OSの保守サポートが必要な場合
Windows Serverを利用するのであれば、何かトラブルがあった場合や、技術的に不明点などがあれば、Microsoftのサポートを受けることができます。
Linux系サーバーでもディストリビューションによっては有償サポートを提供しているものもあるので、同様にサポートを受けることができますが、実際のOS選定では、有償サポートがないディストリビューションが選ばれることも多く、トラブル時には有志のコミュニティなどに頼るか、頑張って自己解決をさせることが必要になってきます。
それであれば、Windows系サーバーOSを選定しておいて、トラブルが起こった際に頼る先を確保しておくことも非常に重要です。
Linux系サーバーが向いている用途
当項では、Linuxサーバーが最適だと思うサーバーの用途を紹介していきます。
「LAMP」を使用したウェブアプリサーバー
ウェブアプリ開発の世界では「LAMP」と呼ばれる定番のシステム構成があります。
具体的には以下の構成です。
- L:Linux
- A:Apache HTTP Server
- M:MySQL/MariaDB
- P:Perl/PHP/Python
OSはLinuxを使用して、ウェブサーバーにApache、データベースはMySQL(又はMariaDB)、プログラミング言語はPerl、PHP、Pythonといったスクリプト系言語を使用する構成です。
Windows ServerでもApacheをインストールすることはできますし、Windows Server標準ウェブサーバーのIISでは、Perl、PHP、Pythonを動かすこともできます。
また、MySQLはWindows版も用意されています。
よって、OSにWindows Serverを選定した上で、OS以外を「LAMP」にする構成も作れるのですが、それはあまりオススメできません。
その理由としては以下です。
- Windows+LAMPは経験豊富な技術者が少ない
- Linux上で稼働させた方が動作は軽い
- Windows Serverのライセンス費用が発生する
「LAMP」はウェブアプリ開発において定番の構成です。
また、それらはすべて無償で利用できます。
定番の構成であり、さらに無償で利用できるのであれば、当然その構成に精通しており経験の豊富な技術者も多いと言えます。
よって、新しくシステムを構築する場合や、そのシステムを運用する場合においても、担い手に困ることが少ないとも言えます。
その反面、Windows系のサーバーOSでApacheを稼働させたり、MySQLを使用したり、IIS上でPHPなどを動かす構成はそれほど一般的ではありません。
あまり使われない構成であれば、その構成における構築や運用のノウハウも少ないですし、精通する技術者も希少です。
ウェブサーバーにはApacheを使う、開発言語にはPHPやPerlを使うといった案件においては、特別な理由がない限りLinuxサーバーで構築するべきです。
こちらも前述したように、GUI操作を前提とするWindows Serverに比べ、CUIで操作が完結するLinuxサーバーの方が低いスペックでも軽快に動作するという部分がありつつ、更に、「LAMP」を構成するLinuxOSはもちろんのこと、ApacheやMySQL、PHPなどのスクリプト言語もすべて「OSS」であり、Linux上での動作で最適化されています。
そのため、LinuxサーバーでLAMPを利用する場合は、Windows上でこれらのミドルウェアやウェブアプリケーションを動かすよりも、より少ないリソースで、より高い信頼性を確保して運用することができると言えます。
Windows Serverを利用すると言うことは、ライセンスを購入したり、CALの購入が必要になるということです。
また、自前でWindows Serverを用意せず、データセンターのホスティング業者やIaaS環境でWindows Serverを利用する場合は、「SPLA(Services Provider License Agreement)」と呼ばれるOSの利用費用を毎月継続して支払うことになります。
せっかくApacheやMySQLなどのOSS製品を主体にシステムを構築しているのであれば、OSもLinuxを選定することで、ライセンス費用については大きく軽減することができます。
特定の機能に特化したシンプルなサーバー
このシンプルなサーバーとは例えば以下のようなサーバーです。
- メールサーバー
- プロキシ/リバースプロキシサーバー
- FTPサーバー
- ファイルサーバー
- DNSサーバー
今や自前でメールサーバーを構築することも少なくなり、外部のメールサーバーを利用することも多いかと思いますが、自前で構築する場合は、Linux一択です。
メールサーバー用のミドルウェアとして、有名な製品として「Postfix」が多く使われており、他にも「Sendmail」や「qmail」などもあり、それらはすべてOSSであり、無償で利用できます。
また、Windows Serverはこれらのメールサーバー製品に対応していないため、必然的にLinux上で構築することになります。
ブラウザを使い、内部ネットワークからインターネットに出てウェブサイトを閲覧する際の通信を中継したり、ウェブサーバーへウェブページを取得する処理をクライアントの代わりに実施する仕組みを「プロキシサーバー」、インターネットに公開し、外部のインターネット側からウェブサーバーへのアクセスを仲介し、インターネット側から直接サーバーへのアクセスをさせなくて済む仕組みを提供するのが「リバースプロキシサーバー」と呼びます。
「プロキシサーバー」は、企業のクライアント端末のセキュリティ目的で導入することが多く、「リバースプロキシサーバー」は、ウェブサーバーなどインターネットに公開するサーバーを不正アクセスなどから守る目的で導入されることが多いです。
このようなサーバーを構築するときも、やはりLinux上で作るのが一般的です。
「FTP(File Transfer Protocol)」は名前の通り、ファイル転送を行うためのプロトコルであり、そのサービスを提供するのが「FTPサーバー」です。
ただ、従来の「FTP」は通信の暗号化もできずにセキュリティにおいて脆弱であり、FTPをそのまま利用することは少なくなっています。
現在では、「FTPS(File Transfer Protocol over SSL/TLS)」と呼ばれる、従来のFTPの通信をSSL/TLSで暗号化して利用する使われ方や、「SFTP(SSH File Transfer Protocol)」と呼ばれる、FTPの名前が付いているが、実際にはSSHでファイル転送をする仕組みを利用することが大半です。
この「FTPS」や「SFTP」であっても、やはりLinux上で構築するのが一般的です。
Windows系サーバーOSに向いている用途としてファイルサーバーを既に提示しているのですが、Linux向きとしても紹介しておきたいです。
Windows系サーバーで構築する場合のメリットとして提示したのは以下でした。
- ActiveDirectoryとの連携がし易い。
- VSSが利用できる。
ただ、Linuxではファイルサーバーに向いていないかと言えばそういった訳ではなく、ActiveDirectoryと連携して、ドメインユーザーやグループ単位で共有フォルダのアクセス権を設定するもできます。
VSS自体の機能はLinuxには無いのですが、その代わり「rsync」コマンドがあり、特定のフォルダ間やネットワーク越しでのファイル同期が手軽に行えます。
Linuxをサーバー筐体にインストールしてファイルサーバーを構築するケースは少ないのですが、市販されている比較的安価なNAS製品の中身はたいていがLinuxだったりします。
その為、知らず知らずのうちに、Linux製のNASでファイルサーバーを使用しているケースは非常に多かったりします。
よって、安価に構築できるファイルサーバーの選択肢の一つとして、Linuxを検討してみても良いのではないでしょうか。
「DNS」とは、「Domain Name System」の略称であり、インターネットの仕組みのなかで、クライアントに対して、www.example.comといったドメイン(FQDN)からIPアドレスを返す目的などで広く利用されています。
今どきDNSサーバーを自前で構築することは少なくなっており、社内向けDNSであれば、前述したActive Directoryでもセットで使用するWindowsServer純正のDNSサーバー機能で事足りることも多いのですが、一般的には、DNSサーバーを作るとなったら、Linuxに「BIND」と呼ばれる有名なDNSサーバーソフトをインストールして利用します。
「BIND」はシェアの高さと、長年の機能拡張で内部処理が複雑化しており、それに伴って度々脆弱性の指摘を受けて、「脱BIND」といった運動もありますが、やはり、DNSサーバーのデファクトスタンダードは「Linux+BIND」であることに変わりはありません。
最後に
今回の記事では、Windows系サーバーとLinux系サーバーの特徴を紹介し、用途ごとに向いているサーバーOSを紹介しました。
今回の記事でお伝えしたいのは、Linuxを覚えて自らLinuxでサーバーを構築したり運用することを推奨している訳では無く、システムにおける最適な構成を検討する知識にしていただき、SIベンダーなどとのやり取りで適切なシステム構成を指示したり要望できるようになってもらえると良いなという意図で書きました。
Linuxの実務的な知識や技術が無ければ、構築や運用はベンダーにお任せすれば良いですし、それらをベンダーにお任せしたとしても、それによりシステムが安定的に稼働できたり、低いコストで導入できたり、稼働に必要なスペックを抑えることができれば、結果的にベンダーにお任せした分のコストをそれらの相乗効果で相殺できる場合もあります。
大事なのは実作業をするための知識ではなく、数ある技術や製品の特性を理解して、状況に応じて最適な選択ができるようになることだと考えます。
今回も長々と読んでいただきましてありがとうございます。
それでは皆さまごきげんよう!