SAP-C02 · Question #555
A company is building an image service on the web that will allow users to upload and search random photos. At peak usage, up to 10,000 users worldwide will upload their images. The will then…
The correct answer is C. Store the uploaded images in an Amazon S3 bucket and configure an S3 bucket event. For a globally accessible image service with high user uploads, text overlay processing, and website publishing, a serverless architecture leveraging Amazon S3 for storage, S3 events to trigger Lambda for image processing, and DynamoDB for metadata indexing is highly scalable…
Question
A company is building an image service on the web that will allow users to upload and search random photos. At peak usage, up to 10,000 users worldwide will upload their images. The will then overlay text on the uploaded images, which will then be published on the company website. Which design should a solutions architect implement?
Options
- AStore the uploaded images in Amazon Elastic File System (Amazon EFS). Send application log
- BStore the uploaded images in an Amazon S3 bucket and configure an S3 bucket event
- CStore the uploaded images in an Amazon S3 bucket and configure an S3 bucket event
- DStore the uploaded images on a shared Amazon Elastic Block Store (Amazon EBS) volume
How the community answered
(42 responses)- A5% (2)
- B10% (4)
- C83% (35)
- D2% (1)
Why each option
For a globally accessible image service with high user uploads, text overlay processing, and website publishing, a serverless architecture leveraging Amazon S3 for storage, S3 events to trigger Lambda for image processing, and DynamoDB for metadata indexing is highly scalable and cost-effective.
Amazon EFS is a shared file system, not as globally scalable or cost-effective for direct web uploads and large-scale object storage as S3, and using SQS for application logs doesn't address image processing.
While S3 and Lambda are good for storage and processing, using Amazon RDS for image metadata and search indexes would introduce relational database overhead that might not scale as efficiently or cost-effectively as DynamoDB for high-throughput, unstructured data.
Amazon S3 provides highly durable, scalable, and cost-effective object storage, ideal for storing uploaded images and supporting global access. Configuring an S3 bucket event to trigger an AWS Lambda function allows for serverless, event-driven processing (like text overlay) immediately after an upload, scaling automatically with demand. Storing image metadata and search indexes in Amazon DynamoDB enables fast, scalable search capabilities, while the processed images can be stored back in S3 and served directly for the company website, ensuring a fully scalable and decoupled architecture.
Shared Amazon EBS volumes are block storage attached to EC2 instances, making them unsuitable for direct user uploads from a web service, lacking global scalability, and adding significant operational overhead compared to S3.
Concept tested: Serverless image processing pipeline with S3, Lambda, and DynamoDB
Source: https://aws.amazon.com/blogs/aws/new-use-amazon-s3-event-notifications-with-aws-lambda/
Community Discussion
No community discussion yet for this question.