AWS Quick Notes — Elastic Beanstalk
It is a simple solution for the deployment of web apps and web services.
Here an application is a logical collection of elastic beanstalk components.
An application version is a labeled version of deployable code.
An environment helps provision resources to run an application version.
Environment tiers could be web sever environment(web servers and databases) and worker environment(SQS based queue based processing environment).
Components of a web tier environment consist of
- Web Server
- Beanstalk Environment
- Elastic Load Balancer
- Auto Scaling Group for EC2 instances.
- Host Manager
In a worker environment the components are
- SQS
- Beanstalk Daemon that pulls and processes messages from SQS and processes them.
Environments can be customized using environment configuration.
There are different types of deployment options available
- All at once — Here all the instances are updated at the same time
- Rolling — Updates are done one at a time.
- Rolling with additional batch — Here while instances are updating new ones are launched to allow for full capacity.Extra instances are terminated once all updates are complete.
- Immutable — Full new set of instances is launched. Old instances are terminated only after deployment.
Traffic splitting — This is where beanstalk provides the ability to deploy a new version to a separate group of instances and traffic can be split between old and new.