AWS Certified Big Data – Specialty — Question 64
An online photo album app has a key design feature to support multiple screens (e.g, desktop, mobile phone, and tablet) with high-quality displays. Multiple versions of the image must be saved in different resolutions and layouts.
The image-processing Java program takes an average of five seconds per upload, depending on the image size and format. Each image upload captures the following image metadata: user, album, photo label, upload timestamp.
The app should support the following requirements:
✑ Hundreds of user image uploads per second
✑ Maximum image upload size of 10 MB
✑ Maximum image metadata size of 1 KB
✑ Image displayed in optimized resolution in all supported screens no later than one minute after image upload
Which strategy should be used to meet these requirements?
Answer options
- A. Write images and metadata to Amazon Kinesis. Use a Kinesis Client Library (KCL) application to run the image processing and save the image output to Amazon S3 and metadata to the app repository DB.
- B. Write image and metadata RDS with BLOB data type. Use AWS Data Pipeline to run the image processing and save the image output to Amazon S3 and metadata to the app repository DB.
- C. Upload image with metadata to Amazon S3, use Lambda function to run the image processing and save the images output to Amazon S3 and metadata to the app repository DB.
- D. Write image and metadata to Amazon Kinesis. Use Amazon Elastic MapReduce (EMR) with Spark Streaming to run image processing and save the images output to Amazon S3 and metadata to app repository DB.
Correct answer: C
Explanation
The correct answer, C, is suitable because using a Lambda function allows for automatic and scalable processing of images right after they are uploaded to Amazon S3, meeting the one-minute requirement. Options A and D utilize Kinesis, which may introduce unnecessary complexity for this use case, while option B relies on RDS with BLOB data, which is not optimal for high-throughput image uploads.