Soru

Zorluk: Çok zorImproving Database and Caching Efficiency

A digital health enterprise operates a remote patient monitoring platform. The platform ingests real-time physiological telemetry from thousands of medical devices. The telemetry ingestion service writes updates to a `patient_vitals` table in an Amazon RDS for PostgreSQL DB instance configured as a Multi-AZ deployment. The web portal for clinicians frequently queries this table to retrieve the active connection status and the most recent vital signs of patients.

During peak morning hours, the database experiences CPU utilization exceeding 92%92\% and a high rate of connection timeouts, which stalls telemetry updates. A performance audit reveals that the clinicians' portal generates thousands of repetitive read queries per second for the same patient connection status records. The telemetry updates require high write throughput and must be persisted. The active connection status reads demand sub-millisecond response times and must remain highly available with automatic failover capabilities.

Which combination of actions should the Solutions Architect take to resolve the database performance bottleneck while meeting the requirements? (Select TWO.)

  1. Deploy an Amazon ElastiCache for Redis cluster with Multi-AZ and automatic failover enabled to store patient connection status, and modify the application to implement a cache-aside strategy.Cevap
  2. Deploy Amazon RDS Proxy between the ingestion service and the RDS DB instance, configuring the application to connect to the proxy endpoint.Cevap
  3. C
    Deploy an Amazon ElastiCache for Memcached cluster to cache the patient connection status, and configure multi-AZ replication to ensure high availability and data persistence.
  4. D
    Enable read scaling by modifying the application to route patient connection status queries directly to the DNS endpoint of the secondary standby RDS instance.
  5. E
    Create a Memcached-based caching layer using Amazon ElastiCache, and configure the application to write patient status updates to the cache while relying on Memcached's native asynchronous synchronization to update the RDS PostgreSQL database.
  6. F
    Configure Amazon Route 53 database connection routing to load-balance read queries between the primary DB instance endpoint and the secondary standby DB instance endpoint.

Cevap

To resolve the performance bottleneck and meet the requirements, the Solutions Architect must deploy an Amazon ElastiCache for Redis cluster with Multi-AZ and automatic failover enabled to cache read-heavy connection status queries, and deploy Amazon RDS Proxy to pool database connections from the telemetry ingestion backend.
The correct strategy requires deploying an Amazon ElastiCache for Redis cluster with Multi-AZ and automatic failover enabled. Redis is necessary because the scenario demands high availability and automatic failover for cached data, features not supported by Memcached. Additionally, deploying Amazon RDS Proxy pools database connections, which directly mitigates the high CPU utilization and connection timeouts caused by the ingestion backend's connection overhead.

Adım Adım Çözüm

1
Analyze the database workload components.
Identified two primary bottlenecks: connection overhead from the ingestion service causing high CPU, and high-frequency repetitive read queries for patient connection status.
Resolving a database performance issue requires addressing both the connection management bottleneck and offloading the read queries.
2
Evaluate caching alternatives for the read-heavy connection status.
Selected Amazon ElastiCache for Redis instead of Memcached because the platform requires Multi-AZ high availability, replication, and automatic failover.
Memcached does not support replication or automatic failover, making Redis the only valid cache engine that satisfies the high availability constraint.
3
Implement a caching strategy for the read queries.
Configure a cache-aside pattern where the application reads status from the Redis cluster first, writing to the cache only on a miss.
Cache-aside reduces read latency to sub-milliseconds and offloads read queries from the RDS DB instance.
4
Address the ingestion backend connection overhead.
Deploy Amazon RDS Proxy between the application and the RDS DB instance.
RDS Proxy pools database connections, preventing the CPU exhaustion caused by the telemetry ingestion service repeatedly opening and closing database connections.

Anahtar Kavram

Selecting ElastiCache for Redis over Memcached for replication and high availability, and utilizing RDS Proxy to resolve CPU exhaustion from connection pooling issues.
Bu soruyu puanla