Question

Difficulty: HardCost-Optimized Database Design and Capacity Planning

A company runs a critical online transaction processing (OLTP) application on AWS that uses an Amazon RDS for PostgreSQL DB instance. The database size is 800 GB800\text{ GB} and requires a Multi-AZ deployment for high availability. The workload is characterized by a steady baseline of 2,5002,500 write IOPS and 1,5001,500 read IOPS. Every Sunday, a batch data archiving job runs for 44 hours, generating an additional peak of 12,00012,000 read IOPS. The database currently uses Provisioned IOPS SSD (`io2`) storage provisioned at 16,00016,000 IOPS to ensure performance during the Sunday peak. A solutions architect needs to redesign the database storage and capacity configuration to minimize costs while maintaining high availability and performance. Which configuration is the most cost-effective way to meet these requirements?

  1. A
    Modify the primary DB instance to use General Purpose SSD (gp3) storage with 16,00016,000 provisioned IOPS in a Multi-AZ configuration. Purchase a Compute Savings Plan to apply discounts to the database instance and provisioned storage costs.
  2. Modify the primary DB instance to use General Purpose SSD (gp3) storage with 4,0004,000 provisioned IOPS. Create a Single-AZ RDS Read Replica using gp3 storage with 12,00012,000 provisioned IOPS to handle the Sunday archiving workload, and route the archiving queries to the replica.Answer
  3. C
    Modify the primary DB instance to use General Purpose SSD (gp3) storage with 4,0004,000 provisioned IOPS. Create an RDS Read Replica in a different Availability Zone with gp3 storage with 12,00012,000 provisioned IOPS. Configure the replica as the primary failover target to eliminate the need for the Multi-AZ deployment.
  4. D
    Migrate the PostgreSQL database to an Amazon DynamoDB table configured in Provisioned Capacity Mode. Set the write capacity units (WCUs) to 2,5002,500 and read capacity units (RCUs) to 16,00016,000 to accommodate the Sunday peak, and enable DynamoDB Auto Scaling.

Answer

Modify the primary DB instance to use General Purpose SSD (gp3) storage with 4,0004,000 provisioned IOPS. Create a Single-AZ RDS Read Replica using gp3 storage with 12,00012,000 provisioned IOPS to handle the Sunday archiving workload, and route the archiving queries to the replica.
The correct configuration uses gp3 storage for the Multi-AZ primary instance, sized only for the OLTP baseline of 4,0004,000 IOPS, and delegates the Sunday read-heavy batch workload to a Single-AZ Read Replica provisioned with 12,00012,000 IOPS. This leverages gp3's low-cost structure and avoids doubling the provisioning cost of the peak 12,00012,000 IOPS over both Multi-AZ instances.

Step-by-Step Solution

1
Analyze database workload requirements
Identified a steady baseline of 4,0004,000 IOPS (2,5002,500 writes + 1,5001,500 reads) and a weekly read-only peak of 12,00012,000 IOPS.
Understanding the baseline vs. peak requirements is necessary to size storage and allocate capacity cost-effectively.
2
Select the optimal storage class
Selected gp3 storage over io2 storage.
gp3 storage provides cost-efficient baseline performance and allows provisioning IOPS independently of storage size, significantly reducing storage costs compared to io2.
3
Design database replication and capacity allocation
Allocated 4,0004,000 IOPS to the Multi-AZ primary database and offloaded the 12,00012,000 IOPS Sunday archiving workload to a Single-AZ Read Replica.
Since the archiving job is read-only, using a Single-AZ Read Replica avoids paying for peak IOPS on both primary and standby instances in the Multi-AZ configuration.

Key Concept

Cost-optimized database capacity planning involves matching storage types (like gp3 vs. io2) to workload requirements, utilizing read replicas to offload read-heavy batch processes from Multi-AZ deployments, and understanding the billing scope of compute savings options.
Rate this question