Which solution will meet these requirements with the LEAST operational overhead?
Add functionality to the script to identify the instance that has the fewest active connections. Configure the script to read from that instance to report the total new entries.
Create a read replica of the database. Configure the script to query only the read replica to report the total new entries.
Instruct the development team to manually export the new entries for the day in the database at the end of each day.
Use Amazon ElastiCache to cache the common queries that the script runs against the database.
Explanations:
Identifying the instance with the fewest active connections and querying that instance can introduce unnecessary complexity. It doesn’t fully offload the reporting work and may not effectively reduce impact on the critical application.
Creating a read replica and configuring the script to query it offloads the reporting task from the primary instance, thus minimizing impact on the performance of the critical application with minimal operational overhead.
Manual exports add unnecessary human intervention and may not be feasible for real-time reporting, increasing operational overhead. Additionally, it doesn’t address the root cause of performance degradation.
While caching can help with read-heavy operations, it doesn’t solve the issue of the script running against the database, and it requires additional operational management for cache invalidation.