RDS INSTANCE COST ADVISOR · RUNS IN YOUR BROWSER

Why is your RDS bill so high?

Paste one row per RDS instance — class, engine, Multi-AZ, storage, IOPS, CPU — and see what each instance costs, Multi-AZ you are paying double for outside production, io1 provisioned IOPS that a gp3 volume covers, x86 classes with a cheaper Graviton twin, idle instances and the ready-to-paste aws rds modify-db-instance command.

Nothing is uploaded and AWS is never contacted. The text box is analysed in this browser and never leaves your device. Prices are illustrative list prices and the savings are differences of those prices, which is an estimate.

1. Paste your instances

Prefer a CLI, or want a CI check?

Same logic, zero dependencies, one command — reads a file or stdin:

node cli.mjs analyze instances.csv
cat instances.csv | node cli.mjs analyze -
node cli.mjs analyze instances.csv --fail-on warn   # exit 1 on any waste
node cli.mjs analyze instances.csv --json --prices my-prices.json

Get cli.mjs and engine.mjs — Node 18+, nothing to install, no network call. More: RDS instance cost: Multi-AZ, io1 IOPS, Graviton and idle instances.

What's recognised

InputHandling

Prices are illustrative and dated; edit them with --prices in the CLI. Aurora, Oracle, SQL Server, Db2, storage backups, data transfer, Performance Insights and Reserved Instance or Savings Plan discounts are not modelled.

Common questions

Does this connect to my AWS account?

No. It reads the rows you paste and never contacts AWS. It cannot see your Reserved Instances, Savings Plans or discounts, so every dollar figure is list price times what you pasted, with prices you can edit.

How do I get the numbers?

aws rds describe-db-instances gives DBInstanceIdentifier, DBInstanceClass, Engine, MultiAZ, StorageType, AllocatedStorage and Iops. Average CPU is CloudWatch CPUUtilization averaged over 30 days. The environment is whatever tag or name you use for dev, staging or prod.

Why flag Multi-AZ outside production?

Multi-AZ keeps a synchronous standby in another zone and bills the instance and its storage twice. That is what production wants, and it is waste on a dev, test or staging database nobody fails over to.

Can gp3 really replace io1?

On RDS, gp3 includes a baseline of 3,000 IOPS below 400 GB and 12,000 at 400 GB and above with no per-IOPS charge, while io1 charges per provisioned IOPS every month. If your provisioned IOPS is inside that baseline, the per-IOPS charge is avoidable. Check peak IOPS and latency in CloudWatch before changing.

Is my data uploaded anywhere?

No. The browser page analyses the text in your own browser and never sends it anywhere. The CLI reads a local file or stdin and makes no network call.