Check RDS instance utilization and storage choices
On this page
Use Cost Explorer to review RDS billing meters by service and usage type, then investigate performance separately. Treat deployment-related labels as billing labels to inspect, not proof of a distinct Multi-AZ charge.
Why this is worth a look
Amazon RDS documents separate billing components for DB instance hours, provisioned storage, I/O requests, provisioned IOPS, backup storage, and data transfer. Instance hours are based on DB instance class, storage is provisioned capacity per GiB-month, provisioned IOPS is billed at the provisioned rate regardless of IOPS consumed, and backup storage is metered in GB-month. Multi-AZ DB instance deployments use a synchronous standby that cannot serve read traffic, while Multi-AZ DB clusters have one writer and two readable instances. The command returns UnblendedCost and UsageQuantity for the selected Cost Explorer scope, not CPU, query, or read-load measurements or complete invoice attribution.
Start with this query
BASHReturns unprojected Cost Explorer JSON grouped by service and usage type for one billing period. Inspect the returned service labels to select Amazon RDS rows without relying on an unverified response projection.
#!/usr/bin/env bash
set -euo pipefail
# Set these to the billing period you want 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-pagerHow to confirm it
- 01
Choose a billing period
Set START_DATE to the inclusive first date and END_DATE to the first date after the period you want to inspect. The command uses monthly granularity.
- 02
Run the read-only command
Execute it with credentials that can call the documented Cost Explorer get-cost-and-usage operation. The command requests UnblendedCost and UsageQuantity only, and makes no resource changes.
- 03
Select the RDS rows
In the JSON response, use the returned SERVICE and USAGE_TYPE group keys to identify Amazon RDS entries. Read each usage type separately rather than assuming a deployment-related label is a distinct Multi-AZ charge.
- 04
Compare unlike meters carefully
Keep cost amounts and usage quantities separate, and do not add quantities with different units. Use this billing view to identify cost components, then use performance telemetry for CPU, latency, query, connection, or read-load questions.
Before making changes
Assumes Cost Explorer is available to the credentials and that you want UnblendedCost and UsageQuantity for the Cost Explorer data visible in the current billing context. The command returns grouped service totals, not a complete invoice, discount, amortization, or allocation view. It does not establish payer, management-account, member-account, or linked-account attribution. For resource-level CUR 2.0 line items, enable INCLUDE_RESOURCES and use its line_item_resource_id column. Read the returned usage type labels instead of assuming identical labels across your scope.