All at once
- The EC2 instances in the environment are all updated simultaneously.
- Requires downtime.
Immutable
- The existing EC2 instances are not modified.
- The release is deployed to a newly created batch of EC2 instances, doubling the number momentarily.
- Once the deployment is successful, the old EC2 instances are destroyed.
Rolling
- The release is deployed to a subset of EC2 instances, leaving the rest up. Once the release has finished deploying to those, the release is deployed to a new subset of instances. Repeat until all instances have the update.
- During deployment, the number of available EC2 instances will be less than there are normally, which would be a problem if handling load is a concern.
Rolling with additional batch
- Like Rolling, but allows you to retain full capacity by creating a new batch of EC2 instances.
Blue-green
- Like Immutable, except a new Elastic Beanstalk environment is created. Once the updates are made to the new environment, the CNAME record points to that instead of the old environment.
- The old environment gets destroyed; this would probably be an issue if that environment also contained an RDS instance attached.