Which deployment strategy will meet the requirements?
Use rolling deployments with a fixed amount of one instance at a time and set the healthy threshold to OK.
Use rolling deployments with additional batch with a fixed amount of one instance at a time and set the healthy threshold to OK.
Launch a new environment and deploy the new application version there, then perform a CNAME swap between environments.
Use immutable environment updates to meet all the necessary requirements.
Explanations:
Rolling deployments with a fixed amount of one instance at a time do not guarantee zero downtime, as instances are updated one by one, potentially causing service disruption during the process.
Rolling deployments with additional batch and a fixed amount of one instance at a time also do not guarantee zero downtime, as the new instances are rolled out progressively, which may cause service interruptions.
Launching a new environment and swapping the CNAME does not satisfy the requirement of using the same resources (e.g., EC2 Auto Scaling group, Elastic Load Balancing) as the original environment.
Immutable environment updates create a new fleet of EC2 instances for the new application version. The old instances remain in service, ensuring zero downtime. If the new instances fail, they are terminated, and the old ones continue serving traffic without any disruption. This strategy satisfies all the requirements.