Question

Difficulty: HardAWS Compute Optimizer and Right-Sizing

A company runs a memory-bound Java application on a fleet of Amazon EC2 m6i.xlarge instances. A SysOps Administrator notices that AWS Compute Optimizer recommendations for these instances only display utilization data for CPU, network, and disk, while memory utilization is listed as 'Unavailable'. Consequently, the tool recommends down-sizing the instances to c6i.xlarge based on low CPU utilization, which would lead to application failures due to insufficient memory. What should the administrator do to enable AWS Compute Optimizer to analyze memory utilization and provide accurate right-sizing recommendations?

  1. A
    Configure AWS Cost Anomaly Detection to monitor EC2 cost anomalies, which automatically exposes historical memory metrics to AWS Compute Optimizer.
  2. Install and configure the Unified CloudWatch Agent on the EC2 instances to publish memory utilization metrics to Amazon CloudWatch.Answer
  3. C
    Enable detailed monitoring in Amazon CloudWatch for the EC2 instances to increase metric granularity to 1-minute intervals.
  4. D
    Define cost allocation tags for the EC2 instances and activate them in the AWS Billing Console to permit memory metadata ingestion.

Answer

Install and configure the Unified CloudWatch Agent on the EC2 instances to publish memory utilization metrics to Amazon CloudWatch.
The correct action is to install and configure the Unified CloudWatch Agent on the EC2 instances. Memory utilization is an operating system-level metric that is not collected by the hypervisor by default. By running the Unified CloudWatch Agent and sending memory metrics to Amazon CloudWatch, AWS Compute Optimizer can automatically ingest this data. This enables Compute Optimizer to make right-sizing recommendations that respect memory requirements, preventing out-of-memory errors on memory-bound workloads.

Step-by-Step Solution

1
Identify the metric gap in AWS Compute Optimizer.
Memory utilization is listed as 'Unavailable' because memory is an operating system-level metric that AWS does not collect by default.
Compute Optimizer cannot recommend right-sizing for memory-bound workloads without visibility into memory usage.
2
Deploy the Unified CloudWatch Agent on the EC2 instances.
The agent collects system-level metrics (specifically memory utilization) and sends them to CloudWatch.
AWS Compute Optimizer integrates with CloudWatch to retrieve memory metrics if they are being published.
3
Verify recommendations in the AWS Compute Optimizer console.
Compute Optimizer evaluates the memory metrics and adjusts its recommendation, preventing an incorrect down-sizing to a compute-optimized instance class that lacks sufficient memory.
This ensures the application avoids out-of-memory errors by accounting for the true bottleneck.

Key Concept

AWS Compute Optimizer requires the Unified CloudWatch Agent to analyze EC2 memory utilization for right-sizing recommendations.
Estimated Time:2m 0s
Rate this question