2018年7月9日、Ubuntuの開発を支援しているCanonical社が、「Minimal Ubuntu」というクラウドやコンテナ向けの向けのイメージをリリースしました。以下のブログでアナウンスされています。
Minimal Ubuntu, on public clouds and Docker Hub | Ubuntu blog
「Minimal Ubuntu」は、人が直接ログインしないクラウド向けの最小構成としたことで、イメージサイズが通常のUbuntuサーバーの50%となっており、起動時間も40%短くなっているとのことです。
Ubuntu 16.04 LTSとUbuntu 18.04 LTSのUbuntu Minimalイメージが、Amazon EC2、Google Compute Engine(GCE)、LXD、KVM、OpenStackで利用可能となっています。
プライベートクラウド用のイメージは、次のURLからダウンロードできます。
また、Amazon EC2のAMIイメージとしても利用可能となっていることを確認できました。
このリンクから、東京リージョンのイメージを参照できます(参照するにはEC2へのログインが必要)。
また、Google Compute Engine(GCE)でもUbuntu Minimalが選択可能となっています。
そこで、GCEで「Ubuntu 18.04 LTS Minimal」と「Ubuntu 18.04 LTS」をインストールして比較してみました。
まず、「Ubuntu 18.04 LTS Minimal」のディスク消費量は、以下の通り「802MB」でした。
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 9.6G 802M 8.8G 9% /
devtmpfs 288M 0 288M 0% /dev
tmpfs 291M 0 291M 0% /dev/shm
tmpfs 291M 844K 290M 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 291M 0 291M 0% /sys/fs/cgroup
/dev/sda15 105M 3.4M 102M 4% /boot/efi
/dev/loop0 87M 87M 0 100% /snap/core/4917
/dev/loop1 49M 49M 0 100% /snap/google-cloud-sdk/41
tmpfs 59M 0 59M 0% /run/user/1001
一方、通常の「Ubuntu 18.04 LTS」は、「1.1GB」でした。
$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 279M 0 279M 0% /dev
tmpfs 59M 852K 58M 2% /run
/dev/sda1 9.6G 1.1G 8.5G 12% /
tmpfs 291M 0 291M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 291M 0 291M 0% /sys/fs/cgroup
/dev/sda15 105M 3.4M 102M 4% /boot/efi
/dev/loop0 87M 87M 0 100% /snap/core/4650
/dev/loop1 48M 48M 0 100% /snap/google-cloud-sdk/38
tmpfs 59M 0 59M 0% /run/user/1001
イメージサイズほどの違いはないですが、Minimalのほうが約30%小さくなっています。
インストールされているパッケージを比較したところ、「Ubuntu 18.04 LTS」にインストールされていて、「Ubuntu 18.04 LTS Minimal」にインストールされていないパッケージは以下のリストの通り「163」ありました。
accountsservice
apport-symptoms
apt-utils
bash-completion
bind9-host
bsdmainutils
busybox-initramfs
busybox-static
byobu
cloud-initramfs-copymods
cloud-initramfs-dyn-netconf
command-not-found
command-not-found-data
console-setup
console-setup-linux
cpio
debconf-i18n
dmidecode
dnsutils
dosfstools
ed
eject
file
friendly-recovery
ftp
geoip-database
git
hdparm
info
init
initramfs-tools
initramfs-tools-bin
initramfs-tools-core
install-info
iputils-ping
iputils-tracepath
iso-codes
kbd
keyboard-configuration
klibc-utils
landscape-common
language-selector-common
less
libaccountsservice0
libbind9-160
libcurl3-gnutls
libdns1100
libdrm-common
libdrm2
libdumbnet1
liberror-perl
libevent-2.1-6
libfribidi0
libgeoip1
libicu60
libirs160
libisc169
libisccc160
libisccfg160
libklibc
liblwres160
libmagic-mgc
libmagic1
libmspack0
libnewt0.52
libnih1
libntfs-3g88
libnuma1
libparted2
libpcap0.8
libpci3
libpipeline1
libplymouth4
libpolkit-agent-1-0
libpolkit-backend-1-0
libpolkit-gobject-1-0
libpython3.6
libslang2
libtext-charwidth-perl
libtext-iconv-perl
libtext-wrapi18n-perl
libunwind8
libusb-1.0-0
libutempter0
libx11-6
libx11-data
libxau6
libxcb1
libxdmcp6
libxext6
libxml2
libxmlsec1
libxmlsec1-openssl
libxmuu1
libxslt1.1
locales
lshw
lsof
ltrace
man-db
manpages
mlocate
mtr-tiny
nano
ncurses-term
netcat-openbsd
ntfs-3g
open-vm-tools
overlayroot
parted
pastebinit
pciutils
plymouth
plymouth-theme-ubuntu-text
policykit-1
popularity-contest
powermgmt-base
psmisc
publicsuffix
python3-attr
python3-automat
python3-click
python3-colorama
python3-commandnotfound
python3-constantly
python3-gdbm
python3-hyperlink
python3-incremental
python3-newt
python3-pam
python3-pyasn1
python3-pyasn1-modules
python3-service-identity
python3-software-properties
python3-twisted
python3-twisted-bin
python3-zope.interface
run-one
screen
shared-mime-info
software-properties-common
strace
tcpdump
telnet
time
tmux
tzdata
ubuntu-advantage-tools
ubuntu-minimal
ubuntu-server
ubuntu-standard
ufw
ureadahead
usbutils
uuid-runtime
vim
vim-common
vim-runtime
vim-tiny
whiptail
xauth
xdg-user-dirs
xkb-data
なお、「Ubuntu 18.04 LTS」はパッケージ数が510、「Ubuntu 18.04 LTS Minimal」はパッケージ数が347でした。
「人がログインして操作すること」は想定されていないため、Vimやnanoといったテキストエディター、ページャー(less)、ターミナルマルチプレクサ関係(byobu・tmux・screen)、Tab補完を強化するbash-completionなどなど、多くのパッケージが削除されていることが分かります。「Minimal Ubuntu」に含まれるパッケージの一覧は、次のURLで確認できます。
- Minimal Ubuntu 18.04 LTS のイメージに含まれるパッケージ
- https://cloud-images.ubuntu.com/minimal/releases/bionic/release/ubuntu-18.04-minimal-cloudimg-amd64.manifest
- Minimal Ubuntu 16.04 LTS のイメージに含まれるパッケージ
- https://cloud-images.ubuntu.com/minimal/releases/xenial/release/ubuntu-16.04-minimal-cloudimg-amd64-root.manifest
パッケージを最小限に絞ることで、クラウドやコンテナで用いるUbuntuのサイズが小さくなるだけでなく、セキュリティリスクも最小化することができます。
クラウドやコンテナで最も用いられているUbuntuですが、今後は「Minimal Ubuntu」の採用が広がっていくように思われます。
コメント