A travel booking site uses EC2 instances behind an ALB. CPU is consistently high during peak traffic, and request latency rises. What should be configured? The architecture review board prefers a managed AWS-native control.
Trap 1: A VPC endpoint for CloudWatch only
A VPC endpoint for CloudWatch only alters the network path used by EC2 instances to reach CloudWatch APIs, enabling private traffic that avoids the public internet. It is a connectivity and security feature, not a capacity-management mechanism. Even with a private, low-latency path to CloudWatch, the instances' vCPU resources remain unchanged, so sustained CPU saturation on the existing fleet is not resolved. The endpoint would neither add instances nor relieve compute load, leaving the ALB backend still overwhelmed.
Trap 2: S3 Object Lock
S3 Object Lock is a data-protection feature that enforces a retention period on objects in Amazon S3, preventing them from being deleted or overwritten for compliance or legal hold purposes. It has no interaction with EC2 compute capacity, Auto Scaling, or the CPU utilization of an application server. Applying Object Lock to an S3 bucket neither increases the number of EC2 instances nor changes how the ALB distributes traffic, so it cannot alleviate high CPU load. This option is a distractor that confuses a storage governance control with a compute scaling solution.
Trap 3: Disable health checks
Disabling health checks on the Application Load Balancer would stop it from detecting unhealthy or overloaded EC2 instances, causing traffic to be routed to targets that may be failing or saturated. This would degrade availability and likely worsen perceived performance, as requests could be sent to instances that cannot handle them. Moreover, health checks are not a scaling control—they do not adjust instance count or CPU capacity. Removing them eliminates the ALB's ability to stop sending requests to impaired instances, so the existing CPU pressure on the fleet remains or increases.
- A
A VPC endpoint for CloudWatch only
Why it fails: A VPC endpoint for CloudWatch only alters the network path used by EC2 instances to reach CloudWatch APIs, enabling private traffic that avoids the public internet. It is a connectivity and security feature, not a capacity-management mechanism. Even with a private, low-latency path to CloudWatch, the instances' vCPU resources remain unchanged, so sustained CPU saturation on the existing fleet is not resolved. The endpoint would neither add instances nor relieve compute load, leaving the ALB backend still overwhelmed.
- B
Auto Scaling policy based on an appropriate CloudWatch metric
An Auto Scaling policy based on an appropriate CloudWatch metric—most commonly average CPUUtilization across the Auto Scaling group—directly addresses the high CPU condition. With target tracking, Auto Scaling dynamically adjusts desired capacity to keep the metric near a defined value, such as 60%. When CPU rises above the target, it launches additional EC2 instances to spread the load; when it falls, it terminates instances to reduce cost. This is the standard, correct solution for a workload whose compute demand varies and is currently saturating existing instances.
- C
S3 Object Lock
Why it fails: S3 Object Lock is a data-protection feature that enforces a retention period on objects in Amazon S3, preventing them from being deleted or overwritten for compliance or legal hold purposes. It has no interaction with EC2 compute capacity, Auto Scaling, or the CPU utilization of an application server. Applying Object Lock to an S3 bucket neither increases the number of EC2 instances nor changes how the ALB distributes traffic, so it cannot alleviate high CPU load. This option is a distractor that confuses a storage governance control with a compute scaling solution.
- D
Disable health checks
Why it fails: Disabling health checks on the Application Load Balancer would stop it from detecting unhealthy or overloaded EC2 instances, causing traffic to be routed to targets that may be failing or saturated. This would degrade availability and likely worsen perceived performance, as requests could be sent to instances that cannot handle them. Moreover, health checks are not a scaling control—they do not adjust instance count or CPU capacity. Removing them eliminates the ALB's ability to stop sending requests to impaired instances, so the existing CPU pressure on the fleet remains or increases.