Deploying to AWS Elastic Beanstalk

Components

The deployment of an artifact to AWS Elastic Beanstalk involves several major components as follows:

  • Application – a logical collection of Elastic Beanstalk components, including environments, versions [...] (see the next two)
  • Application Version – a specific, labeled iteration of deployable code for a web application
  • Environment – a version that is deployed onto AWS resources



Workflow

The deployment workflow is illustrated by the diagram in What Is AWS Elastic Beanstalk?:

The binding between those components is established indirectly and comprises the following activities:

  1. create an application version for that application – see the Create Application Version action of the AWS Elastic Beanstalk Application Version task
  2. manage the environment, which implies going back to 3./4. and selecting one of two approaches for deploying a new application version (be it a newly created or a former one):
    1. update an environment by deploying a new application version that replaces the currently running one (usually via a rolling or immutable update), as outlined in Deploying Applications to AWS Elastic Beanstalk Environments – see the Update Environment action of the AWS Elastic Beanstalk Environment task 

    2. create a new environment, optionally swapping over to that one with zero downtime, as outlined in Blue/Green Deployments with AWS Elastic Beanstalk – see the Swap Environment CNAMEs action of the AWS Elastic Beanstalk Environment task

Alternative workflow via CloudFormation

A typical workflow based on CloudFormation might look as follows:

  1. upload the application source code (the 'Source Bundle') – see the Upload File(s) action of the Amazon S3 Object task

Frequently Asked Questions (FAQ)