Question

Difficulty: MediumImproving Database and Caching Efficiency

A financial technology company operates a stock portfolio analysis platform. The platform uses a single-node Amazon RDS for PostgreSQL DB instance to store user portfolio holdings and real-time stock price cache data. During periods of high market volatility, user dashboard page load times degrade significantly. Database metrics show CPU utilization at 95%95\% and write IOPS hitting disk limits due to the constant updates of stock prices. The stock price cache data requires replication across multiple Availability Zones to ensure high availability and sub-millisecond read latency, but does not need complex relational queries. The database must also scale to handle peak read queries for portfolio holdings without impacting write operations.

Which combination of actions should the Solutions Architect recommend to improve database and caching efficiency? (Select TWO.)

  1. Migrate the stock price cache data to an Amazon ElastiCache for Redis cluster with Multi-AZ enabled.Answer
  2. Deploy Amazon RDS Read Replicas for the PostgreSQL database and configure the application to direct dashboard read queries for portfolio holdings to the read replica endpoints.Answer
  3. C
    Migrate the stock price cache data to an Amazon ElastiCache for Memcached cluster with Multi-AZ replication enabled.
  4. D
    Enable Multi-AZ deployment on the existing Amazon RDS for PostgreSQL DB instance and configure the application to route read queries for portfolio holdings to the standby DB instance.
  5. E
    Deploy an Amazon DynamoDB Accelerator (DAX) cluster in front of the Amazon RDS for PostgreSQL DB instance to cache the stock price data.

Answer

Migrate the stock price cache data to an Amazon ElastiCache for Redis cluster with Multi-AZ enabled, and deploy Amazon RDS Read Replicas for the PostgreSQL database to offload read queries for portfolio holdings.
Migrating the stock price cache data to Amazon ElastiCache for Redis offloads high-frequency updates from the primary RDS instance, while satisfying the need for replication and low latency. Deploying RDS Read Replicas successfully offloads the read-heavy portfolio queries from the primary instance, reducing CPU usage and solving the database performance bottleneck.

Step-by-Step Solution

1
Analyze the database bottlenecks and workload characteristics.
Identified two issues: write IOPS limits and high CPU (95%95\%) due to a mix of write-heavy stock price updates and read-heavy portfolio queries on a single-node database.
Understanding the workload split allows us to address caching and database scaling independently.
2
Select a caching engine for stock price cache data requiring replication and sub-millisecond latency.
Chose Amazon ElastiCache for Redis over Memcached.
ElastiCache for Redis supports Multi-AZ replication and persistence features required for high availability, while Memcached does not.
3
Choose a method to scale read queries for portfolio holdings.
Deployed RDS Read Replicas and configured the application to route read traffic there.
RDS Read Replicas handle read horizontal scaling, whereas the RDS Multi-AZ standby is purely passive and cannot serve read traffic.

Key Concept

Offloading read-heavy operations using read replicas and offloading write/cache latency using replicated in-memory caching (ElastiCache for Redis).
Rate this question