Which are the best approaches to meet these requirements?
(Choose two.)
Deploy ElastiCache in-memory cache running in each availability zone
Implement sharding to distribute load to multiple RDS MySQL instances
Increase the RDS MySQL Instance size and Implement provisioned IOPS
Add an RDS MySQL read replica in each availability zone
Explanations:
Deploying ElastiCache can help reduce read contention by caching frequently accessed data in memory, allowing the application to serve read requests from the cache rather than hitting the RDS MySQL instance. This can significantly improve read performance and reduce the load on the database.
Implementing sharding can help distribute the load across multiple databases, but it adds complexity to the application and does not directly address the read contention issue on a single RDS instance. It’s more suited for scaling write operations rather than resolving read contention.
Increasing the RDS MySQL instance size and implementing provisioned IOPS may improve performance, but it does not resolve the read contention issue effectively for high-volume reads. In a high read scenario, this option may still lead to bottlenecks as the underlying architecture doesn’t change.
Adding RDS MySQL read replicas in each availability zone can help distribute read traffic, alleviating read contention on the primary database instance. Read replicas can handle read requests, thus reducing the load on the primary instance and improving overall read scalability.