Q73 — AWS SAA-C03 Ch.17
Question 73 of 89 | ← Chapter 17
Q1373. An ecommerce company runs a multi-tier application on AWS. The frontend and backend tiers both run on Amazon EC2 instances. The database tier runs on an Amazon RDS for MySQL DB instance. The backend tier communicates with the RDS DB instance.The application makes frequent calls to return identical datasets from the database. The frequent calls on the database cause performance slowdowns. Asolutions architect must improve the performance of the application backend.Which solution will meet this requirement?
- A. Configure an Amazon SNS topic between the EC2 instances and the RDS DB instance.
- B. Configure an Amazon ElastiCache(Redis OSS) cache. Configure the backend EC2 instances to read from the cache. ✓
- C. Configure an Amazon DynamoDB Accelerator(DAX) cluster. Configure the backend EC2 instances to read from the cluster.
- D. Configure Amazon Data Firehose to stream the calls to the database.
Correct Answer: B. Configure an Amazon ElastiCache(Redis OSS) cache. Configure the backend EC2 instances to read from the cache.
Explanation
Let's analyze each option to determine the best solution for improving the performance of the application backend, which is experiencing slowdowns due to frequent calls returning identical datasets from the database:Option A: Configure an Amazon SNS topic between the EC2 instances and the RDS DB instance Amazon Simple Notification Service (SNS) is a fully managed pub/sub messaging service. It is mainly used for sending messages to multiple subscribers, such as email addresses, mobile devices, or other AWS services. SNS is not designed to cache data or reduce the load on a database by serving repeated queries. It is more suitable for notification - based use cases rather than improving database query performance.So, this option is incorrect.Option B: Configure an Amazon ElastiCache (Redis OSS) cache. Configure the backend EC2 instances to read from the cacheAmazon ElastiCache is a fully managed in - memory caching service that supports Redis and Memcached. By configuring an ElastiCache (Redis OSS) cache, the application backend can store frequently accessed data in memory. When the backend makes a query for data that has been previously accessed, it can first check the cache. If the data is present in the cache (a cache hit), it can be retrieved much faster than querying the database. This reduces the number of direct calls to the Amazon RDS for MySQL DB instance, thereby improving the overall performance of the application backend. So, this option is correct.Option C: Configure an Amazon DynamoDB Accelerator (DAX) cluster. Configure the backend EC2 instances to read from the clusterAmazon DynamoDB Accelerator (DAX) is an in - memory cache specifically designed for Amazon DynamoDB, a NoSQL database service. Since the database tier in this scenario is running on Amazon RDS for MySQL (a relational database), DAX is not applicable. DAX is optimized for DynamoDB's data model and access patterns and cannot be used to cache data from a MySQL database. So, this option is incorrect.Option D: Configure Amazon Kinesis Data Firehose to stream the calls to the database Amazon Kinesis Data Firehose is a fully managed service for capturing, transforming, and delivering streaming data to destinations such as Amazon S3, Amazon Redshift, and Amazon OpenSearch Service. It is used for real - time data streaming and analytics, not for caching data to improve database query performance. Data Firehose is not designed to reduce the load on a database by serving repeated queries.So, this option is incorrect.Therefore, the solution that will meet the requirement of improving the performance of the application backend is to configure an Amazon ElastiCache (Redis OSS) cache and configure the backend EC2 instances to read from the cache, and the answer is B.