CTO and co-founder of Signal Sciences. Author and speaker on software engineering, devops, and security.

Size of Linux Distributions for the Cloud, 2016

The size of a fresh Linux install on EC2 is a rough proxy for it’s complexity, how big the attack surface is and how frequently it will need updates. Less is definitely more. In 2015, I compared the number of packages on default install on AWS EC2. Let’s see how things changed or not. This time, in addition to the number of packages installed, I also checked on-disk image size. Corrections and additions welcome.

OS DistributionPackagesImage in MB
Amazon Linux 20150912 384 1145
CentOS Atomic Host 7 20160130 397 1011
Ubuntu 16.04 Devel 473 887
RedHat 7.2 318 888
FreeBSD 11 Alpha NA 876
CentOS 7 10122015 301 793
Ubuntu 14.04 450 772
Debian 8.3 271 615
Core OS 835.13.0 Stable NA 541
Fedora Cloud 23 20160217 259 475

Notes:

  • In general, everything is bigger.
  • Amazon Linux is completely unoptimized for size. You decide if that is surprising or not.
  • Ubuntu continues its march to 1GB images. Every LTS release appears to add 100MB.
  • While Debian 8.3 and Ubuntu 16 should be similar, the difference between the two is over 250MB. What is Ubuntu actually adding?
  • CentOS and RedHat I thought were near identical, but RedHat is 100MB larger.
  • CoreOS has a minimal 541MB install, however I might be measuring this incorrectly.
  • I found Fedora Cloud last year by accident. I still have no idea what it is. The web site says mostly nothing.
  • This year, I found CentOS Atomic Host. Both this and the previous image appear to be based on Project Atomic sponsored by RedHat. It appears the a CoreOS-style host for running docker or other containers. Except the image is 1G! A quick inspection turned up a host of not-quite-empty directories for various X-windows and desktop applications, 65MB for firmware updates, and on and on. Not inspiring.
  • FreeBSD works on EC2 but is only semi-supported. I was hoping it would be more minimal but it’s same size of RedHat or Ubuntu.
  • SUSE was checked last year, but it’s excluded since it’s ridiculous.

In conclusion, the choices for a truly cloud-first, server-first operating system are quite limited. The Major Vendor’s approach is to take a full-fat image and then delete things (or not) to make a cloud edition. So far this has produced less-than-great results. CoreOS certainly is doing something original and different, but it is highly opinionated (this is good!), and leaves open plenty of room for improvement and opportunities for innovation. I fail to see why a full OS couldn’t be under 250MB.


© 2018 Nick Galbreath