RDS INSTANCE RIGHTSIZER · RUNS IN YOUR BROWSER

Is your RDS or Aurora instance too big?

Paste a CSV of CloudWatch numbers per instance (and/or aws rds describe-db-instances --output json) and get, per instance, an over- or under-provisioned verdict, the next class in the same family that still fits CPU, memory and connections, a Graviton saving for x86 classes, the monthly saving (Multi-AZ doubles the price) and the aws rds modify-db-instance command to paste.

Nothing is uploaded and no AWS account is contacted. The text box is analysed in this browser and never leaves your device. This is a recommendation from metrics, not a bill: metrics must be sampled over a representative period, and prices are approximate.

1. Paste instances and CloudWatch numbers

Approximate us-east-1 on-demand $/hour per class (editable JSON)

Single-AZ, MySQL/PostgreSQL-style list prices, approximate and dated; Aurora, Oracle, SQL Server and your discounts differ. Edit a number, or add a class as {"price": 0.4, "vcpu": 2, "memGib": 16}.

Prefer a CLI, or want a CI check?

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

aws rds describe-db-instances --output json > rds.json
node cli.mjs analyze rds.json metrics.csv --commands
node cli.mjs analyze instances.csv --cpu-target 60 --mem-reserve 25 --prices my-prices.json
node cli.mjs analyze instances.csv --fail-on warn          # exit 1 when over-provisioned or under pressure
node cli.mjs classes                                       # print the embedded price table
node cli.mjs analyze instances.csv --json

Get cli.mjs and engine.mjs — Node 18+, nothing to install, no network call. More: how to right-size an RDS instance.

What's recognised

InputHandling

Covered classes: db.t3, t4g, m5, m6i, m6g, m7g, r5, r6i, r6g, r7g. Reserved instances, storage, I/O, backups and data transfer are not modelled.

Common questions

Does this connect to my AWS account?

No. It reads the text you paste and never contacts AWS or any server. It cannot see your real invoice, reserved instances, Savings Plans, storage or I/O charges, so every dollar figure is the instance list price you can edit, times 730 hours.

How long should the CloudWatch window be?

Long enough to include your busiest period: at least two weeks, and a month-end or batch cycle if you have one. Use the p95 of CPUUtilization, the minimum of FreeableMemory and the p95 of DatabaseConnections. A quiet week will recommend a class that falls over on payroll day.

Is low freeable memory always a problem?

No. MySQL and PostgreSQL use free memory as cache, so a low minimum is a prompt to check SwapUsage and read latency, not proof of trouble. The tool keeps a 20% freeable reserve on the new class at your observed peak, and you can change it.

Will changing the instance class cause downtime?

Yes. Modifying the class restarts the instance. A single-AZ instance is unavailable for several minutes and a Multi-AZ instance fails over, usually in one to two minutes. Without --apply-immediately the change waits for the next maintenance window; with it, the restart starts now.

Is my pasted text uploaded anywhere?

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