A software-as-a-service (SaaS) company hosts a multi-tenant talent management platform on AWS. The application backend runs on AWS Fargate containers behind an Application Load Balancer, and uses an Amazon Aurora Serverless v2 PostgreSQL DB cluster as its primary database. During the annual performance review cycle, the platform experiences a massive, predictable surge in read traffic (exceeding queries per second) as users retrieve employee competency profiles. This traffic spike causes the Aurora Serverless v2 DB cluster to scale up to its maximum capacity, resulting in high database CPU utilization (above ), increased latency, and significantly higher operational costs. The profiles are updated infrequently but must be retrieved with sub-millisecond latency. The solutions architect must implement a caching solution that is highly available, supports automatic failover, and protects the database from cache-stampede issues if a cache node fails.
Which strategy should the solutions architect implement to resolve these issues?
- Deploy an Amazon ElastiCache for Redis replication group in a Multi-AZ configuration with automatic failover enabled, and configure the application to use a cache-aside pattern to read and write profile data.Answer
- BDeploy an Amazon ElastiCache for Memcached cluster with nodes distributed across multiple Availability Zones, and configure the application to cache the profile data using Auto Discovery.
- CConfigure a Multi-AZ deployment for the database cluster to enable a standby instance in a second Availability Zone, and redirect all profile read queries to the standby instance's endpoint to offload the primary database instance.
- DPurchase EC2 Instance Savings Plans to apply discounts to the scaled-up Aurora Serverless v2 and AWS Fargate application container instances, and implement a local, in-memory cache on each application container.