Skip to content

Elastic Beanstalk Overview

  • Developer problems on AWS

    • Managing infrastructure
    • Deploying Code
    • Configuring all the databases, load balancers etc
    • Scaling concerns
  • Most web apps have the same architecture (ALB+ASG)

  • All the developers want is for their code to run!
  • Possibly, consistently across different applications and environments

Elastic Beanstalk

  • Elastic Beanstalk is a developer centric view of deploying an application on AWS
  • It uses all the components we've seen before : EC2, ASG, ELB, RDS, ...
  • Managed service
    • Automatically handles capacity provisioning, load balancing, scaling, application health monitoring, instance configuration,...
    • Just the application code is the responsibility of the developer
  • We still have full control over the configuration
  • Beanstalk is free but you pay for the underlying instances

Components

  • Application: collection of Elastic Beanstalk components (environments, versions, configurations ...)
  • Application Version: an iteration of your application code
  • Environment
    • Collection of AWS resources running an application version (only one application version at a time)
    • Tiers: Web Server Environment Tier & Worker Environment Tier
    • You can create multiple environments (dev, test, prod)

Supported platforms

  • Go
  • Java SE
  • Java with Tomcat
  • .Net Core on Linux
  • .Net on Windows Server
  • Node.js
  • PHP
  • Python
  • Ruby
  • Packer Builder
  • Single Container Docker
  • Multi-container Docker
  • Preconfigured Docker

  • If not supported, you can write your custom platform (advanced)

Web Server Tier vs Worker Tier

  • Scale based on the number of SQS messages
  • Can push messages to SQS queue from another Web Server Tier