Which solution will meet these requirements?
Deploy an Amazon ElastiCache for Redis cluster in front of the DB cluster. Modify the application to check the cache before the application issues new queries to the database. Add the results of any queries to the cache.
Deploy an Aurora Replica for the DB cluster. Modify the application to use the reader endpoint for search operations. Use Aurora Auto Scaling to scale the number of replicas based on load.
Use Provisioned IOPS on the storage volumes that support the DB cluster to improve performance sufficiently to support the peak load on the application.
Increase the instance size in the DB cluster to a size that is sufficient to support the peak load on the application. Use Aurora Auto Scaling to scale the instance size based on load.
Explanations:
While using Amazon ElastiCache for Redis could improve performance by caching search results, it may not be efficient in this case since searches are rarely repeated. The application would spend additional resources on maintaining the cache without significant benefit from caching unique searches.
Deploying an Aurora Replica and using the reader endpoint for search operations can significantly offload read traffic from the primary DB cluster, improving performance during peak loads. Aurora Auto Scaling for replicas allows automatic adjustment based on traffic, maximizing resource efficiency.
Provisioned IOPS may improve performance, but it may not be sufficient alone to address peak load issues effectively. This option does not provide the scalability or read-offloading capabilities needed for fluctuating usage patterns, potentially leading to continued performance issues.
Increasing the instance size could temporarily alleviate performance issues but does not address the scalability required for varying loads. Aurora Auto Scaling for instance size is also limited in its ability to address read-heavy workloads, which are prominent during peak search operations.