What is Elastic Beanstalk?
AWS Elastic Beanstalk is an easy-to-use service for deploying and scaling web applications and services developed with Java, .NET, PHP, Node.js, Python, Ruby, Go, and Docker on familiar servers such as Apache, Nginx, Passenger, and IIS.
To begin, simply upload your code and Elastic Beanstalk automatically handles the deployment, from capacity provisioning, load balancing, auto-scaling to application health monitoring. At the same time, you retain full control over the AWS resources powering your application and can access the underlying resources at any time.
Elastic Beanstalk Architecture
Elastic Beanstalk automatically provisions the resources required to run application deployment. AWS resources created for an environment include Route53 entry, an Elastic Load Balancer (ELB), an Auto Scaling Group (ASG), and one or more instances.
Once configured, the Beanstalk environment is highly dependent on its provisioned resources which are used for scaling and load balancing purposes.
How Does The Integration Work?
Due to the fact that the Elastic Beanstalk environment is dependent on its provisioned resources (i.e. CloudFormation, ELB and ASG), it is necessary to keep those in place and integrate only with the underlying ASG.
Elastic Beanstalk uses several strategies for rolling deployments:
All at once,
Rolling with additional batch,
Depending on the Deployment Policy configured in the Elastic Beanstalk environment, Elastigroup will identify it and use one of the following approaches to manage the cluster: in-ASG or Independent Elastigroup.
|Elastic Beanstalk Deployment Policy||Spotinst Integration Method|
To learn more about Elastic Beanstalk deployment methods, see the following AWS documentation: Deployment Policies and Settings
We recommend using a deployment policy that is supported by the in-ASG approach whenever possible.
The following sections explain how each integration mode works to help you better understand the concepts behind Elastigroup for Elastic Beanstalk as well as debugging in case of a potential failure in the setup and scale process.