RDS
AWS
Cloud Storage
Database Management
Monitoring Tools

How to know RDS free storage

Master System Design with Codemia

Enhance your system design skills with over 120 practice problems, detailed solutions, and hands-on exercises.

Introduction

The standard way to check free storage on an Amazon RDS DB instance is the CloudWatch metric FreeStorageSpace. AWS publishes that metric automatically for RDS instances, and it is the metric you should use for dashboards, alarms, and autoscaling decisions.

Where to Find Free Storage

You can see free storage in two common places:

  • the RDS console under monitoring for a DB instance
  • the CloudWatch console under the AWS/RDS namespace

The metric name is FreeStorageSpace, and AWS reports it in bytes. If you want GiB, convert it in your dashboard or metric math.

Checking from the AWS Console

In the RDS console:

  1. open the target DB instance
  2. go to the monitoring section
  3. find the FreeStorageSpace graph

In the CloudWatch console:

  1. open Metrics
  2. choose RDS
  3. select your DB instance identifier
  4. graph FreeStorageSpace

This is the quickest way to answer "How much room is left right now?"

Checking with the AWS CLI

If you want a scriptable way to inspect the metric, query CloudWatch directly:

bash
1aws cloudwatch get-metric-statistics \
2  --namespace AWS/RDS \
3  --metric-name FreeStorageSpace \
4  --dimensions Name=DBInstanceIdentifier,Value=mydb \
5  --statistics Average \
6  --start-time 2026-03-11T00:00:00Z \
7  --end-time 2026-03-11T23:59:59Z \
8  --period 300

That returns datapoints in bytes. You can convert them in a shell, application, or dashboard.

If you prefer Python with boto3:

python
1import boto3
2from datetime import datetime, timedelta, timezone
3
4cloudwatch = boto3.client("cloudwatch")
5
6end = datetime.now(timezone.utc)
7start = end - timedelta(hours=1)
8
9response = cloudwatch.get_metric_statistics(
10    Namespace="AWS/RDS",
11    MetricName="FreeStorageSpace",
12    Dimensions=[
13        {"Name": "DBInstanceIdentifier", "Value": "mydb"}
14    ],
15    StartTime=start,
16    EndTime=end,
17    Period=300,
18    Statistics=["Average"],
19)
20
21for point in sorted(response["Datapoints"], key=lambda x: x["Timestamp"]):
22    gib = point["Average"] / 1024 / 1024 / 1024
23    print(point["Timestamp"], round(gib, 2), "GiB")

Set an Alarm Before Storage Becomes Critical

Looking at the current number is useful, but alarms matter more. A CloudWatch alarm can notify you before the instance runs low on storage:

json
1{
2  "AlarmName": "rds-low-storage",
3  "MetricName": "FreeStorageSpace",
4  "Namespace": "AWS/RDS",
5  "Statistic": "Average",
6  "Period": 300,
7  "EvaluationPeriods": 2,
8  "Threshold": 10737418240,
9  "ComparisonOperator": "LessThanThreshold"
10}

This example triggers when free space falls below 10 GiB. The right threshold depends on workload growth rate, not just the absolute number.

Understand Storage Autoscaling

If storage autoscaling is enabled, AWS can automatically increase allocated storage when low-space conditions are met. AWS documentation notes that one trigger is low FreeStorageSpace, combined with duration and growth conditions.

That does not mean you should ignore monitoring. Autoscaling helps prevent outages, but you still want alarms so you can notice unusual growth or approach the maximum storage threshold you configured.

Aurora Is Different

Be careful with terminology. Standard RDS instances expose FreeStorageSpace, but Aurora uses a different storage model and different metrics such as VolumeBytesUsed and, in some contexts, FreeLocalStorage. If someone says "RDS" but they actually mean Aurora, the metric you want may be different.

So the safe rule is:

  • RDS instance: check FreeStorageSpace
  • Aurora: check the Aurora-specific storage metrics for the cluster or instance role you care about

Interpreting the Number Correctly

Free storage is not the same as freeable memory or IOPS headroom. Developers sometimes monitor the wrong metric and conclude storage is healthy when the real problem is memory pressure or log growth.

Also remember:

  • values are in bytes
  • graphs are sampled over time, not just one instant
  • a temporary drop may matter if the workload is growing fast
  • backup, logs, and engine-specific behavior can affect storage use

Trend matters more than a single point reading.

Common Pitfalls

  • Looking only at allocated storage in the RDS instance settings instead of the live FreeStorageSpace metric.
  • Forgetting that CloudWatch reports bytes, which makes the numbers look larger or smaller than expected.
  • Assuming Aurora uses the same storage metric names as standard RDS instances.
  • Relying on storage autoscaling without setting alarms for abnormal growth.
  • Checking the metric once instead of watching the trend over time.

Summary

  • For standard Amazon RDS instances, the key metric is FreeStorageSpace.
  • You can view it in the RDS console, CloudWatch console, AWS CLI, or via boto3.
  • Set CloudWatch alarms so you catch storage problems before they become outages.
  • Autoscaling can help, but it is not a substitute for monitoring.
  • If you are using Aurora, verify the correct Aurora storage metric instead of assuming FreeStorageSpace applies the same way.

Course illustration
Course illustration

All Rights Reserved.