AWS App Runner vs Elastic Beanstalk: Differences Compared

Last Updated on

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.

Feature/AspectAWS App RunnerAWS Elastic Beanstalk
Service TypeFully managed servicePlatform as a Service (PaaS)
Ease of UseDesigned for simplicityMore configuration options
DeploymentDirect from source or containerSource code, containers, or pre-built
ScalingAutomatic scalingBoth manual and automatic scaling
CustomizationLimited customization optionsMore customization options
Supported LanguagesAny (via Docker containers)Multiple (Java, .NET, PHP, Node.js, etc.)
Infrastructure ManagementFully managedManaged but with more control
Monitoring and LoggingAWS CloudWatchAWS CloudWatch, and more
IntegrationAWS servicesExtensive AWS services and third-party tools
Use CaseSimple and quick deploymentsMore complex applications
PricingPay-as-you-goPay-as-you-go, with more pricing options
MaintenanceLow maintenance requiredSome maintenance may be required

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

Free AWS Development Guide

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 pick 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 a web application’s deployment, hosting, autoscaling & load balancing. 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. 

But, Let’s be honest.

Managing AWS or any cloud infrastructure 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 seeks to solve 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 get to write your code and push it to Github. The platform handles the rest for you.

It’s a done-for-you service.

Our Latest Articles on AWS App Runner

AWS Equivalent of Google Cloud Run: App Runner & Fargate

AWS offers App Runner & Fargate + Elastic Container Service as the most similar equivalent to Google Cloud Run for container deployment.

Deploy a Monorepo in App Runner: AWS New Repository Support

AWS announces new feature to deploy a monorepo into App Runner. This is a positive development & step in the platform system.

AWS App Runner Default Auto-Scaling Configurations + Versions

AWS App Runner now supports Auto-Scaling default configurations with versions. This update will improve managing environments.

AWS App Runner vs Fargate: Differences & Uses Compared (2023)

AWS App Runner vs Fargate? Don't make a decision without reading our in-depth comparison of these two popular cloud services

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 a really affordable service 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 must 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 can deploy your application with just a few clicks.

App Runner Deployment Steps

  1. App Runner uses the deployment method 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 downtime 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 the AWS popular Elastic Container Service under the hood
  • It’s VERY affordable when compared to Heroku. I’ve seen it cut a bill nearly in half.
  • Easy to set up, user-friendly, and removes a lot of infrastructure headaches.

Cons:

  • It may not be a good choice if you’re looking for a fully managed platform
  • It 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 provide your 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.

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, which 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 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

Elastic Beanstalk also saves organizations time and money by automatically managing the underlying infrastructure supporting 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

Read Our Latest Articles on Elastic Beanstalk

AWS Amplify vs Elastic Beanstalk: Web App Hosting Compared

Choosing the perfect AWS service for your web app: Dive into the Amplify vs Elastic Beanstalk battle and make an informed decision.

AWS Elastic Container Service (ECS) vs Beanstalk Compared

Discover the key differences between AWS Elastic Container Service and Elastic Beanstalk! Get an in-depth understanding of each service.

AWS App Runner vs Elastic Beanstalk: Differences Compared

Deciding when you should use AWS App Runner vs Elastic Beanstalk? There are a few important factors we will share in this article

Best Cloud PHP Hosting Providers for Apps Compared in 2023

Choosing the right Host for your PHP Web App is overwhelming. We've compared & provided the best options from startups to enterprise.

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 AWS SDKs to upload your code; Elastic Beanstalk will handle the rest. You can also configure and customize your application environment as needed, using the AWS Management Console or APIs.

Click here to see our Solution to Deploying Laravel into Elastic Beanstalk.

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 than 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 storage cost may increase 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.

Breaking AWS Related News

Deploy a Monorepo in App Runner: AWS New Repository Support

AWS announces new feature to deploy a monorepo into App Runner. This is a positive development & step in the platform system.

Automate MSK Topics to S3 Data Lake: New AWS Delivery Service

Automate data transfer from Kafka topics into data lake via AWS MSK, S3 & Kinesis. New managed data delivery service announced.

AWS App Runner Default Auto-Scaling Configurations + Versions

AWS App Runner now supports Auto-Scaling default configurations with versions. This update will improve managing environments.

AWS CodePipeline + Gitlab: Deploy Apps into the Cloud

You can now deploy your web apps into AWS with Gitlab using CodePipeline. This is a new repository source that opens more opportunities.

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.

Building 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. It’s way too complicated. We’ve created this learning path to help level you up and onboard your PHP app quickly.

Free AWS Development Guide

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 pick the right services to scale, tighten security and maximize costs.

Download our free guide now and get started with confidence.

Did you find this article helpful?

Join the best weekly newsletter where I deliver content on building better web applications. I curate the best tips, strategies, news & resources to help you develop highly-scalable and results-driven applications.

Build Better Web Apps

I hope you're enjoying this article.

Get the best content on building better web apps delivered to you.