An enterprise SaaS company hosts a high-throughput reporting application. The application's web tier runs on Amazon EC2 instances in an Auto Scaling group (ASG) behind an Application Load Balancer (ALB). The database tier consists of an Amazon RDS for PostgreSQL DB instance in a Multi-AZ deployment on a instance with a Provisioned IOPS SSD () storage volume configured at and throughput. During monthly billing cycles, tenants execute resource-intensive reporting queries, causing primary DB instance CPU utilization to reach and causing write transactions to fail due to lock contention and connection timeouts. The reporting queries require data that is no more than out of date. Additionally, during the first hour of the billing cycle, the application experiences a massive, instantaneous surge in traffic that results in HTTP 503 Service Unavailable errors for initial users. Which combination of actions should a Solutions Architect recommend to optimize performance and resolve these issues?
- AEnable RDS Multi-AZ read routing to send read-only reports to the standby DB instance. Submit a request to AWS Support to pre-warm the Application Load Balancer (ALB) before the billing cycle begins.
- BCreate an Amazon RDS read replica and direct read-only queries to its endpoint. Rely on the Application Load Balancer's automatic scaling and set the EC2 Auto Scaling group cooldown period to to absorb the traffic spike.
- Create an Amazon RDS read replica and configure the reporting application to direct read-only queries to the read replica endpoint. Submit a request to AWS Support to pre-warm the Application Load Balancer (ALB) prior to the start of the monthly billing cycle.Answer
- DModify the application to distribute read-only queries between the primary DB instance and the secondary standby DB instance. Configure the Application Load Balancer with a target tracking policy based on RequestCountPerTarget.