Question

Difficulty: HardHigh-Performing and Scalable Storage Solutions

A financial services company is developing a real-time market analysis application deployed on a fleet of Amazon EC2 instances. The application needs to process and store millions of small analysis reports. The storage solution must support over 18,00018,000 read requests per second and 12,00012,000 write requests per second with sub-millisecond API latency. The files must be accessible via standard HTTPS APIs from any instance in the fleet, and the storage layer must automatically scale to handle unpredictable traffic spikes without manual intervention or performance degradation.

Which combination of actions should the solutions architect recommend to meet these requirements? (Select TWO.)

  1. Store the reports in an Amazon S3 bucket, and distribute the objects across multiple distinct prefixes within the bucket.Answer
  2. Deploy an Amazon CloudFront distribution in front of the Amazon S3 bucket to cache read requests and serve them from edge locations.Answer
  3. C
    Configure an Amazon EFS file system in Provisioned Throughput mode, and configure the EC2 instances to access it via an Application Load Balancer using HTTPS.
  4. D
    Provision an Amazon EBS volume with Multi-Attach enabled, mount it to all EC2 instances, and run a web server on each instance to expose the files over HTTPS.
  5. E
    Enable Amazon S3 Transfer Acceleration on the bucket to dynamically scale the read and write request rate limits of the target prefixes.

Answer

Storing the reports in Amazon S3 distributed across multiple prefixes and caching read requests using Amazon CloudFront.
Amazon S3 supports up to 5,5005,500 GET/HEAD requests and 3,5003,500 PUT/POST/DELETE requests per second per prefix. By partitioning the reports across multiple prefixes within the bucket, the application can scale storage operations horizontally to support 18,00018,000 read requests and 12,00012,000 write requests. Deploying Amazon CloudFront in front of the bucket caches frequently accessed read requests at edge locations, reducing request loads on the S3 prefixes and providing sub-millisecond latencies.

Step-by-Step Solution

1
Analyze the request rate requirements of 18,00018,000 reads/sec and 12,00012,000 writes/sec.
Identified that a single prefix in Amazon S3 (which supports 5,5005,500 GET/HEAD and 3,5003,500 PUT/POST/DELETE requests per second) will be throttled.
This establishes the scale of partitioning needed to distribute the performance load.
2
Evaluate partitioning options to distribute requests across multiple prefixes in S3.
By using at least 4 prefixes for reads and 4 for writes, the application can scale to handle the request volume without throttling.
S3 automatically partitions and scales performance limits per prefix.
3
Determine the mechanism to achieve sub-millisecond read latency over HTTPS.
Integrating Amazon CloudFront in front of the S3 bucket allows caching of reports at edge locations.
CloudFront handles high read rates and serves cached content with sub-millisecond latency.
4
Evaluate alternative storage options like EBS Multi-Attach and EFS against the requirements.
Ruled them out due to protocol mismatch (block/NFS instead of HTTP/HTTPS) and lack of automatic performance scaling for unpredictable spikes.
EBS Multi-Attach and EFS do not meet the direct HTTP API access requirement or the automatic scaling envelope without manual provisioning.

Key Concept

Amazon S3 prefix-based request scaling limits and CloudFront caching for high-performance HTTP workloads.
Estimated Time:2m 30s
Rate this question