A company hosts a global car-sharing application on AWS. The application consists of a frontend static website hosted in an Amazon S3 bucket, and a backend REST API hosted on Amazon EC2 instances behind an Application Load Balancer (ALB). The API queries a primary Amazon RDS for MySQL database. Users report slow load times for both the static images of cars and the dynamic vehicle search results. Which two actions should a solutions architect take to improve application performance and reduce latency? (Select TWO.)
- Deploy an Amazon CloudFront distribution in front of the Amazon S3 bucket to cache and serve the static vehicle images closer to users.Answer
- Implement an Amazon ElastiCache cluster to store and retrieve frequent database query results for vehicle availability.Answer
- CConfigure the Amazon CloudFront distribution with a cache behavior that sets the Minimum TTL, Maximum TTL, and Default TTL to 0 seconds for all static assets.
- DRoute all static media download traffic from the Amazon S3 bucket to the private EC2 instances through a NAT Gateway to speed up internal data processing.
- ETransition the static vehicle images to Amazon S3 Glacier Flexible Retrieval and configure the application to retrieve them in real-time when a user loads a page.
Answer
Deploying an Amazon CloudFront distribution in front of the S3 bucket to cache static assets, and implementing an Amazon ElastiCache cluster to cache database query results.
Deploying an Amazon CloudFront distribution in front of the S3 bucket caches static vehicle images at edge locations close to global users, reducing load times. Implementing an Amazon ElastiCache cluster caches read-heavy database queries, offloading work from the primary RDS MySQL database and resolving latency issues for the dynamic search REST API.
Step-by-Step Solution
Key Concept
Multi-tier caching using Amazon CloudFront for edge content delivery and Amazon ElastiCache for database query acceleration.