3.1.3.2. RDS Read Replicas and Multi-AZ
š” First Principle: RDS Read Replicas enhance database read performance by distributing workloads. Multi-AZ deployments ensure high availability and fault tolerance through automatic failover.
RDS Read Replicas enhance database read performance by distributing workloads. Multi-AZ deployments ensure high availability and fault tolerance through automatic failover.
Amazon Relational Database Service (RDS) provides two key features for enhancing database scalability and availability:
- Read Replicas: Asynchronously replicated copies of your primary database instance. Primarily for scaling read performance. They asynchronously replicate data from the primary database, allowing you to offload read-heavy queries from the primary instance and improve application responsiveness. Can be in the same or different AWS Region for disaster recovery.
- Multi-AZ Deployments: A deployment option that provides high availability and automatic failover for your RDS database. Focuses on high availability and disaster recovery within a single AWS Region. It synchronously replicates data to a standby instance in a different Availability Zone (AZ), providing automatic failover with minimal downtime in case of primary instance failure or AZ outage.
Key Differences:
- "Read Replicas": Scalability (reads), asynchronous, manual failover.
- "Multi-AZ": High Availability (writes & reads), synchronous, automatic failover.
Scenario: An e-commerce platform uses Amazon RDS for PostgreSQL for its primary database. It experiences frequent read spikes (e.g., product catalog queries) and requires high availability for all transactions.
Visual: RDS Read Replicas and Multi-AZ
Loading diagram...
ā ļø Common Pitfall: Using a "Read Replica" for high availability/disaster recovery for write operations. "Read Replicas" are for read scaling and asynchronous. "Multi-AZ" is for HA with synchronous replication.
Key Trade-Offs:
- Read Scaling ("Read Replicas") vs. Write Availability ("Multi-AZ"): "Read Replicas" scale read throughput but don't protect write availability. "Multi-AZ" provides HA for the primary (write) instance but doesn't scale read operations by itself.
Reflection Question: How do RDS Read Replicas and Multi-AZ deployments collectively contribute to a resilient and scalable database architecture by offloading read traffic and ensuring automatic failover for high availability?