Day 54 of 70 · Week 8
Day 54 / 70 Week 8 of 14 Phase 4: Migration, Hybrid & Cost Optimization

AWS Compute Optimizer, Cost Explorer & Trusted Advisor

🕑 ~58 min read · 3 services covered
Compute Optimizer Cost Explorer Trusted Advisor

Recap: From Commitment to Measurement

Day 53 ended on a purchasing decision: match the commitment to the workload, with Compute Savings Plans buying flexibility across any family, region, and OS, EC2 Instance Savings Plans buying a deeper discount in exchange for locking to a family and region, Reserved Instances when you also want a capacity reservation, and Spot at up to roughly 90% off for fault-tolerant work that can absorb a two-minute interruption notice. That framing is correct but incomplete, because every one of those instruments is a bet placed before you know the outcome. You commit to a family, a region, a term, and a quantity, and the discount only materializes if the workload you predicted is the workload you actually run.

Today extends that thread by asking the question the purchasing decision quietly assumes away: how do you know what you should have bought? Compute Optimizer, Cost Explorer, and Trusted Advisor are the measurement layer that sits underneath the commitment layer. They do not change what you pay per hour; they change what you decide to pay for. The relationship is direct — the Savings Plan recommendation you accept in Cost Explorer is generated from the same utilization data Compute Optimizer uses to tell you an instance is oversized, and Trusted Advisor is the blunt instrument that tells you a category of waste exists before you have instrumented it precisely.

Foundations You'll Need Today

Today's material is about measuring what you already run and deciding what to change. That means it leans on a handful of building blocks that the rest of this curriculum treats as background knowledge. If you have never sized a server on AWS or looked at a monitoring graph, start here — none of the rest of the day will make sense without these five ideas.

EC2 instance types and why "size" is a choice

When you launch a virtual server on AWS, you do not pick a CPU and a stick of RAM separately. You pick an instance type, which is a pre-packaged bundle of CPU, memory, network bandwidth, and local disk, identified by a name like m5.large or t3.medium. The letter is the family — m is general purpose, c is compute-heavy, r is memory-heavy — and the word after the dot is the size within that family, where large is bigger than medium and 2xlarge is bigger than large. The problem this solves is that different workloads need different shapes: a video encoder wants CPU, a database wants memory, and a small internal tool wants neither. The problem it creates is that you have to guess, and if you guess too big you pay for capacity you never use, while if you guess too small your application slows down or crashes. The t family is a special case called burstable: it runs at a low baseline CPU speed and accumulates "CPU credits" when it is idle, which it can then spend to burst above baseline for a while. That is why a burstable instance can look idle on average and still be pinned at 100% for ten minutes a day — a pattern that matters a lot when a tool tries to tell you it is oversized.

CloudWatch metrics and the CloudWatch agent

CloudWatch is AWS's monitoring service. A metric is a number recorded over time — CPU utilization at 62%, network bytes in per second, disk reads per second — and CloudWatch stores these as time series that you can graph, alarm on, and query. The important detail for today is where the numbers come from. AWS's virtualization layer can see CPU, network, and disk activity for every instance automatically, because it is the thing running the instance. It cannot see how much memory your application is using, because memory is managed inside the guest operating system, which AWS does not have visibility into. To get memory metrics into CloudWatch you have to install a small piece of software called the CloudWatch agent inside the instance, and configure it to publish that number. This distinction — what AWS can see for free versus what requires the agent — is the single most important mechanical fact behind today's recommendations.

Commitment discounts: Reserved Instances, Savings Plans, and Spot

By default you pay for compute by the hour, on demand, with no commitment. AWS offers three ways to pay less in exchange for accepting some constraint. A Reserved Instance (RI) is a one- or three-year commitment to a specific instance family in a specific region, in exchange for a large discount; you can also get a capacity reservation so AWS guarantees the capacity is there when you need it. A Savings Plan is a commitment to spend a certain dollar amount per hour for one or three years, and it applies the discount automatically to whatever eligible usage you have — a Compute Savings Plan is flexible across families and regions, while an EC2 Instance Savings Plan is cheaper but locks you to a family and region. Spot is different in kind: you bid on spare AWS capacity at up to roughly 90% off, but AWS can reclaim it with only a two-minute warning, so it only suits work that can be interrupted and restarted. All three are bets placed in advance, which is exactly why today's measurement services exist — you cannot size a commitment sensibly without knowing what you actually run.

AWS Organizations, the management account, and consolidated billing

Most companies do not run everything in one AWS account. They create an organization, which is a container that groups many accounts under one umbrella, and one of those accounts is designated the management account (sometimes still called the master or payer account). The practical benefit for today's topic is consolidated billing: all member accounts' charges roll up onto a single invoice paid by the management account, and the management account can therefore see cost data for every account in the organization without any extra setup. This is why a central finance or platform team can open Cost Explorer in the management account and see spend across forty accounts, while a member account sees only its own. It is also why some services need an explicit organization-level opt-in to share their findings upward — the billing data flows automatically, but recommendation data does not.

AWS Support plans and what they unlock

Every AWS account has a support plan, and the plan determines which support features and which diagnostic tools you can use. Basic is free and included with every account; it gives you documentation, forums, and a limited set of health checks. Business and Enterprise are paid tiers that add faster response times, a technical account manager at the Enterprise level, and — critically for today — the full set of Trusted Advisor checks. The free tier exposes only a small subset of Trusted Advisor's security and service-quota checks; the cost optimization category, which is the part relevant to this day, requires Business or Enterprise. This is a common source of exam questions, because a scenario can describe a perfectly reasonable cost-monitoring goal that simply has no solution on a Basic Support account.

With that grounding — what an instance type is, where monitoring numbers come from, how commitment discounts work, how accounts roll up, and what your support plan unlocks — here is why Compute Optimizer, Cost Explorer, and Trusted Advisor exist and what problem each one actually solves.

1. Why This Is on the Exam

Cost optimization is Domain 4 of SAP-C02, and it is the domain candidates most often underestimate because the questions do not look like cost questions. A scenario will describe a fleet of instances running at low utilization, a monthly bill that keeps climbing without a corresponding traffic increase, or a migration that has to justify its target instance sizes, and the correct answer is a service that produces a recommendation rather than a service that produces a discount. The exam is testing whether you know which tool answers which question, because the three services in this day overlap enough that a careless reader will pick the wrong one.

The reason this cluster is exam-relevant is that it sits at the intersection of two things the exam loves: a decision that has a defensible right answer, and a set of plausible distractors that are all real AWS services doing something adjacent. Compute Optimizer, Cost Explorer, Trusted Advisor, AWS Config, CloudWatch, and Cost and Usage Report all touch cost or utilization in some way. Only one of them will tell you that a specific m5.2xlarge should be an m5.large. Only one of them will forecast next month's bill. Only one of them will tell you that you have idle load balancers without you having to ask a specific question first. Knowing the boundary between them is the actual skill being tested.

There is also a governance dimension that shows up in multi-account scenarios. In an organization with dozens of accounts, the question of who can see cost data, at what granularity, and whether recommendations are surfaced centrally or per-account is a real architectural decision. Compute Optimizer and Trusted Advisor both have organization-level views that require explicit opt-in, and Cost Explorer's data is scoped to the management account's consolidated billing view. A scenario that asks how a central FinOps team monitors spend across forty accounts is testing whether you know these services can be aggregated, and what has to be enabled for that to work.

Finally, the exam treats these services as the evidence layer for a recommendation you are about to make. When a question asks you to justify moving a workload to Graviton, or to a smaller instance family, or onto a Savings Plan, the answer often hinges on what data supports the change. Compute Optimizer's recommendations are backed by CloudWatch metrics over a lookback window; Cost Explorer's forecasts are backed by historical spend; Trusted Advisor's checks are backed by heuristics against best practice. Understanding what evidence each service actually has access to tells you when its recommendation is trustworthy and when it is not.

2. How Each Service Actually Works

Compute Optimizer is a machine-learning service that consumes CloudWatch metrics and produces instance-type recommendations. It does not read your application, your logs, or your architecture diagrams. It reads CPU utilization, and for some resource types memory utilization if the CloudWatch agent is publishing it, plus a set of derived features like network throughput and disk I/O, and it compares your observed utilization pattern against a model trained on a large corpus of AWS workloads. The output is a recommendation with a finding classification — over-provisioned, under-provisioned, optimized, or none — and a projected monthly savings figure for the over-provisioned case. The critical mechanical detail is that the recommendation is only as good as the metrics it can see, and by default it cannot see memory at all.

Cost Explorer is a reporting and forecasting layer over the billing data AWS already collects. It is not a monitoring service and it does not look at your resources; it looks at your invoice. The data is available at daily and hourly granularity, filterable by service, account, region, tag, instance type, and a long list of other dimensions, and it supports grouping and filtering combinations that let you answer questions like "what did the payments team spend on RDS in eu-west-1 last quarter." Its forecasting feature projects spend forward using historical patterns, and its reservation and Savings Plan recommendations are generated by analyzing your historical usage against the commitment instruments available. The mechanical constraint worth internalizing is latency: Cost Explorer data is not real-time, and the granularity you get depends on how far back you are looking.

Trusted Advisor is a rules engine. It runs a fixed set of checks against your account — some free, some requiring Business or Enterprise Support — and reports pass, warning, or error states with a description of the issue and a link to remediation guidance. The checks span five categories: cost optimization, security, fault tolerance, performance, and service quotas. The cost category is the one relevant here, and it covers things like idle load balancers, unassociated Elastic IP addresses, underutilized EBS volumes, and low-utilization EC2 instances. Trusted Advisor is deliberately shallow and broad: it will tell you that you have idle resources, but it will not tell you what to resize them to. That is Compute Optimizer's job.

The three services compose into a rough funnel. Trusted Advisor is the wide end — it surfaces categories of waste across the account without you having to ask a specific question. Compute Optimizer is the narrow end — it takes a specific resource and tells you what to change it to. Cost Explorer is the accounting layer that tells you whether the change mattered, and it is also the source of the commitment recommendations that turn a right-sizing decision into a purchasing decision. A mature cost practice uses all three in that order, and the exam scenarios that describe a cost problem usually map cleanly onto one stage of the funnel.

3. The Core Decision Boundary

The fork every scenario question hinges on is whether the question is asking you to find waste, to quantify waste, or to act on waste. Finding waste is a discovery problem and the answer is almost always Trusted Advisor, because it is the only one of the three that proactively surfaces issues you did not ask about. Quantifying waste is a measurement problem and the answer is Compute Optimizer when the resource is compute and Cost Explorer when the question is about spend over time or across accounts. Acting on waste is a decision problem, and the answer depends on whether the action is a resize, a commitment purchase, or a decommission.

The subtlety is that the same scenario can be read at more than one stage, and the exam exploits this. A question describing an account with a rising bill and no traffic growth could be answered by Trusted Advisor if the expected answer is "find the idle resources," by Cost Explorer if the expected answer is "break the spend down by service to find the driver," or by Compute Optimizer if the expected answer is "right-size the over-provisioned instances." The discriminator is usually a phrase in the question that names the desired output: "identify," "forecast," "recommend a new instance type," "attribute to a team." Read for the output, not the problem.

Question you are actually askingServiceOutput shape
What waste exists in this account that I have not looked for?Trusted AdvisorCheck status (pass/warn/error) with remediation link
What instance type should this specific resource be?Compute OptimizerRecommended type + finding + projected savings
What did we spend, on what, and where is it trending?Cost ExplorerFiltered/grouped cost and usage, plus forecast
Should we buy a Savings Plan or RI, and how much?Cost ExplorerCommitment purchase recommendation with coverage/break-even
Is this resource compliant with a rule I defined?AWS ConfigRule compliance state (not a cost recommendation)
What is this resource doing right now?CloudWatchRaw metric time series (no recommendation)

The last two rows are the distractors that appear most often. AWS Config evaluates resources against rules you write, and while you can write a cost-flavored rule, Config does not generate recommendations — it reports compliance. CloudWatch is the raw data source that Compute Optimizer consumes, but CloudWatch itself will not tell you an instance is oversized; it will show you a CPU graph and leave the inference to you. If a scenario's correct answer is Config or CloudWatch, the question will describe a custom rule or a raw metric threshold, not a recommendation.

4. Configuration Modes and Their Tradeoffs

Compute Optimizer's most consequential configuration is whether it is opted in at the organization level and whether enhanced infrastructure metrics are enabled. By default, Compute Optimizer is opt-in per account, and in an organization you can enable it centrally so that the management account sees recommendations across all member accounts. Enhanced infrastructure metrics extend the lookback window from the default 14 days to three months, which matters enormously for workloads with monthly or quarterly cycles — a batch job that runs on the first of the month looks idle in a 14-day window and correctly utilized in a 90-day window. The tradeoff is that the longer window is a paid feature and the recommendations take longer to stabilize after a workload change.

The second knob is whether the CloudWatch agent is publishing memory utilization. Compute Optimizer's EC2 recommendations are materially better with memory data, because a workload that is CPU-light but memory-bound will be recommended for a smaller instance on CPU evidence alone and then fall over. This is not a Compute Optimizer setting so much as a prerequisite: if you have not installed the agent and configured it to publish the memory metric, you are getting a recommendation based on half the picture. The exam does not usually test the agent configuration directly, but it does test the consequence — a recommendation that ignores memory is a recommendation you should validate before acting on.

Cost Explorer's configuration is mostly about scope and granularity. The management account of an organization sees consolidated cost across all member accounts, and member accounts see only their own. Granularity is daily by default and hourly for recent data, with the hourly view retained for a shorter window. The tradeoff here is between precision and latency: the most recent day or two of data may be incomplete or estimated, so a forecast built on the trailing edge of the data is less reliable than one built on a settled month. Cost Explorer also has a per-account setting for whether it can be enabled at all, and in some organizations it is deliberately restricted to a central FinOps account.

Trusted Advisor's configuration is essentially a support-plan question. The full set of checks, including the cost optimization category, requires Business or Enterprise Support; the free tier exposes a small subset of security and service quota checks. In an organization, Trusted Advisor has an organizational view that aggregates check results across accounts, but it requires the management account to enable it and it requires each member account to be on a qualifying support plan. The practical tradeoff is that Trusted Advisor's breadth is purchased with support cost, which is why it is often the last of the three services an organization adopts.

5. Sizing, Limits and Quotas

The numbers that matter here are mostly about lookback windows and data retention, because those determine how much history a recommendation is built on. Compute Optimizer's default metrics lookback is 14 days, and enhanced infrastructure metrics extend that to three months. Recommendations are refreshed periodically rather than continuously, so a change you make today will not be reflected in the recommendation for some hours. Cost Explorer retains daily data for 13 months and hourly data for 14 days, which is why a year-over-year comparison is possible but a month-over-month comparison at hourly granularity is not. Trusted Advisor's checks refresh on their own cadence, with some checks updating several times a day and others less frequently.

DimensionValueWhy it matters
Compute Optimizer default lookback14 daysShort window misreads cyclical workloads as idle
Compute Optimizer enhanced lookback3 monthsPaid feature; needed for monthly/quarterly patterns
Cost Explorer daily retention13 monthsEnables year-over-year comparison
Cost Explorer hourly retention14 daysRecent-data precision only
Trusted Advisor full checksBusiness or Enterprise SupportCost category is not in the free tier
Trusted Advisor refreshVaries by checkNot a real-time signal

The resource coverage of Compute Optimizer is worth knowing because it is broader than EC2. It also produces recommendations for Auto Scaling groups, EBS volumes, Lambda functions, ECS services on Fargate, and commercial software licenses. The Auto Scaling group case is the one that trips people up: the recommendation is for the group's instance type and desired capacity, not for individual instances, and acting on it means changing the launch template rather than resizing a running instance. Lambda recommendations are about memory configuration, which is the Lambda equivalent of instance sizing and directly affects both cost and execution duration.

Trusted Advisor's cost checks have their own implicit thresholds. The low-utilization EC2 check, for example, flags instances whose CPU utilization stays below a threshold over a multi-day window, and the idle load balancer check flags load balancers with no healthy targets or negligible traffic. These thresholds are not configurable, which is the point — Trusted Advisor is a best-practice baseline, not a tunable policy engine. If you need a threshold you control, that is AWS Config or a custom CloudWatch alarm, not Trusted Advisor.

6. Failure Modes and What They Look Like in Production

The most common failure mode is acting on a Compute Optimizer recommendation that was built on insufficient evidence. The symptom is a resize that improves the bill and degrades the workload: latency climbs, the instance starts swapping, or a batch job that used to finish in an hour now takes three. The cause is almost always a metric the recommendation could not see — memory, GPU, or a burst pattern outside the lookback window. The first diagnostic move is to pull the CloudWatch metrics for the recommended resource over a window longer than the recommendation's lookback and check whether the utilization pattern is actually flat or whether it has peaks the model did not observe.

The second failure mode is a Cost Explorer forecast that is confidently wrong because the historical data contains a discontinuity. A one-time migration, a reserved instance purchase, a support plan change, or a large data transfer will all bend the trend line, and the forecast will extrapolate the bend. The symptom is a forecast that looks implausible relative to what you know is happening, and the diagnostic move is to filter the cost data down to the service or account driving the change and look at the daily series rather than the monthly aggregate. Forecasts are only as good as the assumption that the future resembles the past.

The third failure mode is Trusted Advisor noise. In a large account, the cost checks will flag resources that are intentionally idle — a standby environment, a DR region, a load balancer waiting for a failover. The symptom is a check that has been in warning state for months and that everyone has learned to ignore, which is worse than not having the check at all because it trains the team to dismiss the category. The diagnostic move is to establish which flagged resources are intentional and either tag them so they can be excluded from review or accept the warning as a known exception with a documented reason.

There is a fourth, quieter failure mode: recommendations that are correct but never acted on. Compute Optimizer will happily tell you that forty instances are over-provisioned every day for a year, and nothing changes because no one owns the recommendation. This is not a technical failure, but it is the one that shows up most often in real accounts, and it is why the operational angle below matters more than the tooling.

7. The Operational and SRE Angle

From an SRE perspective, these services are inputs to a recurring review process, not dashboards you look at once. The shape that works is a monthly cost review where Compute Optimizer recommendations are triaged into three buckets: act now, validate first, and ignore with a reason. The "validate first" bucket is the important one, because it is where the memory-blind recommendations and the cyclical-workload recommendations land, and it is where a careless team causes an incident. The runbook for a resize should include a check of the resource's actual peak utilization over a window longer than the recommendation's lookback, and for anything user-facing, a rollback plan.

The SLO implication is that cost optimization is a change to production, and changes to production carry availability risk. A resize that reduces memory headroom can turn a latency SLO breach into a recurring event, and the cost saving will not look like a saving once you account for the incident. The right framing is that right-sizing is a capacity change and should go through the same change management as any other capacity change, with the same monitoring and the same rollback path. The exam does not usually phrase it this way, but the scenarios that describe a cost problem in a latency-sensitive system are often testing whether you recognize that the cheapest instance is not always the correct one.

On the monitoring side, the useful alarms are not on the cost services themselves but on the resources they recommend changing. If you resize an instance, you want a CPU credit balance alarm for burstable families, a memory utilization alarm if the agent is publishing it, and a latency alarm on the service in front of it. For Cost Explorer, the useful operational artifact is a budget with a forecasted-spend alert, which turns a trend into a notification before the month closes rather than after. For Trusted Advisor, the useful artifact is a periodic export of check results into whatever system your team already reviews, so the checks are not a separate destination nobody visits.

The organizational angle is that someone has to own the recommendations. In a small team that is obvious; in an organization with a central platform team and dozens of product teams, it is not. The pattern that scales is a central FinOps function that owns the aggregate view and the commitment purchases, with per-team recommendations routed to the teams that own the workloads. Compute Optimizer's organization-level view and Trusted Advisor's organizational view exist precisely to make that split possible, and a scenario that describes a central team needing visibility across accounts is usually pointing at one of them.

8. Edge Cases and Exam Gotchas

The single most-tested gotcha is that Compute Optimizer needs memory metrics to make good EC2 recommendations, and those metrics come from the CloudWatch agent, not from the hypervisor. A question that describes a memory-bound workload being recommended for a smaller instance is testing whether you know the recommendation is CPU-biased without the agent. The second most-tested is that Trusted Advisor's cost checks require Business or Enterprise Support, so a scenario describing a Basic Support account that needs proactive cost findings has no correct answer involving Trusted Advisor.

Another recurring trap is confusing Cost Explorer's reservation recommendations with the act of purchasing. Cost Explorer recommends; you purchase in the RI or Savings Plans console, or via the API. A scenario that asks how to reduce cost by committing will have a correct answer that involves analyzing usage in Cost Explorer and then purchasing, and a distractor that implies Cost Explorer itself applies the discount. Similarly, Compute Optimizer recommends but does not resize — there is no auto-remediation, and a scenario implying automatic right-sizing is describing something you would have to build with EventBridge and Lambda on top of the recommendation.

The organization-level opt-in is a frequent source of wrong answers. Compute Optimizer and Trusted Advisor both have organization-wide views, but both require the management account to enable them, and Trusted Advisor additionally requires qualifying support in the member accounts. A scenario that says the management account cannot see member-account recommendations is usually describing a missing opt-in rather than a missing permission. Cost Explorer is different: consolidated billing means the management account sees member-account cost by default, with no opt-in required.

Finally, be careful with the word "idle." Trusted Advisor's idle checks and Compute Optimizer's over-provisioned finding are not the same thing. An idle resource is one that is doing nothing and could be deleted; an over-provisioned resource is one that is doing work but has more capacity than it needs and could be resized. A scenario that asks how to reduce cost from a resource that is genuinely unused is a Trusted Advisor or decommission question; one that asks about a resource that is busy but oversized is a Compute Optimizer question.

9. This vs. the Services It Gets Confused With

The comparison that matters most is against AWS Config and CloudWatch, because those are the two services that appear as distractors most often and the boundary is genuinely subtle. Config evaluates resources against rules and reports compliance; it can be used for cost governance if you write rules like "flag EBS volumes unattached for more than 30 days," but it does not generate recommendations and it does not know what an instance should be resized to. CloudWatch is the raw telemetry layer that Compute Optimizer consumes; it will show you the utilization but not the conclusion. If a scenario's correct answer is Config, the question will describe a custom rule or a compliance requirement. If it is CloudWatch, the question will describe a metric threshold or an alarm.

ServicePrimary outputPick it when…
Compute OptimizerRecommended resource configuration + savingsYou know which resource and need to know what to change it to
Cost ExplorerCost/usage breakdown, forecast, commitment recommendationYou need to attribute, trend, or forecast spend
Trusted AdvisorBest-practice check status across categoriesYou want proactive discovery of waste or risk you did not ask about
AWS ConfigRule compliance stateYou defined a rule and need to know who violates it
CloudWatchRaw metrics, logs, alarmsYou need the underlying telemetry or a threshold alarm
Cost and Usage ReportLine-item billing data in S3You need the most granular data for custom analysis

The Cost and Usage Report is the other service worth separating out, because it is the one that appears in scenarios about custom FinOps tooling. CUR is not a UI; it is a scheduled delivery of line-item billing data to S3, and it is the source of truth that Cost Explorer's aggregates are built from. If a scenario asks for the most granular billing data available, or for data to feed a custom analytics pipeline, the answer is CUR. If it asks for a quick visual breakdown or a forecast, the answer is Cost Explorer. The two are complementary, not competing, and the exam expects you to know which one is the raw feed.

The practical rule for the exam is to read the scenario for the verb. "Recommend" points at Compute Optimizer. "Forecast," "attribute," or "break down" points at Cost Explorer. "Identify" or "check" points at Trusted Advisor. "Enforce" or "evaluate against a rule" points at Config. "Alert on a threshold" points at CloudWatch. "Export line items" points at CUR. The verbs are chosen deliberately, and matching the verb to the service is faster and more reliable than reasoning about the architecture.

Hands-on Lab: Right-Sizing a Fleet from Evidence (45 min)

The goal of this lab is to take a small fleet of instances and produce a defensible right-sizing decision for each one, using Compute Optimizer as the starting point and CloudWatch as the validation layer. The point is not to save money in the lab; it is to build the habit of validating a recommendation before acting on it, which is the behavior the exam scenarios reward.

1. Establish the fleet. Launch five t3.medium instances in a single account, each running a different synthetic workload. Instance one should be genuinely idle — start it and do nothing. Instance two should be CPU-bound, running a busy loop that pins one core. Instance three should be memory-bound, allocating and touching a large block of memory while leaving CPU low. Instance four should be bursty, running a short CPU-intensive job every few minutes. Instance five should be steady and moderate, using roughly half a core continuously. Tag all five with a common project tag so you can find them later.

2. Install the CloudWatch agent on instances three and five only. Configure it to publish the memory utilization metric. This is deliberate: you are creating a fleet where half the instances have memory visibility and half do not, so you can observe the difference in recommendation quality. Leave instances one, two, and four without the agent.

3. Let the fleet run for at least 24 hours. Compute Optimizer needs a meaningful window of metrics before it produces recommendations, and the default lookback is 14 days, so a single day will produce preliminary findings rather than settled ones. Note the date and time you started the fleet so you can reason about the window later.

4. Review the recommendations. Open Compute Optimizer in the console and filter to your five instances. For each one, record the finding classification, the recommended instance type, and the projected monthly savings. Pay particular attention to instance three, the memory-bound one: without the agent it would be recommended for a smaller instance on CPU evidence alone, and with the agent the recommendation should be more conservative. Compare what the console shows for instance three against what it shows for instance two.

5. Validate each recommendation against raw metrics. For every instance, open CloudWatch and pull CPU utilization and, where available, memory utilization over the full period the fleet has been running. For instance four, the bursty one, look specifically at whether the recommendation's lookback window captured any of the bursts. If the bursts fall outside the window, the recommendation is built on a misleadingly flat series.

6. Produce a decision table. For each of the five instances, write one row with the recommended type, the validated peak utilization, and a decision: act, validate further, or ignore. Instance one should be a decommission rather than a resize. Instance three should be flagged as needing memory evidence before acting. Instance four should be flagged as needing a longer lookback.

7. Check Trusted Advisor. If your account has Business or Enterprise Support, open Trusted Advisor and look at the cost optimization category. Note which of your five instances appear in the low-utilization check and compare that list against Compute Optimizer's over-provisioned findings. The two lists will not be identical, and the difference is instructive: Trusted Advisor flags idle, Compute Optimizer flags oversized.

8. Forecast the impact. Open Cost Explorer, filter to your project tag, and look at the daily cost series for the fleet. Use the forecast feature to project the next 30 days at current sizing, then estimate what the fleet would cost if you acted on every recommendation. The gap between those two numbers is the value of the exercise, and it is also the number you would take to a cost review.

9. Clean up. Terminate all five instances and delete any EBS volumes and Elastic IPs you created. If you installed the CloudWatch agent, remove the agent configuration so it does not affect future instances launched from the same AMI.

Scenario Question Drills (20 min)

Q1. A company suspects many EC2 instances are oversized relative to actual CPU/memory utilization but doesn't know which ones. What AWS service directly recommends right-sizing changes?

A. AWS Config
B. AWS Compute Optimizer
C. AWS Trusted Advisor cost checks only
D. CloudWatch Alarms
Correct answer: B. Compute Optimizer analyzes historical utilization and provides specific instance-type right-sizing recommendations with projected savings, more targeted than Trusted Advisor's general cost checks.

Q2. A memory-bound application running on m5.xlarge instances is recommended by Compute Optimizer for m5.large. The application has no CloudWatch agent installed. What is the most likely explanation?

A. Compute Optimizer is malfunctioning and the recommendation should be ignored
B. Without the CloudWatch agent publishing memory metrics, the recommendation is based on CPU evidence alone and may be unsafe
C. The instances are in the wrong region
D. Compute Optimizer only recommends smaller instances for burstable families
Correct answer: B. Compute Optimizer cannot see memory utilization unless the CloudWatch agent publishes it, so a CPU-light memory-bound workload will be recommended for a smaller instance on incomplete evidence.

Q3. A FinOps team needs to see cost broken down by service and region across all 40 accounts in an AWS Organization, with a forecast for next month. What should they use?

A. Trusted Advisor organizational view
B. Cost Explorer in the management account, using consolidated billing data
C. Compute Optimizer organization-level recommendations
D. CloudWatch cross-account dashboards
Correct answer: B. Consolidated billing means the management account sees member-account cost in Cost Explorer by default, with grouping, filtering, and forecasting available without any opt-in.

Q4. An account on Basic Support wants proactive notification of idle load balancers and unassociated Elastic IP addresses. What is the blocker?

A. Nothing — Trusted Advisor cost checks are available on all support plans
B. The full Trusted Advisor check set, including cost optimization, requires Business or Enterprise Support
C. Idle load balancer checks require AWS Config instead
D. Elastic IP checks are only available in the management account
Correct answer: B. The free tier exposes only a small subset of security and service quota checks; the cost optimization category requires Business or Enterprise Support.

Q5. A batch workload runs a heavy job on the first of every month and is idle the rest of the time. Compute Optimizer flags the instances as over-provisioned. What is the most likely cause?

A. The instances are genuinely oversized and should be resized immediately
B. The default 14-day lookback window did not capture the monthly burst, so the utilization series looks flat and low
C. Compute Optimizer does not support batch workloads
D. The instances need a larger instance type, not a smaller one
Correct answer: B. A 14-day window can miss monthly or quarterly patterns entirely; enhanced infrastructure metrics extend the lookback to three months and are the fix for cyclical workloads.

Q6. A team wants to reduce cost by committing to a one-year term but needs the flexibility to change instance families and regions during the term. What should they purchase?

A. EC2 Instance Savings Plans
B. Compute Savings Plans
C. Standard Reserved Instances
D. Convertible Reserved Instances in a single region
Correct answer: B. Compute Savings Plans apply across any instance family, region, and OS, trading a slightly lower discount than EC2 Instance Savings Plans for maximum flexibility. Cost Explorer's commitment recommendations are the tool that sizes the purchase.

Q7. A company needs the most granular billing data available to feed a custom analytics pipeline that attributes spend to internal cost centers. What should they use?

A. Cost Explorer's built-in reports
B. The AWS Cost and Usage Report, delivered as line items to S3
C. Trusted Advisor cost checks
D. Compute Optimizer's projected savings figures
Correct answer: B. CUR is the raw line-item billing feed delivered to S3 and is the source of truth that Cost Explorer's aggregates are built from; it is the right choice for custom tooling.

Q8. A platform team wants Compute Optimizer recommendations from all member accounts visible in the management account. What must be done?

A. Nothing — organization-level visibility is automatic
B. Opt in to Compute Optimizer at the organization level from the management account
C. Enable AWS Config in every member account
D. Attach an SCP granting compute-optimizer:* to all accounts
Correct answer: B. Compute Optimizer is opt-in per account by default; organization-level visibility requires the management account to enable it centrally.

Q9. A team wants to automatically resize instances whenever Compute Optimizer flags them as over-provisioned. What is the correct characterization of this requirement?

A. Compute Optimizer performs the resize automatically once enabled
B. Compute Optimizer only recommends; automation must be built on top of the recommendation using EventBridge and Lambda or similar
C. Auto Scaling groups resize instances automatically based on Compute Optimizer findings
D. Trusted Advisor performs the resize as part of its remediation
Correct answer: B. Compute Optimizer is a recommendation service with no auto-remediation; any automatic action has to be built on top of its findings.

Q10. A company has a rule that no EBS volume may remain unattached for more than 30 days, and wants to know which accounts violate it. What is the right service?

A. Compute Optimizer
B. AWS Config with a managed or custom rule
C. Cost Explorer
D. Trusted Advisor
Correct answer: B. Config evaluates resources against rules you define and reports compliance state; it is the right tool when the requirement is a custom policy rather than a recommendation.

Q11. A Cost Explorer forecast for next month looks implausibly high. The account completed a large one-time data migration last month. What is the most likely explanation?

A. Cost Explorer is broken and the forecast should be ignored
B. The forecast extrapolates the one-time migration cost as if it were recurring, bending the trend line
C. The forecast only uses the last 24 hours of data
D. Cost Explorer cannot forecast accounts with more than one region
Correct answer: B. Forecasts assume the future resembles the past; a one-time cost in the historical window will be extrapolated unless you filter it out or account for it.

Q12. An operations team wants an alert before the month closes if spend is trending above the approved budget. What should they configure?

A. A CloudWatch alarm on the billing metric
B. An AWS Budget with a forecasted-spend alert threshold
C. A Trusted Advisor cost check
D. A Compute Optimizer recommendation review
Correct answer: B. AWS Budgets supports forecasted-spend alerts, which fire before the period closes when the projection crosses a threshold — the operational complement to Cost Explorer's reporting.

Q13. A Trusted Advisor cost check has been in warning state for eight months on a load balancer that is intentionally idle as a DR standby. What is the recommended handling?

A. Delete the load balancer to clear the warning
B. Document it as a known exception with a reason, so the warning does not train the team to ignore the category
C. Disable Trusted Advisor entirely
D. Move the load balancer to a different account
Correct answer: B. Persistent unactioned warnings erode the value of the whole category; documenting intentional exceptions keeps the signal meaningful.

Q14. A team needs to know the recommended instance type for an Auto Scaling group, not for individual instances. Does Compute Optimizer support this?

A. No, Compute Optimizer only covers standalone EC2 instances
B. Yes, it produces recommendations for Auto Scaling groups covering instance type and desired capacity, acted on via the launch template
C. Yes, but only for groups with a single instance
D. Only if the group uses Spot instances
Correct answer: B. Compute Optimizer covers Auto Scaling groups as well as standalone instances, EBS volumes, Lambda functions, ECS services on Fargate, and commercial software licenses.

Q15. A scenario asks how to identify which of 200 EC2 instances are running below 10% CPU utilization over the past week. Which service most directly answers this?

A. Cost Explorer, filtered by instance type
B. CloudWatch metrics queried directly, or Trusted Advisor's low-utilization check
C. AWS Config with a custom rule
D. The Cost and Usage Report
Correct answer: B. The question asks for identification of low utilization, not a resize recommendation; CloudWatch holds the raw metric and Trusted Advisor's low-utilization check surfaces it proactively. Compute Optimizer would be the answer if the question asked what to resize them to.

Peek into Tomorrow

Everything in this day assumed you could attribute a cost to something. Compute Optimizer attributes utilization to a resource, Cost Explorer attributes spend to a service, region, or account, and Trusted Advisor attributes waste to a check category. But the attribution that actually matters to a business is neither of those — it is which team, which product, and which environment is responsible for the spend, and none of the three services can answer that on their own. Cost Explorer can group by tag, but only if the tag exists, and only if it was applied consistently at creation time rather than retrofitted by a script six months later.

That gap is the open question tomorrow answers. Cost Allocation Tags only work if tagging is enforced at the point of resource creation, which turns a reporting problem into a governance problem — the enforcement mechanism is an SCP or a Config rule, not a Cost Explorer setting. And once spend is attributable, the next question is what to do when a team's forecasted spend crosses its allocation, which is where AWS Budgets' forecasted-versus-actual alerts come in. The Cost and Usage Report sits underneath all of it as the granular line-item feed that makes custom attribution possible when the built-in grouping is not enough. The measurement layer is in place; tomorrow is about making it accountable.

Sources