An organization has an Amazon Aurora RDS instance that handles all of its AWS-based e-commerce activity.
The application accessing the database needs to create large sales reports on an hourly basis, running 15 minutes after the hour.
This reporting activity is slowing down the e-commerce application. Which combination of actions should be taken to reduce the impact on the main e-commerce application? Select 2 answers from the options given below.
Click on the arrows to vote for the correct answer
A. B. C. D. E.Answer - A and D.
The AWS Documentation mentions the following.
Amazon RDS Read Replicas provide enhanced performance and durability for database (DB) instances.
This feature makes it easy to elastically scale out beyond the capacity constraints of a single DB instance for read-heavy database workloads.
You can create one or more replicas of a given source DB Instance and serve high-volume application read traffic from multiple copies of your data, thereby increasing aggregate read throughput.
Option B is incorrect, since the AWS RDS service already has features to support the requirement.
Options C and E are incorrect since using SQS would be inefficient.
For more information on AWS Read Replica's, please refer to the below Link-
https://aws.amazon.com/rds/details/read-replicas/The optimal combination of actions to reduce the impact of running hourly sales reports on an Aurora RDS instance that handles e-commerce activity are:
This option allows the e-commerce application to use the master database instance while the reporting application uses a read replica of the database. This ensures that the e-commerce application is not impacted by the heavy reporting queries. Since read replicas are asynchronous copies of the master database, there will be some latency involved in replicating data changes from the master to the replica. However, this should not be an issue for generating hourly reports.
This option involves decoupling the reporting application from the database by introducing an SQS queue to buffer the incoming data. The reporting application can write data to the queue, and the data can be consumed by a separate process that generates the reports. This approach provides scalability and resilience to the reporting application since it is no longer dependent on the database. It also ensures that the e-commerce application is not impacted by the heavy reporting queries.
Option B: Migrate the data to a set of highly available Amazon EC2 instances is not a suitable solution because it introduces a lot of overhead in terms of managing the database instances and ensuring high availability. This option also does not provide any decoupling between the e-commerce and reporting applications, so the e-commerce application may still be impacted by heavy reporting queries.
Option C: Use SQS Buffering to retrieve data for reports is not a complete solution because it only focuses on buffering the data to generate reports. It does not address the issue of heavy reporting queries impacting the e-commerce application.
Option D: Create a read replica of the database is a good option, but it is not sufficient on its own. Read replicas are only copies of the master database, so heavy reporting queries can still impact the e-commerce application if they are executed on the master database. Combining this option with option A or option B could provide a more comprehensive solution.
Therefore, the best combination of actions to reduce the impact of generating hourly sales reports on an Aurora RDS instance handling e-commerce activity are to point the reporting application to the read replica and to create an SQS queue to implement SQS Buffering.