Soru

Zorluk: ZorOptimizing Compute and Storage Performance

A company operates a nightly batch processing workload on AWS. The workload runs in two distinct phases:

* Phase 1: A fleet of Amazon EC2 instances in an Auto Scaling group (ASG) downloads large raw data files from Amazon S3. The instances process these files and write large intermediate datasets to attached 500 GB500\text{ GB} Amazon EBS `gp3` volumes configured with default settings (3000 IOPS3{}000\text{ IOPS} and 125 MB/s125\text{ MB/s} throughput). During this phase, performance metrics show that the EBS volumes reach 100%100\% write throughput utilization, while the average CPU utilization of the EC2 instances remains under 20%20\%.
* Phase 2: After the intermediate files are processed, a high-volume AWS Lambda function executes up to 30003{}000 concurrent runs to perform secondary transformations and write the outputs to Amazon DynamoDB. During this phase, critical real-time API-driven Lambda functions in the same AWS account are intermittently throttled.

Which combination of actions should a Solutions Architect recommend to optimize performance and resolve the throttling issues?

  1. A
    Modify the existing `gp3` volumes to increase their provisioned IOPS to 1000010{}000 while maintaining the default throughput of 125 MB/s125\text{ MB/s}, and leave the batch processing Lambda function's concurrency limits unconfigured to allow it to scale dynamically to its maximum potential.
  2. B
    Modify the existing `gp3` volumes to increase their throughput allocation to 250 MB/s250\text{ MB/s}, and configure dynamic scaling for the EC2 fleet with a scaling cooldown period of 30 seconds30\text{ seconds} to ensure rapid scale-out during file processing, while leaving the batch processing Lambda function's concurrency limits unconfigured.
  3. Modify the existing `gp3` volumes to increase their throughput allocation to 250 MB/s250\text{ MB/s}, and configure reserved concurrency on the batch processing Lambda function to limit its concurrent executions.Cevap
  4. D
    Modify the existing `gp3` volumes to increase their throughput allocation to 250 MB/s250\text{ MB/s}, and configure an Application Load Balancer (ALB) to distribute requests to the EC2 instances, relying on target tracking policies to scale the fleet during sudden traffic spikes without requesting ELB pre-warming.

Cevap

Modify the existing `gp3` volumes to increase their throughput allocation to 250 MB/s250\text{ MB/s}, and configure reserved concurrency on the batch processing Lambda function to limit its concurrent executions.
Increasing the throughput of the `gp3` volumes to 250 MB/s250\text{ MB/s} directly addresses the primary performance bottleneck identified in Phase 1, where the write throughput limit of 125 MB/s125\text{ MB/s} was fully utilized, causing low CPU utilization due to I/O wait times. Configuring reserved concurrency on the batch processing Lambda function ensures it cannot scale beyond a set threshold, thereby limiting its concurrent executions and protecting the account's unreserved concurrency pool from being exhausted. This prevents other critical real-time Lambda functions in the same account from being throttled.

Adım Adım Çözüm

1
Analyze Phase 1 performance metrics to identify the primary bottleneck.
The metrics show 100%100\% write throughput utilization on the `gp3` volumes while average CPU utilization is under 20%20\%, indicating a storage throughput bottleneck.
Understanding whether performance is limited by IOPS or throughput is critical to choosing the correct volume modification action.
2
Determine the appropriate EBS volume modification to resolve the storage bottleneck.
Increase the throughput of the `gp3` volumes to 250 MB/s250\text{ MB/s} online. Since `gp3` allows independent scaling of throughput up to 1000 MB/s1{}000\text{ MB/s} without changing volume size or type, this directly resolves the bottleneck.
This optimizes storage performance cost-effectively without requiring a migrate to expensive `io2` volumes or increasing IOPS unnecessarily.
3
Analyze the Phase 2 Lambda throttling behavior and identify the solution.
The batch processing Lambda runs up to 30003{}000 concurrent executions, exhausting the regional account-level concurrency limit and throttling other functions.
Configuring reserved concurrency on the batch processing function limits its maximum concurrent executions, thereby preserving a portion of the concurrency pool for critical real-time functions.

Anahtar Kavram

Identifying and resolving throughput-based storage bottlenecks on EBS gp3 volumes, and managing Lambda concurrent executions using reserved concurrency to prevent account-level resource starvation.
Bu soruyu puanla