AWS Certified Solutions Architect - Associate / Question #1391 of 1019

Question #1391

A company is migrating a satellite imagery database to AWS. The database contains millions of high-resolution images, each identified by a unique weather zone code. During severe weather events, the system experiences rapid updates, with thousands of images modified every few minutes. Each weather zone code corresponds to a single image. The company requires a highly available and scalable solution that remains cost-effective during peak loads.

Which solution BEST meets these requirements?

A

Store the images and weather zone codes in a database table. Use Oracle running on an Amazon RDS Multi-AZ DB instance.

B

Store the images in Amazon S3 buckets. Use Amazon DynamoDB with the weather zone code as the key and the image S3 URL as the value.

C

Store the images and weather zone codes in an Amazon DynamoDB table. Configure DynamoDB Accelerator (DAX) during times of high load.

D

Store the images in Amazon S3 buckets. Store weather zone codes and image S3 URLs in a database table. Use Oracle running on an Amazon RDS Multi-AZ DB instance.

Explanation

Answer B is correct because:
- Amazon S3 is ideal for storing large, high-resolution images due to its scalability, durability, and cost-effectiveness.
- DynamoDB provides a serverless, highly scalable NoSQL database to manage metadata (weather zone codes and S3 URLs). Using the weather zone code as the partition key ensures fast lookups and handles rapid updates (thousands of writes/min) during peak loads.
- Separating images (S3) and metadata (DynamoDB) optimizes performance and cost.

Other options are incorrect because:
- A & D: Storing images in a relational database (RDS) is inefficient for large binaries and lacks DynamoDB's write scalability. RDS is costlier to scale.
- C: DynamoDB has a 400KB item size limit, making it unsuitable for storing high-resolution images. DAX only caches reads, not writes.

Key Points: Use S3 for large objects; DynamoDB for scalable metadata; avoid storing large binaries in databases; prioritize serverless services for cost-effective scaling.

Answer

The correct answer is: B