ウェブサイト検索

クラウドサーバーに適したLinuxディストリビューションの選び方


Linuxは複雑なオープンソース環境に存在し、世界中のプログラマーによってさまざまなディストリビューション(ディストロ)が開発されており、同時に大企業からも支援を受けています。新しいサーバーにどのディストロをインストールすべきですか?

これらのディストロの違いは何ですか?

クラウドサーバーでLinuxを実行しているとき、SSH経由でアクセスしていることが多く、GUIではないため、デスクトップ環境の違いはあまり重要ではありません(全く重要でない場合もあります)。サーバー上で任意のLinuxディストリビューションを技術的に実行することは可能ですが、サーバー使用に最適化されたディストリビューションを選ぶのが最良です。

ほとんどのディストリビューションは、どのソフトウェアがプリインストールされているかと、Linuxの「系統樹」のどこに位置するかによって異なります。ほぼすべてのLinuxディストリビューションはオープンソースであり、多くのディストリビューションは他のディストリビューションを基にしています。たとえば、UbuntuはDebianを基にしており、多くのディストリビューションはUbuntuを基にしています。Red Hat Enterprise Linuxはフォークされ、CentOSになり、Red Hat(会社)がCentOSの開発をサポートしました。AmazonはCentOSをフォークして独自のディストリビューションを作成しました。これらのディストリビューションは似たようなソフトウェアをインストールしますが、正確なバージョン番号はディストリビューションによって異なります。

実際には、サーバー用に設計されたほとんどのディストリビューションは比較的似ています。結局のところ、すべてがLinuxなので、あまり知られていないディストリビューションを使用していない限り、実行したいソフトウェアはおそらくあなたのシステム用にコンパイルされているか、いずれにしても互換性があります。最大の問題は、特定のディストリビューションでフォルダ構造が異なることですが、Ubuntuのように、そのディストリビューション特有の特性に慣れる必要もあるかもしれません。

apt

パッケージマネージャー、RHEL、CentOS、およびAmazon Linuxは使います

yum

この問題を解決する一つの方法は、Dockerのようなコンテナ化サービスを使用することです。Dockerはアプリケーションをコンテナにパッケージし、実行しているオペレーティングシステムに関係なく同じように動作します(そのディストリビューションにDockerのバイナリがコンパイルされていると仮定します)。他のディストリビューションを「エミュレート」することさえ可能です。例えば、UbuntuでCentOS上で動作していると思われるコンテナ化アプリを実行しているサーバーを持つことができます。これはDockerがコンテナのネームスペースのみを変更するからであり、すべて同じLinuxカーネル上で動作しているからです。そのサーバーをFedoraを実行している別のプロバイダーに切り替えると、アプリを再実行するために必要なのは、新しいシステム上でアプリのコンテナをコピーして実行することだけです。

UbuntuサーバーLTS

Ubuntuはおそらく最も有名なLinuxディストリビューションです。無料でオープンソースであるため、ほとんどのクラウドプロバイダーがオプションとして提供します。デフォルトでない場合でも、将来的に新しいプロバイダーに移行する際は、移行がスムーズに行えるはずです。

Ubuntu Serverは非常に汎用性のあるディストリビューションです。他の競合ディストリビューションの詳細に深入りすることを気にしないのであれば、Ubuntuをインストールして忘れてしまっても問題ありません。

Ubuntu Serverにはいくつかのフレーバーがありますが、最新の長期サポート(LTS)リリースをインストールすることをお勧めします。これは、毎年4月に2年ごとに公開されます。現在の最新バージョンはUbuntu 18.04.2 LTS(バイオニックビーバー)で、20.04 LTSは来年の4月に予定されています。ただし、Canonicalは2022年までUbuntu 18.04 LTSをサポートしており、2027年まで延長セキュリティパッチが提供されます。

Ubuntuはオープンソースで、Canonicalのパッチは無料ですが、同社はUbuntu Advantageという有料サービスを提供しており、24時間365日の電話およびウェブサポートを提供しています。特に注目すべきは、Canonical LivepatchとLandscapeという2つの非常に便利なサービスへのアクセスも提供されることです。

Livepatchは、システムを再起動せずにカーネルアップデートを自動でインストールし、重大なカーネルバグが発生してもサーバーを稼働し続けることを可能にします。3台のマシンまでは無料ですが、それ以上の台数にはUbuntu Advantageが必要です。Landscapeは、システムの健康を監視し、複数のサーバーでパッケージのバッチアップデートをインストールするために設計された管理ツールです。

Ubuntuに似たミニマルなディストリビューションを探している場合は、Ubuntuが基づいているディストリビューションであるDebianを試してみると良いでしょう。ただし、ベアDebianのサポートはコミュニティベースであり、あまり人気がありません。

アマゾンLinux

Amazonは、彼らのサービスで使用するための独自のLinuxバージョンを提供しています。それには、AWSリソースを管理するためのツールがプリインストールされており、AWS CLIインターフェースが含まれています。また、他のディストリビューションと比べての正確な性能の利点は不明ですが、「Amazon EC2での最適なパフォーマンスに調整されています」。

Amazon Linuxには、ハイパーバイザー下で複数のEC2インスタンスを実行する際に、Amazon側のコストを削減するために設計されたパフォーマンス最適化が含まれている可能性がありますが、Ubuntuと比較して実際にシステムが速く動作しているのを見ることはないでしょう。

Amazon Linuxは、新しいEC2インスタンスを作成するときにAmazon Machine Image(AMI)として提供されます。最初のオプションなので、EC2サーバーを迅速に立ち上げた場合、特に指定しない限り、Amazon Linux上で動作している可能性が高いです。

特定のクラウドプロバイダー向けに構築されたディストリビューションは優れた統合機能が付いていますが、Amazon Linuxの主な欠点はAWSに限定されることです。クラウドプロバイダーを変更したい場合、新しいオペレーティングシステム上でソフトウェアを構成するのに時間を費やさなければならず、必然的に問題が発生することになります。最も簡単な移行は、Amazon Linuxが基づいているディストリビューションであるCentOSへの移行でしょう。

Amazonはカーネルのライブパッチサービスを提供していませんが、サードパーティのKernelCareを使用することをお勧めしており、その料金はサーバー1台あたり月額2ドルです。

CentOS、Red Hat Enterprise Linux、Fedora

これらの3つのディストリビューションはすべてコミュニティを共有しており、非常に似ています。Red Hat Enterprise Linux(RHEL)は、企業サーバー向けの非常に人気のあるディストリビューションですが、ほとんどのLinuxのバージョンとは異なり、無料ではありません。最近、Red HatはRHELの開発専用ビルドを提供し始めました。

FedoraはRed Hatのアップストリームソースであり、新機能はRHELに移行する前にFedoraで実装され、テストされることを意味します。そのため、このディストリビューションはかなり頻繁に更新され、安定したサーバーディストリビューションよりも「最先端」です。

CentOSはRHELのダウンストリームソースです。基本的にはRHELの無料版ですが、別のチームによって維持され、Red Hatからは独立しています。Ubuntu以外の無料のディストリビューションを探しているなら、CentOSが最も有力な候補です。Ubuntuよりもはるかに使用されていませんが、更新頻度が低いため、クラウドサーバーの世界では良い点でも悪い点でもある可能性があります。

RHELとCentOSに関する重要な点は、cPanelという人気のあるウェブホスティングコントロールパネルを公式にサポートしている唯一のディストリビューションであるということです。cPanelを使用したい場合は、CentOSを使用するか、Dockerイメージで実行しようとする必要がありますが、それは時間を節約するために設計されたアプリケーションにはおそらく手間がかかりすぎるでしょう。

Red Hatは、カーネルライブパッチ用のユーティリティであるKpatchの開発者です。Kpatchは無料ですが、自動化されておらず、必要なときに手動でパッチを適用する必要があります。RHELやCentOS、Debianで動作します。

関連記事: