AWS has introduced App Runner, with immediate general availability, for quick deployment of container-based applications.
The off-prem titan already offers multiple ways to run containerised applications on its cloud. There is the full-featured EKS (Elastic Kubernetes Service); the ECS (Elastic Container Service), the homegrown non-Kubernetes solution; containers up to 10GB can be deployed on Lambda serverless; or there is Fargate, which is a serverless option for either EKS or ECS. Why yet another option?
The focus with App Runner is to further simplify the developer experience, perhaps with an eye on what Google has achieved with its Cloud Run service, complete with an option for one-button deploy from GitHub.
Configuring App Runner starts with two choices: container registry, or source code repository. Selecting container registry gives an option for selecting either a private or public image from the Amazon Elastic Container Registry (ECR). Next, enter a service name, specify either 1 or 2 virtual CPUs, and between 2GB and 4GB RAM.
Environment variables can be added for custom configuration, and a start command for overriding the container's default. Default auto-scaling is based on the number of concurrent requests and will scale up to 2 instances, or you can configure this to different values. A few more settings cover security and tagging, and that is it.
With just a few settings, the focus in App Runner is on simplicity, but developers are already asking for more features
The source code option appears to depend on GitHub and requires a piece called AWS Connector for GitHub which gives AWS the requisite permissions. Next, select the repository and branch, and whether deployment should be manual or automatic with each code push. Currently the only runtimes on offer are Python 3 or Node.js 12.
- Rackspace CEO: Offshoring, real estate closures and other cost cutting measures. Did NASDAQ cheer? Well? Nope
- There may have been problems with the JEDI deal but you still wouldn't have won, Oracle told by US govt
Pricing is dependent on resources consumed, at the rate of $0.064 per hour per vCPU and $0.007 per GB. A minimal instance (1vCPU, 2GB) will therefore cost $0.078 per hour or around $56.00 per month, plus a little extra for automatic build and deployment, if it is always running. If an application is idle, there is no charge for vCPU, but the instance remains provisioned to eliminate cold starts.
AWS offers a "quick pricing example" from just $5.00 per month for a development or test application, but reading the small print it assumes "you pause the service for 22 hours of the day." In practice, pausing the application will be the best way to reduce costs, which as with all things AWS, can be done with an API call, PauseService.
There is a GitHub repository for the App Runner roadmap, which does not currently have a roadmap as such, but does provide a place for users to submit issues.
Requests so far include Java and Go support, autoscale on CPU and memory rather than number of requests, support for WebSockets, additional repository support such as for Code Commit, GitHub Enterprise, Docker Hub, and more. Those requests are not unhealthy, suggesting that AWS is offering something useful although in need of improvement. ®