最近よく来る問い合わせで、Linuxのどのディストリビューション(OS)を使えばいいかわからなかったので、聞いたことのあるこれを選択しました。
と、事後に聞いて、もう手に負えないってなってしまっているお客さんからの問い合わせがすごく増えています。
実はすごく大事なディストリビューション選びです。
ちょっとだけLinuxの世界で繰り広げられているディストリビューションとバージョンの世界をご紹介したいと思います。
ディストリビューションとは
Linuxの世界では、『ディストリビューション』という言葉をよく耳にします。
ディストリは何使ってんの?なんて、日常会話レベルですw
さて、そのディストリビューションとはいったい何のことでしょう?
OSの名前みたいなものです
Windows、iOS、Androidなど
それらと同じです。
Linuxというのは基本的な基幹部分を公開している(オープンソース・GPLライセンスというモノ)OSで、LinuxカーネルといわれるOS部分、基幹部分は共通なんです。
WindowsはWindowsカーネルといわれる基幹部分があって、オープンソースではないため、Microsoft社だけが、Windowsカーネルを使ってWindowsといわれるソフトを作っています。
iOSや、Androidも同じです。
そんなLinuxカーネルは無償公開されているためそれをベースに、WindowsやMacのようなOSを作るぜ!
っていう会社がたくさんあって、いろんなOSができていきます。
それをディストリビューションといいます。
ubuntuとFedora
Linuxを触っておかないとなー、なんて思ったとき、本屋さんでとりあえず書籍を買ってくるという方も多いと思いますが、初心者向けの書籍の場合、ディストリビューションがFedora、ubuntoをベースに書かれている書籍が圧倒的に多く、そのため、FedoraをベースにWEBサーバーを組んでしまって、1年後、入れ替えの必要が出てきた際に、困ったことになる。。。というケースが非常に多いのです。
Fedoraは実験的な最先端技術を織り込んだOS
Fedoraは、もともと、RedHat社がRedHatLinuxという、オープンソースディストリビューションの開発終了と同時に立ち上げたプロジェクトです。
RedHat社が公式にサポートするディストリは、RedHatEnterpriseLinux(RHEL)のみとすることになり、Redhatというディストリビューションが消えました。
RedHatは、WEB系のサーバーに多く搭載されており、当時RPM(RedhatPackegeManager)になれていたLinuxエンジニアは、有償のRHELに移行するか、別の系統のLinux、日本だと、turboLinuxなどに移行するかをよく議論した時代でした。
そんな中で、RedHat社はオープンソースコミュニティを維持すべくFedoraプロジェクトを立ち上げました。
ただし、RedHatLinuxの時代は、何やかやでサポートが2年~3年と続くものが多かったのですが、Fedoraは、ながくて1年、短いものだと半年程度のサポートと定められ、サーバー用途としてはちょっと使いにくいものになりました。
ハードウェア・機械のリプレイス(入れ替え)のタイミングでディストリも新しいバージョンに移行するライフタイムを考えると3~5年のサポートはほしいところでした。
ライフタイムを気にしなくなってきた~仮想化技術の台頭~
現在は、3~5年でハードを入れ替えるタイミングだから、3~5年ほどサポートがあるディストリビューションを選ぶようにしているケースも多かったのですが、近年はそうでもなくなってきました。
ハードに直接導入するディストリ自身に導入するパッケージは仮想化パッケージのみとしぎりぎりまでセキュリティ強度を高め、実際に運用する部分のディストリの部分から仮想化し、仮想サーバー内に様々なパッケージを導入して稼働させるケースが非常に増えました。
また、WEB系のサーバーであれば、メール関係(アカウント・メール自身のデータ)と、WEB関係、DB関係のデータですが、マイグレーション機能でサーバーからサーバーへデータを移転、DNSを切り替えるとサーバーマシンの引っ越しがいとも簡単にできるようなソフトもたくさん出回っています。
そのため、実運用部分のディストリのサポート期間をあまり気にしなくはなってきました。
とはいえ、そんなマイグレーションも頻繁にやることではないので、それでも2~3年くらいはサポートが続くディストリを使いたいところですね。
Fedoraは、次々に最新のバージョンが出てくる特徴を持つディストリとして一定の地位を獲得しました。
本家RedHat社のRHELは、現在最新バージョンが7(2019年11月現在)ですが、そろそろ8が出るかもしれないといわれ始めました。
Fedoraについては、現在(2019年11月現在)は、バージョンが31と、びっくりするくらいのバージョンになっています。
ただ、Fedoraは、最新技術を織り込んでいく革新的なディストリという位置づけでの開発なので、RHELに置き換えるとこうなるという大体のバージョン対応表があります。
Fedoraバージョン | RHELバージョン |
Red Hat Linux 6.2 | Red Hat Linux 6.2E(当時は同じディストリで有償サポートあり・なしというモデルだった) |
Red Hat Linux 7.2 | Red Hat Enterprise Linux 2.1 |
Red Hat Linux 9 | Red Hat Enterprise Linux 3 |
Fedora Core 3 | Red Hat Enterprise Linux 4 |
Fedora Core 6 | Red Hat Enterprise Linux 5 |
Fedora 12 / 13 | Red Hat Enterprise Linux 6 |
Fedora 19 / 20 | Red Hat Enterprise Linux 7 |
Fedora 28~ |
Red Hat Enterprise Linux 8 |
大体の対応は上記表のとおりとなります。
現在リリースされているRHELは、公式リリースが7で、Beta版の公開が8です。そのうえでFedoraはバージョン31まで上がっていますので、8に織り込んでいく予定の最先端技術はバージョン3つ分ほど蓄積されているという状態といえます。
サーバー用のパッケージは枯れたものを使えの格言
メール用、WEBようのパッケージもさることながら、ディストリビューションも、枯れたバージョンを使うのが良いと、先輩に言われることがあります。
これは、最先端パッケージを使うとどんなトラブルやバグに直面するかわからないのである程度理解が進んでいるものを使うようにすればよいということなのです。
現状でRHELの8を使うのは少々怖い面がありますね。
公式リリースされてから使うくらいでちょうどいいのです。そういう意味ではFedoraは、最先端の最先端なので、エンタープライズ版には結局非採用のなってしまうようなパッケージもあり、それを使っていると、公式リリースされたときにもう使えないものになっていた。。。なんてことも結構あります。
サーバーに入れないGUI画面を入れてみたら。。。
当時、Macだったと思うのですが、3Dデスクトップなるものが流行って、ようは、デスクトップ画面がさいころのような立方体で、角をドラッグするとぐるぐると回転して別のデスクトップ環境に切り替えることができるという疑似的なマルチデスクトップ環境みたいなものがありました。
Windowsは、10に至るまで完全無視を決め込みましたが、Linuxは素早く反応。そういうデスクトップ環境を作れるGUIパッケージが登場しました。
GPUのスペックなど、ハードウェア要件もあったと思いますが、とりあえず、Linuxで3Dデスクトップの世界が手っ取り早く見ることができるんだと興奮したのを覚えています。
しかし、枯れたパッケージの集合体のエンタープライズ版ではまだ正式リリースされておらず、私が手軽に導入できるディストリならFedoraの、当時最新バージョンなら入れることができることがわかりました。
また、ちょうどXenという、仮想化技術が注目されつつある中で、Fedoraには、初期段階からXenの導入パッケージが組み込まれるバージョンでもありました。
ちょうどいいということでオークションで安いノーパソを購入してFedoraを入れてみました。
3Dデスクトップの実現がかないましたが実際はそんなに使い勝手がいいわけでもなく、オークションで買った中古のノートPCでは、重くて使い物になりませんでした。
また、サーバー用途のLinuxには、GUIなど絶対に入れないので、ま~見て楽しめたからいいか。。。程度でした。
Xenについてはいろいろ検証し、今後ビジネスに活かせるかもと思ってたのを覚えています。
そして、いざ、RHELの新しいバージョンがリリースされたとき、まず検証するためにテストマシンに導入してみたところ、びっくりしたのが3Dデスクトップは非採用でした。
Xenについては導入こそされていましたがまだまだサービスとしては弱かったのか、おまけ程度の導入になりました。
(仮想化技術については、その次のバージョンあたりから本格的に導入が進められたのを記憶しています。)
このように、最先端技術は、見送られたり、その次のバージョンで正式に組み入れたりということも頻繁です。
なので、Fedoraになれてしまうと、安定性の高いエンタープライズ版のLinuxが使えなくなってしまうことも多々あります。
なので、私の中では遊びでFedoraを入れることがあっても、サーバー用途で、Fedoraは、検討にも値していません。
最新のFedoraなら、このパッケージが入っているからそれを使ってサーバーを構築してほしいという依頼が舞い込んでくることもありますが、私は基本的にやりません。ほかの方法でやりたいことを実現できる方法を提案するか、断ります。
なぜなら、Fedoraでは、サーバーの維持を保証できないと思っているからです。
ubuntuは、遊びと緊急時のディストリだと心がける
もう一つ、大変よく一般の方が導入したがるのがubuntuです。
こちらも書籍になっていることが多く、そして、Linux系の雑誌の付録で毎号ついてくるディストリだったりもしています。
なので、身近なんでしょうね。
最大の特徴はインストールせず使えるところ
ubuntuが、雑誌などで頻繁に紹介される理由の一つが、試用と称するCD(DVD)ブートでそのまま使えるLinuxというところです。
ガッツリとOSをインストールせずとも、Windowsが入っているPCに、DVDを入れて試用するを選択すると、DVDのまま、インストールをせずにLinuxを使えます。
おためしで使ってみるにはちょうどいいディストリなんですね。
HDDのデータ救済などで役に立つ
このubuntuに関しては私は1枚DVDを作って持ち歩いています。
それは、先述のDVDのまま起動してLinuxが使える機能のためです。LinuxというOSは、様々なファイルフォーマット形式を認識できるOSなので、Windowsが壊れてしまって動かなくなったPCのファイルだけを抜き出したい。。。
そんな以来の時に大変役に立ちます。例えば、Windowsが、何かの都合で起動しなくなった。
中にある子供の写真データだけでもなんとか抜き出したいという方がいたときに外付けHDD(USBフラッシュメモリ)と、ubuntuがあればOK
DVDでubuntuを起動してWindowsが動いていたHDDから該当する写真フォルダをUSBにコピーするだけ。
これで、データが抜き出せます。
※もちろんHDDが物理故障していないのが前提です。
こちらのディストリもFedora同様、初心者向けに作られている絡みもあってGUIが標準であったり、パッケージは標準的にワンパックでインストールされてしまうので、サーバー運用にはあまり向いていません。
WindowsやMacの代わりに採用するOSとしてみるのであればそれほど悪くはありません。
Office互換の表計算・ワープロソフトや、WindowsにもあるWebブラウザのFireFox、同じようにメールソフトのThunderbird、画像編集ソフトなどが入っています。
Microsoft社製のソフトじゃないとどうしてもだめだという方以外なら同じようなことを互換性のあるソフトで実現可能です。OSや、ソフトにお金がかからなくて済みます。
しかし、残念なことに、入門者向けの書籍だと、Fedoraと、ubuntuで、構築する書籍が多いため初心者ほど、これらのディストリを採用してしまい、後々困ることになります。
サポートがキレたらどうなるの?
Fedoraは、早ければ半年、ubuntuは、大体1年程度で公式サポートが終了します。
ながくても1年程度です。
では、1年後、サポートがキレたらそのディストリはどうなるのでしょうか?
アップデートがなくなる
自分でパッケージを探してアップデートをかけることはできると思いますが、Windowsアップデートのような自動的にアップデートをチェックしてアップデート作業をしてくれるサポートが無くなります。
これが一番致命的問題です。
なぜならば、WEB系のサーバーであれば24時間・365日稼働して当たり前という前提で設計しますから、常時人間が見ているというわけにもいかないのです。
なので、セキュリティ強化、セキュリティアップデートは必須で、バグ潰しを頻繁に行わないと大変あぶないのです。
一般的にはサポート期間内であれば定期的にアップデートが提供されコマンド1つでアップデートをかけることができます。
エンタープライズ版の場合、お金を払っていれば原則いつまででもサポートがつづきます。(あまりにも古いバージョンの場合、向こうから期限が切られることもありますが、そこまで枯れているバージョンの場合はさすがにバージョンアップしましょうw)
文献が減っていく
また、バージョンが古いものは利用している人もどんどん減っていくので該当バージョンの文献がどんどん少なくなっていきます。
同じディストリでも最新版ならできるけどこのバージョンより古いものではできないという文献ばっかりになっていきます。
結果、ハッキングされてぐちゃぐちゃに
セキュリティホールが開いたままで、対処方法はバージョンアップなんだけどバージョンアップができずに手をこまねいていると、クラッカーが(悪意のあるハッカーはクラッカーといわれます。)どこからともなく、それこそハエや蚊のようにどこからともなくわいてきて、そして、アタックをうけ、SPAMの踏み台やウィルスを撒き散らす結果になります。
調べていくと、やっぱり気にしてたソフトのオールドバージョンのバグを付かれていた。。。あぁあの時アップデートをかけることができていれば...なんて悩んでいると、警察が事情聴取に来ましたって来るんですね。
サーバーというのはそういう危険性をはらんでいるのです。
私が選ぶディストリビューション
私だけが正しいわけではないですし、中には、半年に1度ディストリを入れ替えるつもりであえてFedoraを入れる方もいます。
20年近く、WEBサーバーを構築してきた私のスタンスはこうですということを認識してお読みください。
エンタープライズ系のディストリを選ぶ
まずは、これです。エンタープライズ系、要は、サーバーサービス提供用のディストリとして開発されているものを使います。
有償・無償にかかわらずまずはエンタープライズ系なのかどうかを調べます。
ただ、はっきりとそうだというのがわかるわけではないので、どの系に力を入れているのか、どんな系でよく使われているのかを調べるという感じでしょうか。
私の場合は、ホスティング業者、WEBサーバー、メールサーバー、DBサーバーによく使われているディストリという探し方・調べ方をします。
パッケージ管理が楽なものを選ぶ
私はRedHatLinuxをずっと使ってきていましたので、RPMでパッケージが管理できるものがやはりうれしかったのでRPMが使えるディストリを探します。
これも、エンジニアの育ち方の違いで好みは違うので、絶対にこれが正しいとはいえませんが、RPMは、管理が楽ですのでおススメです。
アップデート用のパッケージやサービスがあるものを選ぶ
先述の通り私はRedHatLinuxで育ってきたのもあって、up2dateもしくはそれに相当するパッケージが使えるディストリを探します。
私がいつも使っているディストリはこれ!
といっても、いつもいつもサーバーを構築するたびに探しているわけではありませんw
そりゃそうですよ。あの会社のディストリは●●で、この会社のサーバーのディストリは◇◆でみたいに管理できるわけないですw
なので、導入するディストリはお客さんに何らかの事情が無い限り決まっています。
私の場合はCentOSを基本的には採用しています。CentOSは、RHELのオープンライセンス部分だけを抽出したクローンディストリビューションといわれるものです。
もう少し簡単に言えばRedHat社が作っているEnterpriseLinuxの大半の部分はオープンソースライセンスのパッケージです。
up2dateなど、RedHat社にライセンスがある(使いたければお金を払ってください)部分を省いたら、オープンソースなので他者が自由に使ってもいいものになります。
そうやって、有償部分だけを取っ払ったディストリがCentOSです。
過去には、サイトにRedHatが開発ベースであるなどとRedHatという名称が掲載されているとしてRedHat社の顧問弁護士から警告文が送られてきて削除するなどということもあったが、現在はCentOSの開発支援にRedHat者が協力するような状況になりつつあります。
Web系のサーバーの場合、RHELを有償で買うほどのサポートを受ける必要もないためやや高額になってしまう。
CentOSは、オープンソースライセンスの部分だけを抜き出した実質RHELの派生物になる。Apacheや、Proftpd、PostfixなどはRHELと同じパッケージで行けてしまうし、文献もCentOS向けのものと同時にRHEL向けのものも文献対象となるのです。
RedHat社としても自社のディストリのセキュリティホールの発見やアップデートパッケージの開発でCentOSユーザの文献も相当頼りになる情報になるため敵対するより支援したほうがより利益が大きいと判断したのであろうことが想像できます。
CentOSではup2dateは使えないけど、yumが使える!
何度も書いてきましたが、もともとRedHatLinuxを使っていた私はup2dateのおかげで難なくセキュリティパッチを当てたサービスを提供し続けてこれたと思っています。
コマンド1つでアップデートできるのですから、それはそれは楽ですよね。
しかし、CentOSにはそれが無いのです。
最初の頃は慣れていないのもあってめちゃくちゃ焦りましたが、相当する別のパッケージyumというのが存在します。
ほぼup2dateと同じです。
仕組みは昔聞いた話なので今も同じなのかはわかりませんが、
RHELがリリースしたアップデートパッケージの中でGNUライセンスのパッケージだけを抽出しCentOSのyumリポジトリに乗せてアップデートさせるとしていると聞いたことがあります。
なので、RHELよりほんの少し遅れてアップデートパッケージが出るのです。
WEB系のサーバーであればその程度でも十分間に合いますから、CentOS利用サーバーが圧倒的に多いのでしょうね。
yumはすごい!拡張パッケージ用のリポジトリも多数!
yumは、GNUフリーソフトウェアライセンスなので開発・派生物開発は基本的に自由です。
なのでyumを利用して自社のソフトのアップデートを提供したり、PHPやMySQLなどの拡張パッケージなどを特別なリポジトリで提供したりPerlモジュール専用のリポジトリがあったりします。
これらをうまく使うことで今までだったら、tarのファイルをダウンロードしてきて解凍、Makeファイルを作ってコンパイルしてインストール。一歩間違ったらくちゃくちゃになるパッケージインストールがyum一つでRPMパッケージとして管理できるようになります。
私は原則、yumで管理できないものは入れないようにしています。
CentOSバージョンについて
現在のCentOSは、正式リリースバージョンは7となっています。
これは、RHELが7ですから同じになります。
8も出ている!
先ほどCentOSの公式サイトを見てきたら8もリリースされていました。
さすがRedHatが支援に乗り出していることもあって逆に少し早めに公式リリースしているのかもしれませんね。
ただ、8はまだちょっと怖いかな。。どんなセキュリティホールがあるかわからないのでもうちょっと待ってもいいかな。。。と思います。
今すぐサーバーを立てる必要がある場合は8でもやむなしです。
今7を入れると安定してきた8に入れ直しの必要が出てくるからです。
慌てなくていい場合は構築自身をもう少し先延ばしにするのがいいんじゃないでしょうか。