Choose the best when there are options

A company collects a steady stream of 10 million data records from 100,000 sources each day. These records are written to an Amazon RDS MySQL DB. A query must produce the daily average of a data source over the past 30 days. There are twice as many reads as writes. Queries to the collected data are for one source ID at a time.

How can the Solutions Architect improve the reliability and cost effectiveness of this solution?

  1. Use Amazon Aurora with MySQL in a Multi-AZ mode. Use four additional read replicas.
  2. Use Amazon DynamoDB with the source ID as the partition key and the timestamp as the sort key. Use a Time to Live (TTL) to delete data after 30 days.
  3. Use Amazon DynamoDB with the source ID as the partition key. Use a different table each day.
  4. Ingest data into Amazon Kinesis using a retention period of 30 days. Use AWS Lambda to write data records to Amazon ElastiCache for read access.


答案A和D中,乍一看都是可以满足所有需求:一定量的数据写入,两倍于写入的读取需求性能和查询最近30天的平均值。但答案A相比D更加合理: * 数据并没有说明只保留30天,答案A可以长期保留数据。而D在30天之后数据即消失 * Kinesis更加强调实时性,这里并没有提出这种需求