• It is a high-level deployment tool
  • Helps you get an app from your desktop to the web in a matter of minutes.
  • handles the details of your hosting environment for
    • capacity provisioning
    • load balancing
    • scaling
    • application health monitoring
  • A platform configuration defines the infrastructure and software stack to be used for a given environment.
  • When you deploy your app, Elastic Beanstalk provisions a set of AWS resources
  • AWS resources can include Amazon EC2 instances, alarms, a load balancer, security groups, and more.

Using Beanstalk

  • First create an application
  • upload an application version in the form of an application source bundle (for example, a Java .war file) to Elastic Beanstalk
  • then, provide some information about the application.
  • Elastic Beanstalk automatically launches an environment and creates and configures the AWS resources needed to run your code.
  • After your environment is launched, you can then manage your environment and deploy new application versions.

The following diagram illustrates the workflow of Elastic Beanstalk.

After creating and deploying your application, information about the application—including metrics, events, and environment status, is available through

  • the AWS Management Console, APIs
  • Command Line Interfaces and
  • unified AWS CLI

Beanstalk Terms

Application

  • It is a logical collection of Elastic Beanstalk components
  • includes
    • environments
    • versions
    •  environment configurations.
  • application is similar to a folder.

Application Version

  • It is a specific, labeled iteration of deployable code for a web application.
  • It points to S3 object having deployable code like  a Java WAR file.
  • It is part of an application.
  • Applications can have multiple versions
  • Each application version is unique.
  • In a running environment, deploy any application version

Environment

  • It is a collection of AWS resources running an application version.
  • It runs only one application version at a time
  • Same or different application versions can run in many environments simultaneously.
  • After creating environment, Elastic Beanstalk provisions resources needed to run application version.

Environment Tier

  • It designates type of application that the environment runs
  • It determines what resources Elastic Beanstalk provisions to support it.
  • An application serving HTTP requests runs in a web server environment tier.
  • It is to be selected if launching an Elastic Beanstalk environment

Environment Configuration

  • Identifies parameters and settings which define behavior of environment and its resources.
  • If environment’s configuration settings are changed, Elastic Beanstalk automatically applies the changes to existing resources

Saved Configuration

  • It is a template to be used as a starting point for creating unique environment configurations.
  • Can create and modify saved configurations
  • Apply saved configurations to environments by  
    • Elastic Beanstalk console
    • EB CLI
    • AWS CLI or API.
  • The API and the AWS CLI refer to saved configurations as configuration templates.

Platform

  • It is a combination of
    • operating system
    • programming language runtime
    • web server
    • application server
    • Elastic Beanstalk components.

Web Server Environments

Sample web server environment tier, and their working

Worker Environments

AWS resources created for a worker environment tier include

  • Auto Scaling group,
  • one or more Amazon EC2 instances
  • an IAM role.
  • SQS queue
  • Elastic Beanstalk installs required files for programming language
  • daemon also runs on each EC2 instance in Auto Scaling group to read messages from SQS queue

Components and their interactions

Menu