What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

My approach starts with a cost objective, not a discount. I identify what each part of the workload is supposed to cost and which line items drive most of the bill. Only then do I change capacity, pricing, or commitments, and I keep reliability requirements in view the whole time. The sequence below is a workflow built on AWS documentation and service descriptions. It is not a report of savings I measured on my own systems, and the percentages quoted here are AWS’s published figures, not outcomes for any particular architecture.

Start with a cost objective and a named owner

AWS frames cost optimization as running systems so they deliver business value at the lowest price point. The phrase matters because it rules out the idea that the cheapest resource is always the right one. A backend service that saves money by failing under peak traffic has not been optimized.

Before I look at a bill, I write down four things for the workload:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • The boundary: which services, accounts, and environments belong to this workload.
  • The owner: the team or person who can approve a change to it.
  • The reliability target: the latency, throughput, and availability the service must keep.
  • The cost objective: the monthly figure or unit cost, such as cost per thousand requests, that the team is trying to hold or improve.

The reliability target is the constraint that everything else has to fit inside. Without it, any savings suggestion can look attractive on paper.

Find the largest cost drivers before changing anything

I work from the bill down to the workload. Cost Explorer, in the Billing and Cost Management console, shows cost and usage by service and by other dimensions. The path I use is:

  1. Open Billing and Cost Management, then Cost Explorer, and set the date range to at least the last three full billing months so that one unusual week does not drive decisions.
  2. Use Group by and select Service to see which services account for most of the spend. Then group by Linked account or Region to see where that spend sits.
  3. Go to Billing and Cost Management, then Cost allocation tags, and confirm that the tags identifying workload and environment are activated. Tag-based views only explain costs recorded after activation, so newly activated tags will not reconstruct older spend.
  4. Match each major bill line to the workload boundary you wrote down. Any line you cannot assign to an owner is the first thing to fix, because nobody can approve a change to spend nobody owns.
  5. Before proposing an alternative architecture or instance type, build an estimate with the AWS Pricing Calculator so the comparison uses list-price inputs rather than memory.

The output of this step is a short ranked list: the top few cost lines, their owners, and the workload each one supports. That list, not a general sense that the bill is high, drives the rest of the work.

Separate waste from sizing mismatches

Once I know where the money goes, I look for two different problems. Waste is spend that delivers nothing, such as idle resources or forgotten environments. A sizing mismatch is capacity that is real but larger or differently shaped than the workload needs. The fixes are different, and so is the risk.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

AWS provides several sources of recommendations. AWS Compute Optimizer and AWS Trusted Advisor can surface sizing and utilization opportunities. AWS Cost Optimization Hub consolidates multiple recommendation types across accounts and Regions. AWS describes the Hub as covering more than 18 recommendation types, including EC2 rightsizing, Graviton migration, idle-resource detection, database recommendations, and commitment recommendations. That count is AWS’s own description of the product, accessed in 2026, not an independent assessment of how useful each type is.

I treat every recommendation as a candidate, not an instruction. A smaller instance or a move to a different processor family has to be checked against latency, throughput, memory headroom, and failover behavior. A recommendation computed from average utilization can miss a short daily peak that the service depends on. The question I ask is not “what does the tool say?” but “what would this change do during the busiest hour of the week?”

Match the pricing model to how the workload behaves

Pricing decisions come after sizing decisions, because a commitment on oversized capacity locks in the waste. The four main models trade flexibility, discount depth, and interruption risk differently.

Model What it is Fits best Main trade-off
On-Demand Pay-as-you-go capacity with no long-term commitment. Short-lived, unpredictable, or non-interruptible workloads, and the baseline for any comparison. You pay the standard rate for every hour used. Discounts are not applied.
Savings Plans A one-year or three-year commitment to a fixed hourly spend, discounting eligible EC2, Lambda, and Fargate usage. Steady baseline compute that you expect to keep running through the term. The committed hourly spend is owed whether or not the usage appears. The commitment is only as good as the baseline forecast.
Spot Instances Spare EC2 capacity that AWS can reclaim. Fault-tolerant, flexible, or batch-style processing that can stop and restart without damage. Capacity can be interrupted. AWS states Spot can be up to 90% off the On-Demand price, a published maximum that is not a forecast for any specific architecture (AWS Well-Architected Framework, COST07-BP01, accessed 2026).
Reserved Instances A commitment-based discount for certain services, including RDS, Redshift, ElastiCache, and OpenSearch. Stable database or cache capacity with a known size and Region. Eligibility and terms vary by service and Region. Discount levels are not stated in the guidance reviewed here, so check the current AWS pricing for the exact service before buying.

Three questions decide most of these choices for me. Is the baseline stable enough to commit to for one or three years? Can the work tolerate interruption, retry, or a restart? How long will the workload exist in its current form? A service that is still changing shape should stay on On-Demand until the pattern settles. A batch job that can resume from a checkpoint is a better Spot candidate than a request-serving API that holds user sessions.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Savings Plans and Reserved Instances are both commitments, so I only add them after the sizing work is finished. Committing before rightsizing turns a temporary overprovision into a multi-year cost.

Put guardrails around spend

Optimization fails quietly when nobody notices a cost change until the invoice arrives. I set two kinds of controls.

  • AWS Budgets sends notifications for cost, usage, and commitment utilization. Budgets can be scoped by account, service, tag, or Availability Zone, so a budget can match the owner’s boundary rather than the whole company’s bill.
  • Cost Anomaly Detection flags unexpected changes in spend. Pairing it with budget thresholds means one alert tells the team that something moved, and the other tells them that it crossed a line they care about.

AWS Budgets also supports budget actions that can enforce a policy or stop selected EC2 or RDS instances. For production workloads I do not enable automatic stop actions without first confirming what they would interrupt. A stop action that protects the bill can also take down the service it was meant to protect, so the recovery path has to be written before the automation is turned on.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Make one bounded change and review it

The change process is where I most often see optimization go wrong, because several changes get made at once and nobody can tell which one caused a regression. My rule is one change at a time, with a record before and after.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Record the baseline: the cost by service for the affected workload, plus the latency, error rate, throughput, and availability the service reports over a normal traffic cycle.
  2. Write the rollback step before making the change. For an instance change, that means the previous instance type. For a commitment, it means knowing the term and the cancellation or non-renewal rules you are accepting.
  3. Apply one change in a non-production environment first where that is possible, then in production during a period you can watch.
  4. Compare the same metrics after the change over a window long enough to include your normal peak. A short quiet period can hide the problem.
  5. Keep the change only if both cost and application behavior meet the targets. If the cost improved but p99 latency or error rate worsened, roll back and record the reason.

I pause and do not proceed when any of these is true: the owner cannot be identified, the workload has no reliable baseline, the change would reduce redundancy across Availability Zones, or the only evidence is a single recommendation with no check against real traffic.

Optional: third-party visibility tools

Native AWS tools cover the workflow above. Some teams still want a dashboard that spans several cloud accounts, provides allocation views, forecasts, or an API for reporting. Vantage is one such product, listed on AWS Marketplace with a description of cost analysis, allocation, forecasting, dashboards, and APIs, sold through a paid subscription. Check the listing for current subscription pricing before deciding. Its value should be measured against what you can already do in Cost Explorer, Budgets, and the Cost Optimization Hub, and against the subscription cost. I have no affiliate or referral relationship with it, and you do not need it to follow this workflow.

What the official guidance does and does not promise

The Well-Architected Framework’s Cost Optimization pillar is the primary source behind this approach. It describes cost optimization as an ongoing practice rather than a single project. The guidance supports starting with objectives, identifying drivers, matching pricing to workload behavior, and reviewing commitments as usage changes. It does not promise a savings percentage for a given workload, and the 90% Spot figure is a maximum AWS publishes for its pricing, not a result you should plan around.

Pricing, eligibility, and feature details change by service, Region, and account. Confirm them in the current AWS documentation and pricing pages before you make a purchase or write a savings projection.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.