A company is deploying a new web application that requires a disciplined approach to deployment, management, and rollback. They want to ensure that every deployment is predictable, and the infrastructure state remains consistent after each launch. Which of the following design approaches will help the company meet these requirements by embracing the concept of immutable infrastructure?
Updating the existing instances in place with new software revisions using configuration management tools.
Utilizing AWS CodeDeploy to orchestrate in-place application updates to the latest revision by replacing application code.
Leveraging Amazon EC2 Auto Scaling to automatically adjust the number of instances during traffic variations.
Packaging the application into Docker containers and running them on a fleet of Amazon EC2 instances without predefined configurations.
Employing AWS Elastic Beanstalk to manage application deployments by directly updating the application versions on existing instances.
Creating new Amazon Machine Images (AMIs) for each deployment and replacing the existing instances with new instances launched from these AMIs.