Question

Difficulty: HardOptimizing Compute and Storage Performance

An enterprise operates a real-time analytics platform on AWS. The application tier runs on Amazon EC2 instances in an Auto Scaling group behind an Application Load Balancer (ALB). The EC2 instances process transaction payloads, download supporting assets from an Amazon EBS gp3 volume, write raw transaction logs to an Amazon S3 bucket encrypted with an AWS KMS Customer Managed Key (CMK), and write transactional records to an Amazon Aurora PostgreSQL database. During weekly flash sales, traffic abruptly spikes from 100 requests per second to over 50,000 requests per second within one minute. During these spikes, the platform experiences the following issues: the ALB drops incoming requests with 502 Bad Gateway and 504 Gateway Timeout errors; the EC2 instances experience high CPU utilization and high disk queue lengths; the Aurora database writer instance experiences CPU exhaustion, and the single reader instance experiences significant replication lag; the application logs show multiple S3 '503 SlowDown' errors and KMS 'ThrottlingException' errors. Which of the following combinations of actions will resolve these performance bottlenecks? (Select TWO.)

  1. Request ELB pre-warming from AWS Support prior to the scheduled flash events, and configure Amazon S3 Bucket Keys on the destination S3 bucket to reduce KMS cryptographic requests.Answer
  2. Update the EC2 launch template to use EBS-optimized compute-optimized instance types with increased gp3 IOPS and throughput, and implement Aurora Auto Scaling to dynamically add reader replicas.Answer
  3. C
    Configure Application Load Balancer target tracking scaling policies based on RequestCountPerTarget to allow the load balancer to scale out automatically to handle the flash traffic spikes.
  4. D
    Configure the Application Load Balancer to direct database read queries to the Amazon Aurora Multi-AZ standby instance to reduce CPU utilization on the primary writer instance.
  5. E
    Enable EBS Multi-Attach on the gp3 volumes to share the assets folder across the EC2 instances, and create multiple KMS customer managed keys to rotate requests.

Answer

Request ELB pre-warming and enable Amazon S3 Bucket Keys, while upgrading the EC2 instances to compute-optimized types with optimized gp3 storage and configuring Aurora Auto Scaling for reader replicas.
The correct combination involves requesting ELB pre-warming and enabling S3 Bucket Keys, as well as upgrading the EC2 instances to compute-optimized types with optimized gp3 storage and configuring Aurora Auto Scaling. ELB pre-warming prepares the ALB for the instantaneous flash traffic spike that normal scaling cannot match. S3 Bucket Keys drastically reduce KMS API request volumes, mitigating KMS throttling. Upgrading the EC2 instances to EBS-optimized compute instances with higher gp3 IOPS/throughput addresses compute and storage bottlenecks. Aurora Auto Scaling dynamically scales reader replicas to handle read query load and prevent replication lag.

Step-by-Step Solution

1
Address the immediate ALB drop rate during extreme flash spikes.
Request ELB pre-warming from AWS Support to scale the ALB nodes ahead of the scheduled event.
Standard ALB auto-scaling is reactive and cannot scale from 100 to 50,000 requests per second within a single minute, resulting in dropped requests.
2
Resolve S3 503 SlowDown and KMS ThrottlingException errors.
Configure Amazon S3 Bucket Keys on the destination bucket.
S3 Bucket Keys reduce the KMS API request volume by up to 99% by using a bucket-level key to derive unique keys instead of calling KMS for every individual write request.
3
Mitigate high CPU utilization and EBS disk queue lengths on the EC2 instances.
Upgrade EC2 instances to EBS-optimized compute-optimized instance types with increased gp3 IOPS and throughput in the launch template.
Compute-optimized instances provide the CPU power needed for ingestion and payload processing, while EBS-optimized profiles combined with provisioned IOPS/throughput prevent storage bottlenecks.
4
Solve Aurora database writer CPU exhaustion and reader replication lag.
Implement Aurora Auto Scaling based on CPU utilization to dynamically scale Aurora Replicas.
Aurora Replicas are active read endpoints. Dynamically adding replica instances distributes the read load away from the primary writer, preventing CPU exhaustion and reducing reader replication lag.

Key Concept

Identifying and mitigating compute, storage, and API bottlenecks during high-volume, rapid-scale traffic events on AWS.
Rate this question