🙃

UbuntuではなくUbuntuServerを選ぶ理由

に公開

はじめに

Linuxディストリビューションの代表格であるUbuntu。
多くの人が「Ubuntu」と聞くと、グラフィカルでデスクトップ画面を思い浮かべるでしょう。
しかし、Ubuntuには「Ubuntu Server」という超超超おすすめのUbuntuが存在します。

一般的にUbuntuを使うというと、Desktop版が出てくると思います。GUI操作のものです。

しかし、もし目的がWebサーバーの構築、開発環境の運用、あるいは自宅サーバーの立ち上げならば、あえてGUIを捨てて、Ubuntu Serverを選ぶことが、メリットしかないと断言します。

CLIは操作がしづらい、黒い画面が嫌いという方は多いのは重々承知です。
しかし、そこであえてUbuntuServerを選択して、慣れていくことをおすすめします。

以下の内容では、なぜデスクトップ版ではなくサーバー版を選ぶべきなのか、その具体的な理由をリソース効率やユースケースを交えながら解説していきます。

Desktop版とServer版、それぞれのメリット・デメリット

最大の違いはGUI(グラフィカル・ユーザー・インターフェース)の有無です。
この一点が、両者のメリットデメリットをはっきりとさせています。

項目 Ubuntu Desktop (24.04 LTS) Ubuntu Server (24.04 LTS)
GUI あり (GNOME) なし (CUIのみ)
主な用途 一般的なPC利用、開発 サーバー用途(Web、DB、ファイル等)
CPU 2 GHz デュアルコア以上 1 GHz シングルコア以上
メモリ 4 GB 以上 1 GB 以上
ディスク容量 25 GB 以上の空き容量 2.5 GB 以上の空き容量

Ubuntu Serverのメリット:徹底したリソース効率

上記の表を見れば一目瞭然です。Ubuntu Serverを選ぶ最大のメリットは、その圧倒的な軽量さにあります。

  • メモリ消費量: GUIを持つDesktop版は、起動しているだけで数GBのメモリを消費します。一方、Server版のアイドル時のメモリ消費量は、数百MB程度に収まります。単純計算で3GB以上のメモリをアプリケーションのためだけに残せることになります。これは、メモリが限られる仮想環境や古いPCでサーバーを建てる際に絶大な効果を発揮します。

  • ディスク使用量: インストールに必要な容量も、Desktop版の10分の1です。サーバーは安定稼働が求められるため、OS自体がシンプルであることは、管理やセキュリティの観点からも有利に働きます。

  • CPU負荷: バックグラウンドでGUI関連のプロセスが一切動かないため、CPUリソースを純粋にサーバーアプリケーションの処理に集中させることができます。

Desktop版のメリットと、サーバー用途でのデメリット

もちろん、Desktop版にはGUIによる直感的な操作性という大きなメリットがあります。しかし、サーバーとして使う場合、これはデメリットに転じます。

サーバーは一度設定してしまえば、直接画面を操作する機会はほとんどありません。多くの場合、SSH経由でリモートからCUIで操作します。GUIは、その「ほとんどない機会」のために、24時間365日、貴重なリソースを消費し続ける「重り」でしかないのです。

「GUIならWindowsでいいのでは?」と私は思います

「GUIで操作したいなら、大抵のPCにすでに積まれているWindowsを使えばいいのでは?」と思います。特にゲームやOfficeソフトの利用が前提なら、Windowsが最適解でしょう。
(Ubuntuを入れたいという人がUbuntuでゲームをしたいとは思わないと思いますが...)

今時5,6万円を出せば快適なwindows搭載のPCは買えます。
逆に中古で数千円の中古PCにとってUbuntu(GUI)は少し重荷ではないでしょうか?
であれば数千円の中古PCにUbuntuServerを入れて楽しく遊びましょう。

ですが、Ubuntu(GUI)を選ぶ理由に、開発が関わってくると話が変わります。
多くの開発ツールやサーバーソフトウェアはLinuxネイティブです。Windows上で開発する場合、WSL2を使うのが一般的ですが、これは結局のところWindows上でLinux環境を動かしているに過ぎません。

windowsでもサーバ開発はできるが、Ubuntu(GUI)の方がまだ開発には適しているということです。
しかしサーバを建てるのに関してもUbuntu(GUI)はオーバースペックすぎます。

「GUIが必要な日常作業」と「リソースを集中させたいサーバー機能」を分離するのです。

  • メインPC (Windows/Mac/Ubuntu Desktop): 快適なGUIでVS Codeを操作し、ブラウザで情報を収集する。
  • サーバー (Ubuntu Server): 最小限のリソースでDockerコンテナやWebサーバーを稼働させる。メインPCからはSSHで接続し、VS CodeのRemote - SSH機能を使えば、まるでローカル環境のように操作できます。

この構成なら、GUIの快適さとサーバーの軽快さ、両方のメリットを享受できます。GUIのためにサーバー自体のリソースを無駄にする必要はありません。

Ubuntu Serverでできること

では、具体的にUbuntu Serverで何ができるのでしょうか?ほんの一例ですが、その可能性は無限大です。

  • Webサーバー構築 (LAMP/LEMP)
    Apache/Nginx, MySQL/PostgreSQL, PHP/Pythonなどをインストールし、WordPressブログや自作のWebアプリケーションを公開する。

  • ファイルサーバー / NAS
    Sambaを導入して、WindowsやMacからアクセスできるネットワーク上の共有ストレージを構築する。家族の写真や動画、仕事のファイルを一元管理できます。

  • メディアサーバー
    PlexやJellyfinをインストールし、保存している動画や音楽を、家のテレビやスマホからストリーミング再生できるようにする。

  • 開発・テスト環境
    DockerやGitLabを動かし、チームや個人のためのCI/CD環境やリポジトリサーバーを構築する。

  • ホームオートメーション
    Home Assistantを導入し、スマート家電やセンサーを連携させるハブとして利用する。

これらはすべて、GUIがないUbuntu Server上で、CUIによる設定と安定した稼働が可能です。

まとめ

もし「Ubuntuのダウンロードページ行ったけどUbuntuServerってのがあった。これなに?」という人や、「古いPCを使ってServerを作りたい」という人はUbuntuServerを使ってみてください。

  • GUIというオーバーススペックを捨て、リソースを100%アプリケーションに注力できる
  • インストール容量はDesktop版の1/10、メモリは数GB節約可能
  • サーバーの標準であるCUI操作のスキルが身につく
  • メインPCと役割を分離することで、快適な開発環境が手に入る

最初はCUIの黒い画面に鳥肌が立つかもしれません。しかし、慣れた先にはサーバに対する理解が深まって楽しくてしょうがなくなります。

次にUbuntuをインストールする機会があれば、ぜひ「Server」を選んでみてください。きっと、その軽快さとパワフルさに驚くはずです。

余談ですが、複数PCを起動するならProxmoxからUbuntuを起動することをおすすめします。
かなり楽しいですよ!

Discussion