Have you heard of AWS App Runner? A few weeks ago, AWS announced a new service called AWS App Runner - the original blog post can be found here. AWS App Runner is a fully managed container application service that let you build, deploy and run containerized web applications and APIs in minutes. I'll show you how to do that in this blog post.
Supported AWS Regions
Currently, AWS App Runner is supported in the following regions: US East (N. Virginia), US East (Ohio), US West (Oregon), Europe (Ireland), and Asia Pacific (Tokyo).
App Runner resources and infrastructure components are fully managed by AWS, which means you don't have to worry about scaling or infrastructure security or even be an expert in it. Resources are scaled automatically based on traffic. You stay completely focused on your application.
- You are charged for the compute and memory resources used by your application.
- If you automate your deployments you will pay a set monthly fee for each application that covers all automated deployments for that month.
- If you opt to deploy from source code, you will pay a build fee for the amount of time it takes App Runner to build a container from your source code.
More information can be found on the AWS App Runner Pricing page.
Of course, you can also deploy the service using AWS CDK. But first, let's take a look at the AWS Console to learn about the service. Because with just a few clicks, your app is ready to go.
The first step is to choose a source for the App Runner service and how it should be deployed.
You can choose between an AWS Container Registry (Amazon ECR or Amazon ECR Public) and a Git repository provided by GitHub.
If you choose the Container Registry option, then you only need the Container image URI. If you want to use your Git repository on GitHub, you need to install the AWS Connector for GitHub app.
Next, you need to choose whether the deployment should be automatic or manual.
Automatic deployment is not available with every source option. If you use Amazon ECR, App Runner monitors your registry and deploys a new version of your service with each image push. If you use your Git repository from GitHub, then each push to the selected branch deploys a new version of your service.
This step is only available if you have chosen "Source code repository".
Currently you can choose between
Python 3 and
Node.js 12 runtime. The "Build command" specify the command that will be used to install the dependencies or compile the code. If you use the configuration file, you can additionally specify
post commands! The "Start command" specify the command to start a web server for your service. Also specify the port to be used by the service.
The configuration can be done manually or provided via a configuration file (
version: 1.0 runtime: nodejs12 build: commands: pre-build: - npm install build: - npm run build post-build: - npm test run: command: npm start network: port: 3000
In this step the service is configured by assigning the resources.
Name the service and configure the number of CPUs, as well as the required memory.
You can use the default auto-scaling settings or configure this manually.
If you configure it manually, you can set the following parameters:
Minimum size (instances) and
Maximum size (instances).
App Runner performs a TCP health check at the port that your application is listening to.
You can set the parameters
Unhealthy threshold and
In the Security section you can select an IAM role for the instance and specify whether to use an AWS-owned key or a custom AWS KMS key.
Use tags to search and filter your resources, track your AWS costs and control access permissions.
In the last step you can review your configuration and then start the creation process! After a short time you will find the URL of your app in the AWS App Runner Console.
In addition to service metrics, event, deployment and application logs are also available in the AWS App Runner Console.
I don't think you can deploy a scalable application any easier or faster. 🚀
If you have any kind of feedback, suggestions or ideas - feel free to comment this post!