AWS Bites Podcast

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, Eoin and Luciano explore practical ways to reduce container startup time, from smaller Docker images and faster compression to lazy loading with SOCI (Seekable OCI).

We start with the fundamentals: multi-stage Docker builds, image layers, caching, and the trade-offs between gzip and zstd compression. Then we explain how SOCI lets containers start without downloading and unpacking every layer upfront, covering containerd snapshotters, FUSE, zTOCs, compressed spans, and HTTP Range requests.

To put these techniques to the test, we share our open-source benchmark covering 44 configurations and 1,320 ECS task executions. We compare image sizes, compression methods, ARM64 and x86-64 architectures, and Fargate against ECS on EC2 with Amazon Linux 2023 and Bottlerocket. In some of our large-image Fargate benchmarks, SOCI delivered up to a 10× startup improvement.

We also discuss SOCI support across Fargate, SageMaker, EKS, and ECS on EC2, and walk through the tools and workflow for generating SOCI indexes and publishing images to ECR. We close with the practical trade-offs: when zstd might be enough, when SOCI is worth adopting, and why time to useful work matters more than container startup time alone.

Thanks to fourTheorem for powering AWS Bites. We help teams build cloud systems that are simple, scalable, and cost effective. Visit fourTheorem.com.

In this episode, we mentioned the following resources:

Let's talk!

Do you agree with our opinions? Do you have interesting AWS questions you'd like us to chat about? Leave a comment on YouTube or connect with us on:

Help us to make this transcription better! If you find an error, please submit a PR with your corrections.