Skip to main content
Skip to main content
Still in beta — questions, comments or suggestions? aramb@aramb.dev

AWS Elastic Beanstalk

Learn how Elastic Beanstalk lets you deploy web applications by uploading code — while AWS handles provisioning, scaling, and monitoring.

15 min
Introductory

Learning outcomes

By the end of this lesson, you will be able to:

  1. Explain what AWS Elastic Beanstalk does.
  2. List the platforms Beanstalk supports.
  3. Compare Beanstalk with EC2, Lambda, Lightsail, and Fargate.
  4. Identify when Beanstalk is the right choice.

What Elastic Beanstalk does

AWS Elastic Beanstalk is a Platform as a Service (PaaS). You upload your application code, and Beanstalk automatically handles:

  • Provisioning — creates EC2 instances, load balancers, and other resources
  • Deployment — deploys your code to the provisioned infrastructure
  • Scaling — configures Auto Scaling based on demand
  • Monitoring — integrates with CloudWatch for health checks and metrics
  • Patching — applies platform updates and OS patches
Beanstalk: you provide the code, AWS manages the infrastructure

Tip

Key point: Beanstalk is not a separate compute service — it orchestrates existing AWS services (EC2, ELB, Auto Scaling, CloudWatch) on your behalf. You still have full access to the underlying resources if you need them.


Supported platforms

Beanstalk supports a wide range of languages and runtime platforms:

  • Java (Tomcat, Corretto)
  • .NET (on Windows Server or Linux)
  • Node.js
  • Python
  • Ruby
  • PHP
  • Go
  • Docker (single container or multi-container)

If your language is not natively supported, you can use a Docker platform to run any runtime.


Beanstalk vs other compute options

FeatureElastic BeanstalkEC2LambdaLightsailFargate
TypePaaSIaaSServerlessSimplified VPSServerless containers
You manageApplication codeEverything (OS, patching, scaling)Function code onlyBasic server configContainer definitions
ScalingAutomatic (configurable)Manual or Auto Scaling setupAutomatic per requestManualAutomatic per task
Access to serversYes (optional)Yes (full control)NoYes (limited)No
Best forWeb apps, APIs needing managed infraFull control workloadsEvent-driven, short tasksSimple sites, beginnersContainerized services
PricingPay for underlying resources onlyPay for instancesPay per invocationFixed monthly plansPay per vCPU/memory/sec

Note

No extra charge for Beanstalk itself. You only pay for the underlying AWS resources it creates (EC2 instances, load balancers, etc.).


When to pick Beanstalk

Beanstalk is a good fit when:

  • You have a web application or API (Node.js, Python, Java, .NET, etc.)
  • You want AWS to manage the infrastructure (provisioning, scaling, patching)
  • You still want access to the underlying resources if needed
  • You do not need container orchestration (use ECS/Fargate for that)
  • You do not need serverless event-driven architecture (use Lambda for that)

Think of Beanstalk as the middle ground:

  • More managed than EC2 (you don't set up everything from scratch)
  • Less abstract than Lambda (you still have servers, just managed ones)

Micro-activity: Match the Compute Service

Micro-Activity

Match each compute service to its model

Examples

Choose one, then match it on the right

Characteristics

Select an example first

0 of 5 matched so far.


Quiz

Knowledge Check
1 / 4

What is AWS Elastic Beanstalk?