AI-Enabled AWS Cost Optimization: What Works, What Doesn't

AI-enabled AWS cost optimization in 2026: what Amazon Q, the FinOps agent and the MCP server get right, where they slip, and how to audit Bedrock spend.

Ask ten vendors what AI-enabled AWS cost optimization means and you’ll get ten demos, most of them a chat box sitting on top of Cost Explorer. That isn’t a criticism. A chat box on top of Cost Explorer is useful, and AWS shipped several of its own this year. But a tool that answers questions about your bill is a different thing from one that knows what to change, and very different again from one you’d let change it.

This piece sorts the AI features AWS actually offers today into what they’re good at and what they still get wrong. The second half turns the question around, because for a growing number of teams the AI isn’t the thing that saves money. It’s the thing on the bill. Prices are us-east-1 list prices at the time of writing.

What AWS ships today

Some of this is older than the current wave. Cost Anomaly Detection has used machine learning to flag unusual spend for years, and Compute Optimizer’s rightsizing has always been model-driven. What’s new in 2026 is the language layer on top:

Feature Since What it does Cost
Amazon Q cost analysis Nov 2024, extended since Answers cost questions in chat, shows the API calls it ran Included with Amazon Q Developer; the free tier has a monthly question cap, Pro is $19 per user per month
Analyze with Amazon Q in Cost Explorer 9 June 2026 Explains the report on screen: trends, top drivers, anomalies, forecast No extra charge in the console
AI-powered cost investigations 8 June 2026 Works out whether an anomaly is usage or price, and ties usage changes to CloudTrail calls and IAM principals No extra charge; organization-wide CloudTrail queries can add Logs Insights charges
Billing and Cost Management MCP server Aug 2025 Open-source server that lets any MCP client query Cost Explorer, Cost Optimization Hub, Compute Optimizer, Savings Plans and more Free to run; the API calls it makes are billed as usual
AWS FinOps Agent (preview) 9 June 2026 Answers questions, runs scheduled reports, investigates anomalies, posts to Slack, opens Jira tickets Free in preview, subject to a monthly usage limit; runs from us-east-1

Where AI-enabled AWS cost optimization earns its keep

Questions you’d otherwise build a report for

“Which linked account grew most in EC2-Other last month, and which usage type drove it?” is a two-minute question in chat and a ten-minute one in the Cost Explorer UI, longer if you don’t know that NAT gateway bytes live under EC2-Other. For occasional questions from people who don’t live in the billing console, that’s a real saving of time. Amazon Q lists the API calls and parameters behind each answer, which is the part to check.

First-pass anomaly write-ups

The new investigations are the most practical AI feature in the set. Splitting a spike into “more usage” versus “higher price” and naming the IAM principal behind the usage change is exactly the tedious part of an anomaly ticket. The FinOps agent does the same on a schedule and drops the result into Slack. You still need someone to decide whether a new data pipeline was planned, but they start from a paragraph instead of a blank page.

Drafting the change, not making it

Language models are good at turning a finding into a Jira ticket with context, a Terraform diff for a gp2-to-gp3 switch, or a lifecycle rule in JSON. That’s AWS cost optimization with AI at its most reliable: a draft a human reviews and merges.

What they don’t do reliably

Price a finding against your own bill

Cost Optimization Hub’s estimates do account for your Reserved Instances and Savings Plans, and an assistant that quotes the Hub inherits that. The trouble starts when the model does its own arithmetic. Ask what moving a fleet to Graviton would save and you’ll often get list prices times hours, which overstates the saving on anything already covered by a commitment. Unblended, amortized and net costs answer different questions, and a chat answer doesn’t always say which one it used. Amazon Q’s documentation doesn’t spell out how it treats discounts by default, so ask, and check the query it shows you.

There’s also a coverage gap. A builder who tested the FinOps agent found it kept going back to Cost Optimization Hub for S3 questions, where the Hub has no recommendations, until told to use Cost Explorer instead. An assistant can only be as complete as the recommendation sources under it.

Promise to stay read-only

“Read-only” is a property of the IAM role, not the product. The FinOps agent’s data role is mostly read-only, with write access to its own EventBridge schedules, and it writes to Slack and Jira by design. The MCP server runs with whatever credentials you hand it, and its documented permission list for the Storage Lens features includes s3:PutObject, s3:PutStorageLensConfiguration and athena:CreateWorkGroup. None of that is sinister, but it means you should test the role rather than trust a label:

# Read-only: asks IAM what this role could do, without doing any of it
ROLE_ARN=arn:aws:iam::123456789012:role/cost-assistant
aws iam simulate-principal-policy --policy-source-arn "$ROLE_ARN" \
  --action-names ec2:TerminateInstances ec2:DeleteVolume s3:PutObject \
    savingsplans:CreateSavingsPlan ce:UpdateCostAllocationTagsStatus \
  --query 'EvaluationResults[].[EvalActionName,EvalDecision]' --output table

Anything that comes back allowed is something an agent using that role can do. And the MCP route isn’t free: each Cost Explorer API request costs $0.01, and a chatty session can make dozens.

Why autonomous fixes and auto-bought commitments carry risk

An agent that deletes idle resources on its own will eventually delete the snapshot that was somebody’s only backup, or the “unused” load balancer behind a quarterly batch job. Every cleanup we’d recommend has a human step for that reason; our post on idle and orphaned AWS resources walks through it.

Commitments are worse, because the mistake lasts a year or three. A model that reads a migration month or a load test as the new baseline will happily size a Savings Plan to it. AWS lets you return a Savings Plan only if its hourly commitment is $100 or less, it was bought in the last seven days, and the calendar month hasn’t ended. After that you own it. If anything in your organization buys commitments automatically, check this week’s purchases while the window is open:

# Read-only: Savings Plans that started in the last 7 days
SINCE=$(date -u -d '7 days ago' +%Y-%m-%dT%H:%M:%S 2>/dev/null || date -u -v-7d +%Y-%m-%dT%H:%M:%S)
aws savingsplans describe-savings-plans --states active \
  --query "savingsPlans[?start>='$SINCE'].[savingsPlanId,savingsPlanType,commitment,paymentOption,start]" \
  --output table
# DESTRUCTIVE: returns the plan; covered usage goes back to on-demand rates.
SP_ID=replace-with-plan-id
aws savingsplans describe-savings-plans --savings-plan-ids "$SP_ID" \
  --query 'savingsPlans[0].[savingsPlanType,commitment,start,state]' --output text
read -r -p "Return Savings Plan $SP_ID? This can't be undone. [y/N] " ok
[ "$ok" = "y" ] && aws savingsplans return-savings-plan --savings-plan-id "$SP_ID"

Sizing a commitment by hand is less work than it sounds; Reserved Instances vs Savings Plans covers how much to buy and why coverage and utilization pull in opposite directions.

FinOps for AI: the bill the models run up

For teams building on Amazon Bedrock, the more useful question is often how to optimize AI costs rather than how AI optimizes costs. Bedrock spend behaves differently from EC2: it’s set request by request in application code, so the usual rightsizing checks don’t see it.

Spend by model and inference type

Since 8 October 2026, Cost Explorer exposes Bedrock product attributes (provider, model, inference type and feature) for usage from 1 September 2026 onward. That makes the first cut a single query:

START=$(date -u -d "$(date -u +%Y-%m-01) -1 month" +%Y-%m-%d 2>/dev/null || date -u -v1d -v-1m +%Y-%m-%d)
END=$(date -u +%Y-%m-01)
aws ce get-cost-and-usage --time-period Start="$START",End="$END" \
  --granularity MONTHLY --metrics UnblendedCost \
  --filter '{"Dimensions":{"Key":"SERVICE","Values":["Amazon Bedrock","Amazon Bedrock Service"]}}' \
  --group-by Type=PRODUCT_ATTRIBUTE,Key=model Type=PRODUCT_ATTRIBUTE,Key=inferenceType \
  --query 'ResultsByTime[0].Groups[].[Keys[0],Keys[1],Metrics.UnblendedCost.Amount]' \
  --output text | sort -t$'\t' -k3 -nr | head -20

The token mix

The inference type splits each model’s cost into input, output, cache-read and cache-write tokens. Output is where the money usually is: on Nova Pro, output lists at $3.20 per million tokens against $0.80 for input. A model whose output line dwarfs its input line is generating long answers, and shorter formats are the cheapest fix there is.

No batch, no cache

Two blanks in that table are worth chasing. If a model shows steady on-demand spend and the feature attribute never shows batch, some of that work may be able to wait: batch inference is priced at half of on-demand on supported models. If a model has large input spend and no cache-read line at all, prompt caching is either off or never matching. Nova cache reads are $0.20 per million tokens, a quarter of the input rate, so a long system prompt sent on every call is paying four times what it needs to.

Provisioned throughput below break-even

A Nova Pro model unit on a six-month term lists at $30.25 an hour, or $22,082.50 over a 730-hour month. If your traffic is four input tokens for every output token, the blended on-demand rate is $1.28 per million, so the unit only beats on-demand above roughly 17 billion tokens a month. Run the same sum with your own effective rate and your own token counts; a unit bought for a launch and never revisited often falls well short.

The Amazon Bedrock cost optimization guide goes deeper on each of these, with the CLI for finding them.

Kostrix, for what it’s worth, isn’t AI-powered: it runs deterministic, read-only checks, priced from your own bill wherever the bill allows, including those three Bedrock findings, and an assistant tier is on the roadmap with no date yet.

FAQ

Is the AWS FinOps Agent free?

During the preview, yes, up to a monthly usage limit. Other AWS services it uses, such as Cost Explorer API calls or CloudWatch Logs queries, bill as normal.

Can Amazon Q change resources in my account to cut costs?

The cost analysis features answer questions and surface recommendations. What any assistant can change depends on the permissions of the role it runs as, so check that role directly.

Is AI-powered AWS cost optimization more accurate than Cost Explorer?

No. The assistants read the same data Cost Explorer does. They’re faster for ad hoc questions, but their own estimates can use list prices, so confirm any number you’ll act on.

What does FinOps for AI cover on AWS?

Mostly Bedrock: spend by model and inference type, output-heavy token mixes, missing batch inference and prompt caching, and provisioned capacity that costs more than on-demand would.

Check one thing this week

Run the role simulation above against whichever assistant or agent has access to your billing data, and write down every action that comes back allowed. Then run the Bedrock product-attribute query for last month and look for the model with the biggest output line. Those two results tell you whether your AI tooling is safe to use and whether your AI workloads are worth a closer look.