Amazon RDS is an ever growing service. It includes many database engines: MySQL, PostgreSQL, MariaDB, Oracle, Microsoft SQL Server, and Aurora. However, not all database snapshots are treated equally.
If you were to execute the following command:
aws rds describe-db-snapshots
you would receive a list of snapshots from your AWS region. However, you would not receive any snapshots from your Aurora clusters. Why is that?
For the following database engines, RDS snapshots are considered “DB snapshots”:
However, Aurora snapshots are not considered “DB snapshots”. Instead, they are considered “cluster snapshots”. This distinction exists because the “DB snapshots” are created from individual RDS instances, whereas “cluster snapshots” are created from an RDS cluster.
RDS Aurora instances don’t contain any data. They simply facilitate the reading and writing to the Aurora cluster. It’s the Aurora cluster that contains the data. It’s possible for an Aurora cluster to exist without any reader/writer instances. Snapshots are created from the cluster, not the instance.
To get a list of the Aurora cluster snapshots in your AWS region, use the
describe-db-cluster-snapshots command instead:
aws rds describe-db-cluster-snapshots
When working with AWS Aurora cluster snapshots, the AWS CLI commands used to create, manipulate, list, and delete the snapshots are “cluster” versions of the standard commands.
|Operation||DB Snapshots||Cluster Snapshots|
The AWS Management Console goes quite far to hide the differences between DB snapshots and cluster snapshots.
However, when working with the AWS CLI, you must use the correct commands, depending on whether you are wanting Aurora cluster snapshots or other DB snapshots.