Which solution meats these requirements?
Use AWS Lambda to process the photos. Store the photos and metadata in DynamoDB.
Use Amazon Kinesis Data Firehose to process the photos and to store the photos and metadata.
Use AWS Lambda to process the photos. Store the photos in Amazon S3. Retain DynamoDB to store the metadata.
Increase the number of EC2 instances to three. Use Provisioned IOPS SSD (io2) Amazon Elastic Block Store (Amazon EBS) volumes to store the photos and metadata.
Explanations:
AWS Lambda is a suitable choice for processing photos, but using only DynamoDB for storing photos may not be ideal for handling large image files, as DynamoDB is primarily designed for metadata and small data items.
Amazon Kinesis Data Firehose is designed for real-time data streaming and ingestion, not for processing images. It does not provide a mechanism to process images effectively or store them efficiently.
AWS Lambda can process photos efficiently, and storing photos in Amazon S3 is ideal as it offers scalable and cost-effective storage for large objects. DynamoDB is retained for metadata storage, ensuring the application can scale with varying user loads.
Increasing the number of EC2 instances does not ensure effective scaling due to variable workloads and the potential for single points of failure. Using EBS volumes for storage is also not optimal for a growing number of users, as it does not provide the scalability and durability offered by S3.