A financial company is redesigning its monolithic on-premises transactional application to run on the AWS Cloud. The development team wants to apply core AWS cloud design principles to improve the application's agility, reduce management overhead, and ensure high availability. Which of the following architectural choices directly implement AWS Cloud design principles? (Select TWO.)
- Deploying the application servers across multiple Availability Zones behind an Application Load Balancer to ensure the system remains operational if a zone fails.Answer
- Defining the infrastructure using AWS CloudFormation templates to easily deploy and terminate temporary environments for testing.Answer
- CHosting all components of the application on a single large Amazon EC2 instance to eliminate network communication latency between tiers.
- DManually provisioning a fixed number of maximum-capacity Amazon EC2 instances to handle potential demand spikes throughout the year.
- EConfiguring AWS to automatically apply guest operating system patches and manage security configurations on the deployed Amazon EC2 instances.
Answer
The correct choices are deploying the application servers across multiple Availability Zones behind an Application Load Balancer, and defining the infrastructure using AWS CloudFormation templates to deploy and terminate temporary environments.
Deploying the application servers across multiple Availability Zones behind an Application Load Balancer directly aligns with the 'design for failure' principle, as it prevents localized outages from bringing down the application. Defining the infrastructure as code using AWS CloudFormation templates implements the 'disposable resources' principle, enabling the team to easily spin up temporary testing environments and tear them down, thereby increasing operational agility.
Step-by-Step Solution
Key Concept
AWS Cloud Design Principles (Design for Failure and Disposable Resources)