AWS App Runner | |
Developer: | Amazon Web Services |
Released: | May 2021 |
Operating System: | Cross-platform |
Genre: | Container orchestration service |
License: | Proprietary |
AWS App Runner is a fully managed container application service offered by Amazon Web Services (AWS). Launched in May 2021, it is designed to simplify the process of building, deploying, and scaling containerized applications for developers.[1] The service enables users to focus on writing code and developing features, without needing to manage the underlying infrastructure. It provides automatic scaling, load balancing, and security features, making it a suitable choice for deploying web applications and APIs. The service also simplifies MLOps.[2]
AWS App Runner offers several features that are designed to simplify the deployment and management of containerized applications, including:
AWS App Runner has been used by various companies to streamline the deployment of their web applications and APIs. Some notable customers include Classmethod, Hubble, and Velo by Wix.[4] These companies have leveraged App Runner to achieve faster time-to-market, improved developer productivity, and simplified application development processes.
The AWS Cloud Development Kit (AWS CDK) introduced support for AWS App Runner in August 2021, enabling developers to define and deploy App Runner services using the AWS CDK.[5] This streamlines the application development and deployment process by automating the creation of App Runner services, managing them through Infrastructure as Code (IaC), and using familiar programming languages to define their infrastructure. The AWS CDK offers L1 support for AWS App Runner, corresponding to the low-level constructs. Additionally, an experimental L2 construct library, @aws-cdk/aws-apprunner-alpha, is available in preview, offering a more abstracted and developer-friendly approach.[6]
Although AWS App Runner can simplify the deployment of containerized applications, certain limitations should be considered when evaluating its suitability for specific use cases. These limitations include limited hardware configuration options, no GPU support,[7] limited regional availability, limited customization options, scaling limitations, limited support for stateful applications, cost considerations, container image size limitations, and the lack of support for multi-container deployments. It currently only support linux containers. Furthermore, App Runner does not offer a "scale to zero" option like Google Cloud Run, lacks support for AWS CodeCommit as a code-based service repository, and does not provide a way for App Runner apps to access resources in a VPC.
AWS App Runner offers deployment and management for containerized applications. It can be compared to other AWS services and similar offerings from other cloud providers, such as AWS Elastic Beanstalk, AWS Copilot, and Google Cloud Run.
AWS Elastic Beanstalk is another service that automates the deployment of applications. However, it provides more control over the infrastructure once deployed, which can be a necessity in some cases but also introduces the potential for unmanaged changes. In contrast, App Runner is entirely managed, minimizing administrative overhead.[8]
AWS Copilot, released as a command-line tool to simplify ECS deployments, offers a compelling niche but initially lacked the ability to scale. AWS Copilot has since released version 1.7.0, which natively supports App Runner and bridges the gap between the two services.
Google Cloud Run is a similar service offered by Google Cloud Platform (GCP) that allows developers to deploy and manage containerized applications. One significant difference between App Runner and Google Cloud Run is that the latter offers the option to "scale to zero," reducing costs for infrequently accessed applications. App Runner currently lacks this feature, resulting in higher costs for such applications. Microsoft released a similar product called Azure Container Apps.[9]