Which service should you use?
Amazon RDS with provisioned IOPS up to the anticipated peak write throughput.
Amazon Simple Queue Service (SQS) for capturing the writes and draining the queue to write to the database.
Amazon ElastiCache to store the writes until the writes are committed to the database.
Amazon DynamoDB with provisioned write throughput up to the anticipated peak write throughput.
Explanations:
While Amazon RDS with provisioned IOPS can handle high write throughput, it is still subject to the limitations of the underlying relational database engine and may not effectively manage spikes in write operations, risking dropped writes during peak traffic.
Amazon SQS allows you to decouple the write operations from the database. It can buffer writes during high traffic, ensuring that none are dropped as you can drain the queue and write to the database at a manageable rate.
Amazon ElastiCache is primarily used for caching data to speed up read operations. It does not provide durable storage for writes and could result in data loss if the cache is cleared or fails before writing to the database.
Although Amazon DynamoDB can handle high write throughput and is highly scalable, the question specifies ensuring no writes are dropped. SQS would be more effective for guaranteeing that all writes are captured and processed, especially with unpredictable traffic.