Question

Difficulty: HardOptimizing Compute and Storage Performance

A company runs a media transcoding application on a fleet of Amazon EC2 `c5.xlarge` instances. Each instance has an attached 300 GiB300\text{ GiB} Amazon EBS `gp3` volume used for caching intermediate video files during processing. During peak hours, transcoding jobs take twice as long to complete. Amazon CloudWatch metrics indicate that the EC2 instances have low CPU utilization (under 20%20\%) but high I/O wait times, and the EBS volumes are constantly operating at 125 MB/s125\text{ MB/s} throughput. A solutions architect needs to optimize the compute and storage tiers so that each instance can sustain a target throughput of 500 MB/s500\text{ MB/s}. Which of the following architectural changes will resolve the performance bottleneck and meet the throughput requirement?

  1. Upgrade the EC2 instances to `c5.9xlarge` to increase the dedicated EBS bandwidth, and modify the `gp3` volumes to provision 500 MB/s500\text{ MB/s} of throughput.Answer
  2. B
    Deploy an Application Load Balancer (ALB) in front of the EC2 instances, request AWS Support to pre-warm the ALB to handle the traffic spikes, and modify the `gp3` volumes to provision 500 MB/s500\text{ MB/s} throughput.
  3. C
    Migrate the temporary file storage to an Amazon RDS PostgreSQL Multi-AZ DB instance, and configure the application to write files to the primary instance and read them from the standby instance to distribute the load.
  4. D
    Configure the EC2 Auto Scaling Group to launch additional `c5.xlarge` instances based on EBS disk queue depth, and set the scaling cooldown period to 15 seconds15\text{ seconds} to ensure rapid scaling response.

Answer

Upgrade the EC2 instances to `c5.9xlarge` to increase the dedicated EBS bandwidth, and modify the `gp3` volumes to provision 500 MB/s500\text{ MB/s} of throughput.
The correct answer correctly identifies that EBS performance is bound by both the storage volume configuration and the EC2 instance's dedicated EBS bandwidth. The `c5.xlarge` instance is limited to 1,250 Mbps1,250\text{ Mbps} (~156 MB/s156\text{ MB/s}) of EBS throughput, meaning that configuring the storage volume alone cannot achieve the target performance. Upgrading the instance to a `c5.9xlarge` (7,000 Mbps7,000\text{ Mbps} / ~875 MB/s875\text{ MB/s}) provides the necessary host bandwidth, and modifying the `gp3` volume to 500 MB/s500\text{ MB/s} removes the volume-level throughput limit.

Step-by-Step Solution

1
Identify the storage tier bottleneck.
The `gp3` volume has a default throughput baseline of 125 MB/s125\text{ MB/s}. This matches the observed performance limit in CloudWatch.
Before upgrading compute, we must determine if the storage volume itself is the primary limitation.
2
Evaluate the compute tier EBS-optimized bandwidth limit.
A `c5.xlarge` instance has a dedicated EBS bandwidth limit of 1,250 Mbps1,250\text{ Mbps} (approximately 156 MB/s156\text{ MB/s}).
Even if the `gp3` volume is provisioned to 500 MB/s500\text{ MB/s}, a `c5.xlarge` instance will throttle the storage traffic to 156 MB/s156\text{ MB/s} due to instance-level limitations.
3
Select a compatible EC2 instance type and size.
A `c5.9xlarge` instance supports a dedicated EBS bandwidth of 7,000 Mbps7,000\text{ Mbps} (approximately 875 MB/s875\text{ MB/s}), which is greater than the 500 MB/s500\text{ MB/s} (4,000 Mbps4,000\text{ Mbps}) requirement.
Upgrading the instance size is necessary to align the compute interface capability with the storage requirements.
4
Modify the EBS volume configuration.
Provision the `gp3` volume to deliver 500 MB/s500\text{ MB/s} of throughput.
This raises the volume performance limit to the target rate, which is now supported by the upgraded instance size.

Key Concept

EC2 instance-level EBS bandwidth limitations and gp3 throughput configuration
Rate this question