AWSData & storage3 min read

Separate RDS billing meters before changing capacity

Sources checked September 10, 2026Varies by scope
On this page
THE SHORT ANSWER

Separate RDS charges by usage type before changing capacity. Otherwise, a low-load database can still incur instance-hour, provisioned storage, or provisioned IOPS charges, and billing quantities alone cannot prove underuse.

What you need first

Tool
Use the AWS Command Line Interface (AWS CLI), a tool for calling AWS services from a terminal. Start in a Bash terminal with the CLI available. The command reads Cost Explorer data for the dates you choose.
Access
Ask an authorized AWS billing colleague to provide the get-cost-and-usage result for your required billing scope, or confirm that your configured credentials can run this operation.
If you do not use that tool
Send the billing colleague the date range and intended account scope. Ask for the RDS service and usage-type rows, UnblendedCost, UsageQuantity, units, and scope confirmation.

Why this is worth a look

Skipping this check can target the wrong cost driver. RDS instance usage is billed per hour, calculated in seconds with a 10-minute minimum. Storage is billed per provisioned GiB-month. Provisioned IOPS is billed per IOPS-month regardless of consumption for Provisioned IOPS SSD and gp3 storage.

Keep other meters separate. Magnetic-storage I/O is billed per million requests, backup storage is metered in GB-month, and data transfer is billed per GB. Longer backup retention or additional snapshots increases backup storage consumed.

Run these commands

BASH

Run in Bash with AWS CLI credentials authorized for Cost Explorer. It returns monthly UnblendedCost and UsageQuantity grouped by service and usage type. The end date is exclusive and no account filter is applied.

Read RDS cost components with Cost Explorer
#!/usr/bin/env bash
set -euo pipefail

# Replace these with the billing period to review.
START_DATE='YYYY-MM-DD'
END_DATE='YYYY-MM-DD'  # exclusive

aws ce get-cost-and-usage \
  --time-period Start="$START_DATE",End="$END_DATE" \
  --granularity MONTHLY \
  --metrics UnblendedCost UsageQuantity \
  --group-by Type=DIMENSION,Key=SERVICE Type=DIMENSION,Key=USAGE_TYPE \
  --output json \
  --no-cli-pager

How to confirm it

  1. 01

    Choose dates and scope

    Replace START_DATE with the first day to include and END_DATE with the first day after the period. Use a start date no later than today. Confirm the billing context with your billing colleague before treating the output as the intended scope.

  2. 02

    Run the read-only command

    Run the command in Bash, or request the result from your billing colleague. The get-cost-and-usage operation reads billing data and this command makes no resource changes.

  3. 03

    Compare unlike meters separately

    Select the Amazon RDS service rows and compare UnblendedCost by USAGE_TYPE. Keep each UsageQuantity with its returned unit. Do not add instance hours, storage quantities, I/O requests, or IOPS together.

  4. 04

    Request performance evidence

    Ask the database owner to review the provisioned setting or backup policy behind the cost component you want to reduce. Request performance evidence before changing capacity because this command returns billing metrics, not CPU, latency, query, connection, or read-load measurements.

  5. 05

    Confirm the deployment model

    Confirm whether Multi-AZ means a DB instance deployment or a DB cluster. An instance deployment has a synchronous standby that cannot serve reads. A cluster has a writer and two reader instances. Do not infer unused read capacity from a deployment-related billing label.

Before making changes

Assume Cost Explorer is available and the configured billing context matches the intended scope. The command has no account filter, groups by service and usage type, and returns no per-database utilization or amortized cost view. For resource-level attribution, ask an authorized billing colleague about CUR 2.0 with INCLUDE_RESOURCES enabled and line_item_resource_id included. Treat the returned cost and quantity units separately.

Skip this if you already know the billing component and only need CPU, latency, query, connection, or read-load analysis. Use the database team's performance review instead.

Primary sources