FinOps for shared AWS RDS SQL Server

One RDS bill. Now you know who spent it.

AWS bills RDS per instance — so on a shared SQL Server you can't see which database, team, or client is actually driving the cost. DBSteward reads the engine's own metrics and splits that single bill down to every database.

Agentless - no CloudWatch or Lambda Air-gap friendly Exportable chargeback reports
Shared instance · monthly bill
sql-prod-01
$4,820/mo
apportioned by DBSteward
SalesDB $1,723
BillingDB $1,205
AnalyticsDB $892
TenantDB_07 $556
Unallocated $444
Basis: As-billed · CPU · memory · IO · storage rds:db/Name
The blind spot

Your cloud bill stops at the instance. Your accountability shouldn't.

Consolidating databases onto shared RDS instances saves money — and erases the cost trail. Here's what that costs you.

Instance-level billing

AWS charges for the RDS instance as a whole. Ten databases on one instance show up as a single, undivided number.

No noisy-neighbor answer

When cost spikes, nobody can prove which database caused it. Right-sizing and reclaim conversations stall on guesswork.

No chargeback story

Finance can't bill teams or clients for shared-database usage, so infrastructure cost quietly erodes margin.

How it works

From one opaque bill to defensible per-database cost — in four steps.

DBSteward reads SQL Server's own DMVs to measure what each database actually consumes, then maps the real AWS bill onto that usage.

01

Onboard the instance

Point DBSteward at a server. It self-provisions a small management database — no agents on the box.

02

Collect DMV metrics

Per-database CPU, memory, IO stalls, and storage are sampled on a schedule, straight from the engine.

03

Apportion the cost

The fair-share engine maps the actual Cost Explorer bill onto usage — and never lets any database exceed 100%.

04

Report & charge back

Tag, allocate, and export frozen PDF/XLSX billing reports per team, client, or tenant.

The output

A chargeback report your finance team will actually accept.

Every allocation is fully transparent — here's how DBSteward turns one instance bill into a defensible per-database number, shown on a real report layout.

measure

Share — what each database used

For every metric, share = this database's consumption ÷ the instance total. Counters like CPU and I/O are summed as reset-aware deltas; gauges like memory, disk, and log are averaged.

weight

Weight — what matters to cost

Shares are blended on a fixed weighting (CPU 20% · Memory 20% · Disk 30% · Log 10% · I/O 20%), renormalized so a database missing a metric never inflates the others.

score

Score — a single fair number

Score = Σ(weight × share). Cost = instance bill × score. The denominator is anchored to max(instance series, Σ per-database), so no database's share can ever exceed 100%.

reminder

Unallocated — honest about the rest

What no user database can claim — system databases, tempdb, background work, shared baseline — is shown as Unallocated rather than smeared across teams.

Chargeback Report 2026-05 · As billed
Production · sql-prod-01
Shared SQL Server instance · USD
$920.00
Instance bill
$266.06
Allocated · 28.9%
$653.94
Unallocated · 71.1%
#DatabaseScoreBill %Cost
1Northwind_Retail0.162016.20%$149.04
2Atlas_Logistics0.05905.90%$54.28
3Meridian_Hotels0.02352.35%$21.62
4Cobalt_Finance0.02052.05%$18.86
5Lumen_Media0.01981.98%$18.22
6Verde_Travel0.00410.41%$3.77
7Pinnacle_Edu0.00030.03%$0.28
Unallocated (shared baseline)71.08%$653.94
Total100.00%$920.00

Weights: CPU 20% · Memory 20% · Disk 30% · Log 10% · I/O 20%. Sample data — fictional names, illustrative figures.

What's inside

Everything you need to measure, allocate, and defend database cost.

📊

Portfolio dashboard

One landing view: spend, projected cost, managed databases, and unallocated %, across every instance.

🍩

Cost-by-database

See exactly how an instance's bill splits across its databases, with unallocated cost made visible.

⚖️

Fair-share chargeback engine

Weighted allocation across CPU, memory, IO, and storage — reset-aware, with a sum-of-parts floor.

🔗

Cost Explorer integration

Uses your real as-billed AWS figures, currency-aware, with a period-to-date estimate fallback.

📈

Monitoring & health

CPU-hours, storage and memory trends, plus freshness badges that flag stale collection at a glance.

🏷️

Tag registry

Attach team, client, or environment tags to each database so cost rolls up the way your org thinks.

📄

Frozen billing reports

Snapshot a month's allocation to immutable PDF and XLSX — auditable, shareable, defensible.

🔍

Query Store add-on

Optional per-database top-SQL detail when you need to explain a cost spike down to the query.

🔒

Runs in your environment

No CloudWatch, no Lambda, air-gap friendly. Secrets via AWS Secrets Manager and IAM roles.

Built for your team

Four roles. One source of truth on database cost.

Stop guessing which database is the problem

Per-database CPU, memory, IO, and storage attribution — pulled from DMVs, with zero CloudWatch or Lambda to operate.

  • Identify noisy neighbors with evidence, not hunches
  • Right-size and consolidate with cost proof in hand
  • Freshness badges surface stale collection instantly
"I can finally point at the database driving the spike — and the cost behind it." — What an AWS admin gets on day one

Engine-native metrics, no agents on the box

CPU attribution from plan-cache, IO-stall counters, storage and memory gauges — all reset-aware and collected on your cadence.

  • Self-provisioning management database, idempotent scripts
  • Optional Query Store detail for top-SQL diagnosis
  • Nothing installed on the SQL Server host itself
"It reads what the engine already knows — and turns it into a number finance accepts." — The DBA's view

Turn one opaque bill into defensible chargeback

Allocate shared-database cost to teams, clients, or environments — currency-aware, tied to real AWS figures, exportable for audit.

  • As-billed cost from Cost Explorer, not estimates
  • Frozen monthly PDF and XLSX reports per cost owner
  • Unallocated cost is shown, never hidden
"Shared infrastructure stops being a margin leak the moment you can attribute it." — The finance case

Know the true cost to serve each tenant

Map shared-database infrastructure back to customers and tenants for accurate margins, pricing, and capacity planning.

  • Per-tenant cost from per-database usage
  • Spot unprofitable accounts before renewal
  • Back pricing decisions with real allocation data
"You can't price what you can't measure. Now you can measure cost per tenant." — The SaaS economics case
Why DBSteward

Built for the realities of shared SQL Server estates.

Agentless by design

No CloudWatch, no Lambda, nothing installed on the database host. It reads the engine's own DMVs.

🛡️

Air-gap friendly

Vendored assets and local dependencies mean it runs in locked-down environments without external CDNs.

🧮

Allocation that holds up

The sum-of-parts floor guarantees no database's share exceeds 100%, even when plan-cache metrics dip.

⚙️

Self-bootstrapping

Onboarding provisions its own management database and idempotent collection routines — minimal setup.

Interested ? Request a demo

See your own RDS bill, split by database.

Book a walkthrough and we'll show DBSteward against a shared SQL Server instance like yours — from DMV collection to a finished chargeback report.

No spam. We'll reach out within one business day.

Thanks — your request is in. We'll be in touch within one business day.