I am new to AWS and have a couple of questions regarding the different deployment options for Elastic BeanStalk.
-
Regarding Immutable Deployment, We create a new ASG under the same ALB and provision ONE instance with new application version installed, then we wait until it passed the health Check and start directing traffic to the instance, if it is Okay then we create same amount of instance in the new ASG and replace all old instances in the old ASG, delete the new ASG and place the instances in the old ASG. If deployment failed before the ASG switches, we just redirect traffic back to the instances in the old ASG.
-
Traffic Splitting, new set of instance is provisioned immediately in new ASG instead of ONE instance in 1), health check passed for all instances and we can configure the amount of traffic to be sent to new instances in ASG for a configurable amount of time, when time passed 100% traffic is sent to new instances, it will also replace old instances in old ASG, new ASG is deleted, failure in deployment before ASG switches will require the same thing, traffic to be routed back to old ASG. However, I am confused why deployment failure will impact user traffic routed to new version. https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.deploy-existing-version.html
-
Blue Green Deployment, instead of creating a new ASG, a complete new environment is created, meaning there is a new ALB, new ASG, new instances, health check passed on all instances and traffic is immediately passed onto new instances, new ASG deleted and new instances replace old one in old ASG. Failure in deployment before ASG switches will require URL changes because we need to route traffic back to the DNS of the old ALB.
Are my explanation correct? please provide some suggestions.
Thanks,