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
On this page:
Related Pages:
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:
create an application – see the Create Application action of the AWS Elastic Beanstalk Application task
upload the application source code (the 'Source Bundle') – see the Upload File(s) action of the Amazon S3 Object task
create an application version for that application – see the Create Application Version action of the AWS Elastic Beanstalk Application Version task
launch an environment with one of the available application versions of an application – see the Create Environment action of the AWS Elastic Beanstalk Environment task
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):
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
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
AWS demotes CNAME swapIf your application architecture and deployment scenario allow to use rolling or immutable updates, AWS nowadays recommends these more flexible approaches over a CNAME swap – refer to table Deployment Methods within Deploying Applications to AWS Elastic Beanstalk Environments for a comparison of available deployment methods.
Alternative workflow via CloudFormation
As an alternative to using the AWS Elastic Beanstalk tasks built into Tasks for AWS, it is also possible to provision the Elastic Beanstalk components directly via the AWS CloudFormation Stack task and the corresponding CloudFormation resource types:
A typical workflow based on CloudFormation might look as follows:
upload the application source code (the 'Source Bundle') – see the Upload File(s) action of the Amazon S3 Object task
create/update the CloudFormation stack that provisions the Elastic Beanstalk application, application version and environment – see the Create Stack action of the AWS CloudFormation Stack task
You can use the Update stack, if it already exists option to reuse the same Bamboo job for both actions
Frequently Asked Questions (FAQ)
Amazon Web Services™, AWS™ and the “Powered by Amazon Web Services” logo are trademarks of Amazon.com, Inc. or its affiliates in the United States and/or other countries.
Utoolity® is a registered trademark of Utoolity GmbH.
© 2024 Utoolity GmbH. All rights reserved.