Containers
AWS App Runner improves performance for image-based deployments
AWS App Runner is a fully managed container application service that lets you build, deploy, and run containerized web applications and API services without prior infrastructure or container experience. AWS App Runner abstracts the intricacies of infrastructure, which enables companies such as Wix, Hubble, Cox, and others to accelerate innovation without the need to invest time in server management. The service provides a fast, simple, and cost-effective way to deploy from source code or container image directly to a scalable and secure web application.
Starting today, App Runner includes service enhancements that reduce the time it takes when deploying applications using container images. In our benchmarks, we noticed an approximately 30 to 40% reduction in deployment time, depending on container image size.
The enhancement also improves AWS App Runner behavior when it is unable to pull a container image from the container repository. Previously, when AWS App Runner couldn’t pull an image, it retried for 10 minutes before entering a failed state. AWS App Runner now fails a deployment immediately should anything prevent it from pulling container image.
All AWS App Runner customers benefit from these enhancements automatically and changes aren’t required for existing AWS App Runner services.
Measuring the improvement
For containerized applications, the size of its container image impacts the deployment and application startup time. Applications with smaller container image have a faster startup time and they are quicker to deploy. This is because copying container images is one of the most time consuming tasks when deploying an application.
Our goal was to measure the impact of the changes in App Runner across image sizes. To measure the improvement in deployment time, we started with hello-app-runner container image. The hello-app-runner container image is 261 MB. We then inflated the size of the image artificially by generating a bunch of 50 MB files. The output was three images of sizes one, two, and three GBs.
Once we had images of desired sizes, we created App Runner services using them and compared the time it took for the service to be healthy before and after the update. We deployed each image ten times and measured mean values to rule out anomalies. The following table shows the improvements in deployment time.
The following graph shows the time in seconds for services to become healthy.
Customers with image sizes under 1 GB will have deployment times that are about two minutes shorter. For larger images, the reduction can be as much as five minutes.
Now available
AWS App Runner improvements are available in all AWS Regions where it is available. Every minute saved in the deployment process can have a significant impact on application development and release cycles. We hope App Runner helps you deliver your applications to your customers even more quickly.
This release is part of AWS App Runner’s continued dedication to making it easy for customers to run web applications and APIs at scale. Please see the release notes for recent App Runner enhancements.
To learn more about AWS App Runner’s upcoming features, see the App Runner roadmap on GitHub. You can also share your feedback and questions at AWS re:Post for AWS App Runner.