👨⚖️ Is AWS App Runner worthy of running our apps?
The verdict
To be honest.. Not really. It’s a great tool for non-enterprise users that are getting started with running their own workloads. However, the lack of an official CDK library (yes, looking at you experimental library) and the fact that all documentation hints at using the console does not look great. It definitely has a use-case and will make some developers very happy.. but not everyone.
For example, are you a big fan of the AWS Amplify service and love the console that they’ve developed over the past year? Then, definitely take a look at App Runner as it might fit a use-case that Amplify doesn’t. Disliking Amplify as is? You might not be convinced about App Runner either.
The first time I read the announcement about App Runner it made me think about Google Cloud Run. I see App Runner as the AWS response to Google Cloud Run. It has a strong opinionated architecture and built on top of other great AWS services. - Jeroen Reijn
📖 What is AWS App Runner?
Theoretically, that is.
AWS App Runner is a fully managed service that makes it easy to build, deploy, and scale containerized applications quickly. It abstracts away many of the complexities involved in setting up and managing container environments, making it ideal for developers who want to focus on building applications without worrying about infrastructure. Some of us actually like (or our job requires us to like) infrastructure and so early spoiler.. This might not be for you.
With App Runner you can deploy containerized applications without having to worry about configuring infrastructure, setting up load balancers, or managing scaling policies. It supports popular container images such as Docker and can be integrated with other AWS services like Amazon S3, Amazon RDS, and AWS Secrets Manager.
One of the key benefits of App Runner is its flexibility. You can use it to deploy a wide range of containerized applications, from simple static websites to complex microservices architectures. It also supports multiple programming languages and frameworks, including Node.js, Python, Ruby, and Java.
To get started with App Runner, you simply need to define your application in a YAML file and upload it to the AWS console. App Runner will automatically provision and configure the required infrastructure, build and deploy your container image, and manage scaling and load balancing. You can monitor the status of your application using the AWS console or programmatically using the AWS SDKs.
In terms of pricing, App Runner uses a pay-as-you-go model, where you are charged based on the number of requests and the duration of your application. This means you only pay for what you use, with no upfront costs or long-term commitments.
👷 Getting started with AWS App Runner
What steps do you need to walk through to get started?
Step 1: Create a Docker container image of your application
First, you need to create a Docker container image of your application. This container image will contain your application code and any dependencies required to run your application.
For example, if you have a Node.js application, you can create a Dockerfile that installs Node.js and copies your application code into the container. You can then use the Docker CLI to build the container image and push it to a container registry such as Docker Hub or Amazon ECR.
Step 2: Create an AWS App Runner service
Once you have a container image, you can create an AWS App Runner service to run your application.
To create a new App Runner service, go to the AWS App Runner console and click "Create service". You will need to provide a name for your service, select the container image you want to run, and specify any environment variables or commands required to run your application.
You can also specify the number of instances you want to run and the amount of CPU and memory allocated to each instance.
Step 3: Deploy your application
Once you have created your App Runner service, you can deploy your application by clicking "Deploy new version". This will create a new deployment of your application using the latest version of your container image.
You can monitor the progress of your deployment in the AWS App Runner console, and once it's complete, you can access your application using the URL provided by App Runner.
Step 4: Scale your application
AWS App Runner makes it easy to scale your application up or down based on demand. You can specify scaling policies that automatically adjust the number of instances running based on metrics such as CPU utilization or request rate.
To scale your application, simply go to the App Runner console and update the scaling policy for your service. App Runner will automatically adjust the number of instances running to ensure your application is always available and responsive.
👉 Still here and looking to learn more?
Take a look at this blogpost of Jeroen Reijn of Luminis who also took a look at AWS App Runner
Marcia of FooBar’s youtube channel called it the result when AWS Lambda and Fargate had a child.. They’re diving deeper in this video.