Skip to content

Beanstalk overview

Developer problems on AWS

  • [[Managing infrastructure]]
  • [[Deploying Code]]
  • Configuring all the [[database]]s, [[load balancer]]s etc
  • [[Scaling]] concerns
  • Most web apps have the same [[architecture]] (Application Load Balancer (v2)+Auto Scaling Group (ASG))
  • All the developers want their code to run
  • Possibly, consistently across different applications and environments

AWS ElasticBeanStalk Overview

  • ElasticBeanstalk is a developer centric view of deploying an application on AWS
  • It uses all the components we've seen before: AWS EC2, Auto Scaling Group (ASG), [[Elastic Load Balancer]], AWS RDS etc.
  • But it's all in one view that's easy to make sense of.
  • We still have full control over configuration
  • BeanStalk is free but you pay for the underlying instances.

  • It is a [[Managed Service]]

    • Instance Configuration / OS is handled by beanstalk
    • Deployment strategy is configurable but performed by ElasticBeanStalk
  • Just the application code is the responsibility of the developer

  • Three architecture models:

  • Elastic BeanStalk has three components:

    • Application
    • Application version: each deployment gets assigned a version
    • Environment name (dev, test, prod): free naming
  • You deploy application versions to environments and can promote application versions to the next environment
  • [[Rollback]] feature to previous application versions
  • Full control over [[lifecycle]] of environments

  • Support for many platforms:

    • [[Go]]
    • [[Java SE]]
    • [[Java with Tomcat]]
    • .NET on Windows Server with IIS
    • [[Node.js]]
    • [[PHP]]
    • [[Python]]
    • [[Ruby]]
    • [[Packer Builder]]
    • [[Single Container Docker]]
    • [[Multicontainer Docker]]
    • [[Preconfigured Docker]]
    • If not supported, you can write your [[beanstalk custom platform]]