You are the new IT architect in a company that operates a mobile sleep tracking application.
When activated at night, the mobile app is sending collected data points of 1 kilobyte every 5 minutes to your
backend.
The backend takes care of authenticating the user and writing the data points into an Amazon DynamoDB
table.
Every morning, you scan the table to extract and aggregate last night’s data on a per user basis, and store the
results in Amazon S3. Users are notified via Amazon SNS mobile push notifications that new data is available,
which is parsed and visualized by the mobile app.
Currently you have around 100k users who are mostly based out of North America.
You have been tasked to optimize the architecture of the backend system to lower cost.
What would you recommend? (Choose 2)
A.
Have the mobile app access Amazon DynamoDB directly Instead of JSON files stored on Amazon S3.
B.
Write data directly into an Amazon Redshift cluster replacing both Amazon DynamoDB and Amazon S3.
C.
Introduce an Amazon SQS queue to buffer writes to the Amazon DynamoDB table and reduce provisioned
write throughput.
D.
Introduce Amazon Elasticache to cache reads from the Amazon DynamoDB table and reduce provisioned
read throughput.
E.
Create a new Amazon DynamoDB table each day and drop the one for the previous day after its data is on
Amazon S3.
C and E
Less ec2 more managed services
C,E
I agree with you guys. B and D both need EC2 instances. While D itself is not required as data is retrieved only once in the morning to generate report.
A is wrong as keeping archival data on cheaper storage is good option as compared to putting it in DynamoDB.