Which solution meets these requirements?
Convert the existing database instance to a Multi-AZ deployment by modifying the database instance and specifying the Multi-AZ option.
Create a new RDS Multi-AZ deployment. Take a snapshot of the current RDS instance and restore the new Multi-AZ deployment with the snapshot.
Create a read-only replica of the PostgreSQL database in another Availability Zone. Use Amazon Route 53 weighted record sets to distribute requests across the databases.
Place the RDS for PostgreSQL database in an Amazon EC2 Auto Scaling group with a minimum group size of two. Use Amazon Route 53 weighted record sets to distribute requests across instances.
Explanations:
Converting the existing database instance to a Multi-AZ deployment will enable automatic failover to a standby instance in another Availability Zone, thus eliminating single points of failure and minimizing downtime without requiring application code changes.
While creating a new Multi-AZ deployment is a viable solution, it involves restoring a snapshot, which can lead to some downtime during the migration process. This does not fully meet the requirement of minimizing database downtime without changes to the application.
Creating a read-only replica provides scaling for read operations but does not eliminate single points of failure for write operations. Moreover, this solution also requires application changes to route write operations to the primary database instance.
RDS instances cannot be placed in an EC2 Auto Scaling group. Furthermore, this solution involves distributing requests across instances, which does not address the single point of failure issue for the database itself and could lead to inconsistencies.