Which solution will meet these requirements?
Use Amazon Redshift with a single node for leader and compute functionality.
Use Amazon RDS with a Single-AZ deployment Configure Amazon RDS to add reader instances in a different Availability Zone.
Use Amazon Aurora with a Multi-AZ deployment. Configure Aurora Auto Scaling with Aurora Replicas.
Use Amazon ElastiCache for Memcached with EC2 Spot Instances.
Explanations:
Amazon Redshift is a data warehousing service, not designed for transactional workloads or to handle unpredictable read requests efficiently in an e-commerce application context. It is not suitable for the requirement of scaling database performance for read-heavy workloads.
While Amazon RDS can support read replicas, a Single-AZ deployment does not provide high availability or failover capabilities. Additionally, it does not efficiently handle scaling for read-heavy workloads as well as other options that utilize Multi-AZ configurations.
Amazon Aurora with a Multi-AZ deployment offers high availability and automatically scales read workloads through Aurora Replicas. Aurora Auto Scaling allows for dynamic scaling of replicas based on demand, making it well-suited for unpredictable read workloads while ensuring performance and availability.
Amazon ElastiCache is primarily a caching solution that accelerates application performance for read-heavy workloads but does not serve as a primary database. It does not fulfill the requirement of automatically scaling a database to meet demand, as it is not a database service itself.