Question #1963
An ecommerce company is designing a fault-tolerant web application on AWS. The architecture includes a dynamic web tier hosted on Amazon EC2 instances, a transactional database in Amazon RDS, and media files stored in Amazon S3. The company requires high availability and automatic recovery from infrastructure failures. Which solution fulfills these requirements?
Deploy EC2 instances in one Availability Zone. Use a Single-AZ RDS instance in the same Zone. Configure S3 cross-region replication for media files.
Deploy EC2 instances in an Auto Scaling group across multiple Availability Zones. Use a Multi-AZ RDS deployment. Distribute media files via Amazon CloudFront with S3 origin.
Place EC2 instances in two Availability Zones without Auto Scaling. Deploy RDS Read Replicas in a second Zone. Serve media files directly from EC2 instances using EBS volumes.
Host the web tier using AWS Fargate in a single Availability Zone. Use Amazon DynamoDB Global Tables for the database. Store media files in Amazon S3 One Zone-Infrequent Access.
Explanation
Option B is correct because:
- EC2 in Auto Scaling across AZs: Ensures the web tier automatically recovers from failures and maintains availability by distributing instances across multiple AZs.
- Multi-AZ RDS: Provides automatic failover for the transactional database, ensuring high availability.
- CloudFront with S3: Delivers media files globally with low latency and high redundancy, leveraging S3's durability and CloudFront's edge caching.
Other options fail because:
- A: Single-AZ deployments for EC2/RDS create single points of failure.
- C: No Auto Scaling for EC2, Read Replicas (not Multi-AZ), and media stored on EBS (not fault-tolerant).
- D: Single-AZ Fargate and S3 One Zone-IA lack cross-AZ redundancy.
Key Points: Use Auto Scaling, Multi-AZ RDS, and CloudFront+S3 for fault-tolerant architectures.
Answer
The correct answer is: B