Which solution will meet these requirements with the LEAST amount of change to the application code?
Set up a new Amazon DocumentDB (with MongoDB compatibility) cluster that includes a read replica. Scale the read replica to generate the reports.
Set up a new Amazon Aurora PostgreSQL DB cluster that includes an Aurora Replica. Issue queries to the Aurora Replica to generate the reports.
Set up a new Amazon RDS for PostgreSQL Multi-AZ DB instance. Configure the reporting module to query the secondary RDS node so that the reporting module does not affect the primary node.
Set up a new Amazon DynamoDB table to store the documents. Use a fixed write capacity to support new document entries. Automatically scale the read capacity to support the reports.
Explanations:
Amazon DocumentDB would require significant changes to the application code to accommodate a new database type and data model. Additionally, it may not directly improve performance for reporting based on PostgreSQL queries.
Amazon Aurora PostgreSQL is compatible with existing PostgreSQL applications and can provide performance improvements. By using an Aurora Replica for reporting, the primary database remains unaffected, allowing for faster query execution without interfering with document modifications.
While configuring a Multi-AZ RDS for PostgreSQL may provide some redundancy, it does not inherently improve reporting performance. Queries on the secondary RDS node may still be slower than expected, and the complexity of managing a secondary node may not justify the benefits.
Switching to DynamoDB would require extensive changes to the application code and data model, as it is a NoSQL database. The need for a fixed write capacity may also lead to throttling issues, making it unsuitable for handling document modifications efficiently.