AWS App Runner vs Elastic Beanstalk: Differences Compared

CraftyTechie is reader-supported. When you buy through links on our site, we may earn an affiliate commission.

Are you looking to see the difference between AWS App Runner vs Elastic Beanstalk? This article is a continuation in our series of hosting your web apps in the AWS Cloud. We are breaking down all of the options available to you.

App Runner vs Elastic Beanstalk

App Runner is a very new service released by AWS within the past few years. It isn’t as well known as the very mature and stable Elastic Beanstalk platform. Both of them have the same purpose of easing the deployment and infrastructure management of web applications.

Article Highlights

  • App Runner is a platform similar to Heroku that abstracts the pain of CI/CD & infrastructure management in a serverless environment.
  • Elastic Beanstalk is a fully managed platform for deploying, running and scaling web applications and services while still giving you the ability to manage infrastructure.
  • App Runner uses ECS (Elastic Container Service) under the hood whereas Beanstalk uses EC2 instances with auto-scaling groups.
  • Use App Runner for applications that work in a cloud-native or serverless environment. Use Elastic Beanstalk for web applications that still require infrastructure support.
app runner vs elastic beanstalk
App Runner vs Elastic Beanstalk

Maximize the Value You Get AWS for Your Applications

Stop running in circles and develop your applications faster and cheaper in AWS. This guide will walk you through ways to maximize AWS to generate real value for your needs. We dive into picking the right services to scale, tighten security and maximize costs.

Download our free guide now and get started with confidence.

Table of Contents

Elastic Beanstalk

What is AWS App Runner

AWS App Runner is a platform service that automates the deployment, hosting, autoscaling & load balancing of a web application. It connects to a Github repo and deploys it into a cloud-native environment. You don’t have to build pipelines, or manage infrastructure so that you can focus on your application requirements.

What is App Runner screenshot
App Runner Screenshot

I love using App Runner and am starting to recommend the service to customers more and more often. 

Let’s be honest. Managing AWS or any cloud is really hard. You can get caught spending more time focused on time & cost sinks of setting up VPCs and load balancing requirements and completely lose sight of the value-drivers of application development.

App Runner solves this problem.

It is an excellent service for software teams that don’t have dedicated site reliability engineers that can manage their cloud infrastructure. It best compares to the Heroku & Netlify platform services. You just get to write your code and push it to Github. The platform handles the rest for you.

It’s a done-for-you service.

Related Articles on App Runner

How Much Does App Runner Cost

App Runner is free to use for the first 30 days, after which you’ll be charged based on your usage and requirements. You can select between 4 different configurations and set your provisioned instance. Calculating this info will give you a strong estimate.

Cost Breakdown

  • vCPU per hour: $0.064 
  • RAM per hour: $0.007

Supported System Configurations

  • 1 vCPU + 2GB RAM
  • 1 vCPU + 3GB RAM
  • 1 vCPU + 4GB RAM
  • 2 vCPU + 4GB Ram

How to Estimate Your App Runner Cost

App Runner is a usage-based price service which is great because you aren’t getting charged for what you need. You also get to keep a minimum amount of resources alive to maintain a high-level of performance. But these factors mean you can get trapped overpaying if you aren’t comfortable

AWS is notorious for being difficult to estimate cost and App Runner is no different. The App Runner is actually a really affordable service when compared to similar services like Heroku. You can save a substantial amount of money if you manage it right.

But that’s the tricky part.

Estimation Steps

  1. Establish my preferred system configuration
  2. Decide how many provisioned always running apps I need
  3. Review my peak usage hours
  4. Determine how many extra services will be required to fill the peak requirements
  5. Do the math to establish my off-peak costs
  6. Do the math to discover my on-peak costs
  7. Do the math to discover my average costs weighted by usage
  8. Review and optimize.

How does App Runner work

App Runner works by automating your application’s deployment process. You define your application in a YAML file, which includes the steps for building, testing, and deploying your application. Then, you can use App Runner to build, test, and deploy your application automatically, with just a few clicks.

AWS Services Used

  • Load Balancer – Used for routing incoming requests to the appropriate server.
  • Code Pipeline – Automates your application’s build, test and deploy processes in one place.
  • Auto Scaling Groups – Allows you to scale up or down depending on demand.
  • Elastic Container Service – It deploys your app container for you in an ECS abstraction
  • CloudWatch Logs – Tracks your application performance metrics over time.

How Do You Deploy an App with App Runner

To deploy an app with App Runner, you’ll need to first define your application in a YAML file. Then, you’ll need to create a new pipeline in App Runner, and select the YAML file as the source for your pipeline. Finally, you’ll be able to deploy your application with just a few clicks.

App Runner Deployment Steps

  1. App Runner uses the deployment method that you selected when setting up the App Runner service (Github Repo or a Container Registry).
  2. It builds your application automatically whenever pushed to your selected desired location
  3. After it builds and deploys into the cloud, App Runner runs several health checks to ensure that everything worked correctly and meets quality standards.
  4. Once all is complete, App Runner updates the console and lets you know all is complete and ready
  5. You can set up alarms and notifications when the deployments are complete or if it fails

What happens if a Deployment Fails in App Runner?

Great question. It simply rolls back to the previous version of the instance. If the health check fails to return back with a success, App Runner will gracefully roll back to the previous image, avoid downtime and send any notifications that you have setup.

You will not experience any down-time with App Runner whenever you are deploying new versions into the platform even when things fail

Pros & Cons of App Runner

Pros:

  • Automates your application’s deployment process
  • It’s an excellent serverless choice for your application containers
  • It uses AWS popular Elastic Container Service under the hood
  • It’s VERY affordable when comparing to Heroku. I’ve seen it cut a bill nearly in half.
  • Easy to setup, user-friendly, and removes a lot of infrastructure headaches.

Cons:

  • May not be a good choice if you’re looking for a fully managed platform
  • May require more setup and maintenance compared to other services
  • Very opinionated. This service is excellent for standard container web applications. It isn’t ideal for anything that requires significant complexity
  • It is less mature than Elastic Beanstalk and other AWS services. It is stable but it’s not highly configurable at the moment compared to competitors.

Is App Runner Serverless

Yes, App Runner is serverless. It is built on top of ECS (Elastic Container Service) and uses Fargate for autoscaling. You get to select the system configuration but you don’t have to worry about the underlying infrastructure.

This means that AWS App Runner via ECS is managing the actual servers. They are patching the servers, updating software, managing load balancing, and security for you. You get to focus on the code.

Can You Deploy Docker Containers into App Runner

Yes, App Runner is cloud-native by default. It uses Elastic Container Service under the hood and requires docker containers. You can choose to provide your own docker image or allow the service to build it for you.

You can either push your code to Github and let App Runner build your containers for you or you can write your own Dockerfile and then

Do you HAVE to Deploy Containers into App Runner

Yes and no. You don’t have to write a Dockerfile to deploy into App Runner when using Github deployment and an approved runtime. But, it’s still using containers under the hood. You just aren’t writing them.

There are pros and cons to this approach. There are some organizations where it is good and they don’t have anyone to write the containers which are great for App Runner. On the other hand, some app software requires you to utilize server resources like file management. This won’t work for App Runner.

Is App Runner Good for Microservices

Not recommended. It is true that App Runner does follow a Cloud-Native approach, but it’s not ideal for most microservices because it provisions full public URLs and forces autoscaling based on HTTP requests. This adds additional costs & potential security concerns to your microservice architecture.

  • Provisions a URL for every app
  • Cannot scale to 0
  • Can increase security risks
  • Forces scaling based on HTTP requests

If you only have a few microservices and aren’t concerned about public access then App Runner may work for you. It does abstract away much of the management hassle of the more powerful Elastic Container Service and this may be good for you. But I still don’t think I would recommend it for microservices.

When to use App Runner

Use App Runner when your application can be deployed in a cloud-native environment with minimal management requirements. It’s a good solution if you have experience with platforms like Heroku. It is ideal for teams with little or no dedicated site reliability engineers.

  • Can work in a cloud-native environment
  • No dedicated server requirement
  • Don’t want to worry about infrastructure
  • Don’t want to worry about deployment pipelines

When to Avoid Using App Runner

If you’re looking for a fully managed platform for deploying, running, and scaling web applications and services, you may want to consider a different service, such as Elastic Beanstalk.

  • Need to manage dedicated server resources
  • Have complex scaling requirements
  • Require sticky sessions or complex infrastructure requirements
  • Need to scale to 0 or use a microservice architecture

What is AWS Elastic Beanstalk

AWS Elastic Beanstalk is a fully managed platform for deploying, running and scaling web applications and services. With Elastic Beanstalk, you can easily deploy, run, and scale your application, without worrying about managing the underlying infrastructure.

Elastic Beanstalk Screenshot
AWS Elastic Beanstalk Screenshot

Using Elastic Beanstalk also allows organizations to save time and money by automatically managing the underlying infrastructure that supports their applications. This gives them more time to develop features and functionality in their web applications.

Additionally, with its integration with other AWS Cloud Platform services, Elastic Beanstalk enables organizations to utilize additional features such as advanced logging capabilities, security monitoring tools, and cost optimization techniques for better resource management.

Key Takeaways:

  • Managed hosting platform that does not require managing the underlying infrastructure
  • Quickly deploys applications utilizing Amazon EC2 , S3 , ElastiCache , Auto Scaling , etc .
  • Save time & money by automatically managing the underlying infrastructure
  • Integrate with other AWS Cloud Platform services for advanced logging & security monitoring
  • Utilize cost optimization techniques for better resource management

Related Articles on Elastic Beanstalk

Go deeper into App Runner. Check out our articles below to dive deeper on using this AWS Service.

How Does Elastic Beanstalk Work

Elastic Beanstalk works by automatically provisioning and managing the resources required to run your application,such as EC2 instances, S3 storage, and databases. You simply upload your application code, and Elastic Beanstalk will handle the rest. It’s designed to be easy to use, with minimal setup and maintenance required, making it a great choice for developers who want to focus on writing code, rather than managing infrastructure.

How to Easily Deploy an App with Elastic Beanstalk

Deploying an app with Elastic Beanstalk is as simple as uploading your application code. You can use the AWS Management Console, AWS CLI, or the AWS SDKs to upload your code, and Elastic Beanstalk will handle the rest. You can also configure and customize your application environment as needed, using the AWS Management Console or APIs.

How Much Does Beanstalk Cost

The cost of running an application with Elastic Beanstalk varies based on the resources used (e.g. EC2 instances and storage) and can range from $0.02 to $0.09 per GB-month depending on the size and complexity of your application. Additionally, larger applications that require more resources than average could lead to higher costs when using Elastic Beanstalk compared to other providers.

Elastic Beanstalk Price Breakdown

  • EC2 Instances cost variable costs per hour.
  • Storage costs vary based on the size of your application and the amount of storage you need.
  • If you use a larger instance type, such as an “m4” or “c4” instance, the cost of storage may increase up to $0.09 per GB-month.
  • • Additionally, if your application is more complex or uses more resources than average, the cost of running it on Elastic Beanstalk may be higher than with other providers.

Pros & Cons of Elastic Beanstalk over App Runner

Pros:

  • Fully managed platform
  • Easy to use, with minimal setup and maintenance required
  • Automatically provisions and manages required resources

Cons:

  • May be more expensive than other options, depending on your specific needs
  • Limited customization options compared to other services
  • App Runner is a better solution for cloud-native container web applications

Is Elastic Beanstalk Serverless

No. Elastic Beanstalk is not a serverless service. You are still responsible for managing any EC2 instances that you use. It can be used with various AWS serverless services like Lambda, but generally

Is Elastic Beanstalk Good for Microservices

No. Beanstalk is not good for microservices. Technically, you can use it for microservices but it will become expensive and complicated. Use the AWS provided cloud-native services such as Elastic Container Service, Kubernetes, or Lambda for microservices.

When should I use Elastic Beanstalk

If you’re looking for a fully managed platform for deploying, running, and scaling web applications and services, Elastic Beanstalk is a great choice. It’s also a good option if you’re looking for a service that is easy to use, with minimal setup and maintenance required.

When You Should Avoid Elastic Beanstalk

Avoid Elastic Beanstalk whenever you do not have any hard server requirements. If you don’t need to access server-provided storage or cron jobs then App Runner is a better solution. Beanstalk is an excellent service for traditional applications like WordPress

When You Should Use App Runner vs Elastic Beanstalk

The choice between App Runner and Elastic Beanstalk will depend on your specific needs. If you’re looking for a CI/CD tool to automate your application’s deployment process, App Runner is a great choice. If you’re looking for a fully managed platform for deploying, running, and scaling web applications and services, Elastic Beanstalk is a great option.

In conclusion, both App Runner and Elastic Beanstalk are great tools for hosting PHP web applications, but they have different features and capabilities. By understanding the key differences between these two services, you can make an informed decision and choose the right service for your needs.

Cloud Hosting Article Series

This article is part of our series on cloud hosting for your web applications. Check out the following articles to dig further into your options.

Hosting Web Applications in AWS

This article is part of our series to make AWS easy. We love AWS, but let’s be honest. It isn’t effortless. Like way too complicated. We’ve created this learning path to help level you up and get your PHP app onboarded fast.

Maximize the Value You Get AWS for Your Applications

Stop running in circles and develop your applications faster and cheaper in AWS. This guide will walk you through ways to maximize AWS to generate real value for your needs. We dive into picking the right services to scale, tighten security and maximize costs.

Download our free guide now and get started with confidence.