
155. How We Made AWS Containers Start Up to 10× Faster!
What if you could make your AWS containers start up to 10× faster , without changing your application code? In this episode of AWS Bites, we explore practical ways to speed up container startup on AWS, from smaller Docker images and multi-stage builds to smarter compression with gzip and zstd. We discuss the trade-offs between download size and decompression speed, and why optimizing container images is still the best place to start. Then we dive into SOCI (Seekable OCI) , an AWS-developed open-source technology that enables lazy loading of container images. Instead of waiting for every image layer to download and unpack, SOCI lets containers start sooner and fetch the files they need on demand. We explain how this works under the hood, including containerd snapshotters, FUSE, zTOCs, compressed spans, and HTTP Range requests. We also explore SOCI support across ECS Fargate, SageMaker, EKS, and ECS on EC2. We share the results of our own open-source benchmark covering 44 configurations and 1,320 ECS task executions . We compare small and large container images, gzip versus zstd, SOCI versus traditional image pulling, ARM64 versus x86-64, and Fargate versus EC2 running Amazon Linux 2023 or Bottlerocket. In some cases, SOCI delivered up to 10× faster container startup for large images on Fargate! Finally, we explain how to create and publish SOCI indexes, explore the tools involved, and discuss when these optimizations are worth adopting. Most importantly, we explain why time to useful work matters more than container startup time alone . Resources mentioned Container startup benchmark: source code and interactive results The hidden design compromises of Docker layers Building x86 Rust containers from Apple Silicon AWS deep dive: Lazy loading container images with SOCI SOCI Snapshotter on GitHub AWS SageMaker SOCI documentation ECS roadmap: SOCI snapshotter support ECS roadmap: containerd support Sponsor Thanks to fourTheorem for powering AWS Bites. We help teams build cloud systems that are simple, scalable, and cost effective. Visit fourtheorem.com . Chapters 00:00 Introduction: How to make containers start faster on AWS 01:20 Why container startup speed matters: scaling, deployments, and latency 03:17 Docker image optimization: smaller images, multi-stage builds, and caching 05:33 gzip vs zstd: Compression trade-offs and faster image pulls 08:31 Introducing SOCI (Seekable OCI) and lazy loading 09:17 Traditional container startup: Why downloading every layer is slow 10:40 How SOCI works: Snapshotters, FUSE, and on-demand file loading 15:25 SOCI support on AWS: Fargate, SageMaker, EKS, and ECS on EC2 16:55 SOCI internals: Container layers, zTOCs, gzip spans, and HTTP Range requests 21:54 Our benchmark methodology: 44 configurations and 1,320 ECS tasks 24:48 Benchmark results: gzip vs zstd and up to 10× faster startup with SOCI 26:56 Fargate vs EC2, Bottlerocket vs Amazon Linux, and ARM64 vs x86 28:30 Getting started with SOCI: Index generation, ECR, and OCI tools 31:38 Key takeaways: When to use zstd, when to use SOCI, and what to measure 33:39 Listener questions, fourTheorem sponsor, and closing Send us your AWS questions Do you have any AWS questions you would like us to address? Leave a comment here or connect with us on X/Twitter, Bluesky, or LinkedIn: Eóin: Bluesky | LinkedIn Luciano: X/Twitter | Bluesky | LinkedIn













