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).
Benefits
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.
Pricing
- 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.
AWS Console
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.
Source and deployment
The first step is to choose a source for the App Runner service and how it should be deployed.
Source
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.
Deployment
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.
Configure build
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 pre
and 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 (apprunner.yaml
).
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
π App Runner configuration file reference
Configure service
In this step the service is configured by assigning the resources.
Service settings
Name the service and configure the number of CPUs, as well as the required memory.
Auto scaling
You can use the default auto-scaling settings or configure this manually.
If you configure it manually, you can set the following parameters: Concurrency
, Minimum size (instances)
and Maximum size (instances)
.
Health check
App Runner performs a TCP health check at the port that your application is listening to.
You can set the parameters Timeout
, Interval
, Unhealthy threshold
and Health threshold
.
Security
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.
Tags
Use tags to search and filter your resources, track your AWS costs and control access permissions.
Deployment time π
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!
Top comments (2)
Hi Daniel,
great explanation on app runner service.
I myself tried it , are you aware about apex ( root ) custom domain mapping from route53 / any other service to app runner.
I tried to map my custom domain to app runner. any suggestions ?
Hi Adit, maybe the documentation will help you: Managing custom domain names for an App Runner service.