Which solution will meet these requirements?
Deploy Amazon EC2 instances in a single Availability Zone. Deploy an RDS DB instance in the same Availability Zone. Use Amazon S3 with versioning enabled to store static assets.
Deploy Amazon EC2 instances in an Auto Scaling group across multiple Availability Zones. Deploy a Multi-AZ RDS DB instance. Use Amazon CloudFront to distribute static assets.
Deploy Amazon EC2 instances in a single Availability Zone. Deploy an RDS DB instance in a second Availability Zone for cross-AZ redundancy. Serve static assets directly from the EC2 instances.
Use AWS Lambda functions to serve the web application. Use Amazon Aurora Serverless v2 for the database. Store static assets in Amazon Elastic File System (Amazon EFS) One Zone-Infrequent Access (One Zone-IA).
Explanations:
Deploying EC2 instances and RDS in a single Availability Zone creates a single point of failure, compromising the architecture’s resilience and robustness. While S3 with versioning helps protect static assets, it doesn’t address the application’s availability needs.
This option leverages an Auto Scaling group across multiple Availability Zones for EC2 instances, ensuring high availability and scalability. The Multi-AZ RDS instance enhances database availability and durability. Using Amazon CloudFront for static asset distribution improves performance and resilience against traffic spikes.
Similar to option A, deploying EC2 and RDS instances in a single Availability Zone reduces resilience. While cross-AZ redundancy is mentioned, serving static assets directly from EC2 instances does not leverage the benefits of a scalable, distributed solution like S3 or CloudFront.
While AWS Lambda can provide a serverless approach, it may not be suitable for all web application needs, especially those requiring persistent sessions or specific performance characteristics. Aurora Serverless may also introduce latency issues. EFS One Zone-IA does not provide high availability as it is limited to a single Availability Zone.