You've currently developed an application that makes use of AWS RDS - MySQL service.
During the testing phase, you can see that the database is taking a performance hit.
After further investigation, you can see that the same queries are causing the performance bottleneck on the application.
Which of the following development steps should be taken to resolve this issue?
Click on the arrows to vote for the correct answer
A. B. C. D.Answer - D.
Option A is invalid because this is used for the high availability of the database.
Option B is invalid because we don't know the server's current configuration.
We guess that this could be the underlying issue.
Option C is invalid because this service is normally used for messaging across distributed components of an application.
The AWS Documentation states the following which makes sense to use AWS ElasticCache for this scenario.
Amazon ElastiCache offers fully managed Redis and Memcached.
Seamlessly deploy, operate, and scale popular open source compatible in-memory data stores.
Build data-intensive apps or improve your existing apps' performance by retrieving data from high throughput and low latency in-memory data stores.
For more information on AWS ElastiCache, please refer to the below link-
https://aws.amazon.com/elasticache/When an application utilizing Amazon RDS - MySQL service experiences performance issues, it may be due to multiple factors, such as insufficient instance size or database configuration issues. It is crucial to identify the source of the issue before making any changes.
In this scenario, the source of the bottleneck is a specific query that is causing performance issues. Therefore, we need to focus on optimizing this query rather than making changes to the database instance itself.
Option A suggests using Multi-AZ feature for the underlying database. The Multi-AZ feature is a high availability and data protection solution that replicates data synchronously to a standby replica in a different Availability Zone (AZ). While this feature improves availability, it does not directly address the performance issues caused by a particular query.
Option B suggests changing the underlying instance type for the database. This option may improve performance by providing additional CPU, memory, and I/O resources to the database instance. However, it is not targeted towards optimizing the problematic query that is causing the performance bottleneck.
Option C suggests using SQS queues to store the results of the query for faster access. This option is not recommended because SQS is a distributed message queue service that is designed for asynchronous message communication between various components of an application. It is not ideal for storing and retrieving the results of a specific query.
Option D suggests using AWS ElastiCache to store the results of the query for faster access. AWS ElastiCache is a fully managed in-memory data store and cache service that supports two popular open-source in-memory caching engines: Redis and Memcached. Caching query results in ElastiCache can improve the performance of the application by reducing the number of requests to the database instance. This option may be the most appropriate solution to the problem described in the question.
In conclusion, option D, using AWS ElastiCache to store the results of the query for faster access, is the most appropriate development step to resolve the issue described in the question.