Amazon Web Services has created a second Linux distribution.
AWS already offers Amazon Linux, a general-purpose distribution currently in its second edition which can be run in a Docker container or with the Linux KVM, Microsoft Hyper-V and VMware ESXi hypervisors. This distro is said to be optimized to run inside the AWS cloud.
Now the internet giant has created Bottlerocket, which it advances as an excellent open-source OS on which to run containers alongside your preferred orchestration engine.
The Hello World post announcing the distro said AWS "saw a need for a Linux distribution designed from the ground up to run containers with a focus on security, operations, and manageability at scale".
Red Hat Kubernetes shuffles towards the edge with 4.5 release of OpenShiftREAD MORE
AWS has teased Bottlerocket since March 2020 when it acknowledged that it is not the first to do a Linux-for-containers, and cited CoreOS, Rancher OS, and Project Atomic as inspirations. It said its operation system is "the result of lessons we've learned over a long time running production services at scale in Amazon, and is colored by the lessons we've learned over the past six years about how to run containers".
Those lessons have led AWS to release an OS stripped of anything other than what's needed to run containers, a design the company said shrinks its attack surface.
Being purpose-built for running stuff within containers, rather than running non-containerized applications, means fewer packages are installed on the underlying system, which AWS said is a good thing because that makes life easier keeping the OS up to date and also reduces the chance of problems caused by dependencies. Basically, everything runs inside separate containers and the base system is rather bare, it seems.
"Rather than a package manager that updates individual pieces of software, Bottlerocket downloads a full filesystem image and reboots into it," AWS said. "It can automatically roll back if boot failures occur, and workload failures can trigger manual rollbacks."
Above the kernel, the OS was largely written in Rust to take advantage of that language's features that reduce the likelihood of unsafe memory accesses, race conditions between threads, and so on. SELinux is in place to take advantage of its above-and-beyond-normal isolation features.
The distro includes Device-mapper's verity target (
dm-verity), which AWS described as "a Linux kernel feature that provides integrity checking to help prevent attackers from persisting threats on the OS, such as overwriting core system software". Also present is eBPF [PDF], which allows kernel modules to be replaced by safer kernel-level programs for low-level system operations.
AWS said Bottlerocket "enforces an operating model that further improves security by discouraging administrative connections to production servers" and is "suited for large distributed environments in which control over any individual host is limited".
To keep things accessible for sysadmins, an admin container is available. But AWS doesn't think you'll often need to work inside Bottlerocket. "The act of logging into an individual Bottlerocket instance is intended to be an infrequent operation for advanced debugging and troubleshooting."
Rancher rides off into the SUSE-set after acquisition by Linux outfitREAD MORE
AWS recommends using Bottlerocket with a container orchestrator. Kubernetes is the leading one, and AWS has therefore made a Bottlerocket build based on its own Enterprise Kubernetes Service (EKS). A bundle for the ECS service, and therefore AWS EC2 and Fargate, is in preview.
AWS has made the distro open source under the Apache 2.0 or MIT licence – you get to choose – and popped the lot on GitHub. AWS senior product manager Samartha Chandrashekar said: "We're looking forward to building a community around Bottlerocket on GitHub and welcome your feature requests, bug reports, or contributions."
It will be interesting to see if a community coagulates around the OS given that similar efforts like VMware's PhotonOS haven't been hits and even CoreOS was killed off by RedHat. ®