In preparation for recertifying for the AWS SA Pro exam, I reviewed the exam blueprint and noticed AWS App Runner listed under the Compute section of in-scope AWS services and features. I found myself wondering, “What is AWS App Runner?” This post aims to provide a simple answer to that question, which I hope will help us both get a question or two right on the AWS SA Pro exam.
What is AWS App Runner?
AWS App Runner is a fully managed service that makes it easy to deploy containerized web applications and APIs at scale. Whether you’re using a source code repository or a container registry, App Runner handles the heavy lifting of building, deploying, and scaling your applications.
What are App Runner’s Key Features?
- Ease of Use: With AWS App Runner, you can deploy your applications with just a few clicks. The service integrates seamlessly with GitHub and Amazon ECR, allowing you to deploy directly from your code repository or container registry.
- Automatic Scaling: App Runner automatically scales your applications based on incoming traffic, ensuring that your application can handle varying loads without manual intervention.
- Built-in Security: The service includes AWS operational and security best practices, such as automatic TLS encryption and compliance with AWS security standards.
- Cost Efficiency: You only pay for the compute and memory resources your application uses, with per-second billing to optimize costs.
How do I Get Started with AWS App Runner
To get started with AWS App Runner, perform the following:
- Create an App Runner Service: In the AWS Management Console, navigate to the App Runner section and click on “Create an App Runner service.”
- Connect Your Repository: Choose whether to deploy from a source code repository or a container registry. You can select a container image from an Amazon Private or Public ECR OR, as shown below, a Bitbucket or GitHub repository. Connect your repository and select the branch you want to deploy.
- Configure Your Service: Specify the runtime environment, such as Python or Node.js, and configure any necessary environment variables, health checks, and scaling requirements.
- Deploy Your Application: Click “Create & Deploy” to launch your application. App Runner will handle the rest, from building your container to setting up a managed load balancer with a TLS certificate.
I was intending to provide screenshots to document the entire process but there are a few other areas where I’d like to spend more time studying. However, if you are interested in stepping through the complete process, use the Getting Started with App Runner page.
Use Cases – When would I use this?
AWS App Runner is a potential solution for the following use cases:
- Web Applications: Quickly deploy and scale web applications without worrying about infrastructure management.
- APIs: Build and deploy APIs that can handle variable traffic loads with ease.
- Microservices: Simplify the deployment of microservices architectures by using App Runner to manage individual services.
How does App Runner compare to Elastic Beanstalk?
I’m certain I’ll encounter a question on the exam about rapid deployment and minimal management, where AWS App Runner and Elastic Beanstalk will be the best potential answers. To prepare for this, I asked Copilot to generate potential scenario questions involving these two services. I requested two scenario questions: one where App Runner is the correct choice and one where Elastic Beanstalk is the right answer. I’m just copying/pasting the responses I got so use at your own risk….
Scenario Question 1
Question: You are a solutions architect for a startup that is developing a new web application. The application needs to be deployed quickly with minimal infrastructure management. The team prefers a fully managed service that can automatically scale based on traffic. However, they also want the flexibility to customize the environment and manage EC2 instances if needed in the future.
Answer: AWS App Runner
Explanation: AWS App Runner is a fully managed service that allows you to deploy web applications quickly with minimal infrastructure management. It automatically scales based on traffic, making it ideal for the startup’s needs. While Elastic Beanstalk also offers managed deployment and scaling, it requires more involvement in managing the underlying EC2 instances, which the team wants to avoid initially.
Scenario Question 2
Question: You are a solutions architect for a mid-sized company that is developing a complex web application. The application requires a custom environment configuration, including specific versions of software and libraries. The development team needs the ability to SSH into the underlying instances for troubleshooting and performance tuning. Additionally, the application must support multiple environments (development, staging, production) with different configurations.
Answer: AWS Elastic Beanstalk
Explanation: AWS Elastic Beanstalk is the right choice for this scenario because it provides a managed service that allows for extensive customization of the environment. It supports multiple environments and enables SSH access to the underlying EC2 instances, which is essential for troubleshooting and performance tuning. Elastic Beanstalk also allows you to specify custom configurations and software versions, making it suitable for complex applications with specific requirements.
Further Learning
If you want to dig into AWS App Runner a little bit more, there is a .NET Workloads on AWS App Runner digital course on AWS Skill Builder that does NOT require a subscription. This course aims to teach you how to use .NET 6 to build Linux containers that run C# code and launch the application with App Runner.
On Skill Builder, you’ll also find a digital course entitled Deploying Applications with AWS Elastic Beanstalk if you’d like to explore Elastic Beanstalk in a little more detail.