[アップデート] Amazon RDS の DB スナップショットで API を使って実データ容量(フルスナップショットサイズ)が取得できるようになりました
いわさです。
Amazon RDS の DB スナップショットの情報は、これまで割り当てストレージ(AllocatedStorage)までしか取れませんでした。20 GiB 割り当てのインスタンスなら、中身に関わらず常に 20 GiB という感じです。
これが先日のアップデートで、そのスナップショットのフルサイズを表す FullSnapshotSizeInBytes が追加されました。AWS CLI では 2.36.34 で取り込まれています。
同じようなアップデートは、以前 EBS スナップショットでもありました。
EBS の時はフルスナップショットサイズが把握できるようになって実際のバックアップにかかっている料金を把握しやすくなったので、今回はそれが RDS でもできるようになった感じだと思います。多分。
実際にスナップショットを何世代が取得して確認してみたので紹介します。
アップデート箇所
追加されたのは FullSnapshotSizeInBytes という 1 つのレスポンスフィールドです。
DB スナップショットを扱う以下 5 つの API のレスポンスに含まれるようになりました。
CreateDBSnapshotCopyDBSnapshotDeleteDBSnapshotModifyDBSnapshotDescribeDBSnapshots
SDK ドキュメントには「DB スナップショットのフルサイズ(バイト単位)」とだけ書かれています。
The full size of the DB snapshot, in bytes.
なお、本日時点では RDS の API リファレンス(DBSnapshot データ型のページ)にはまだこのフィールドの記載が見当たりませんでした。
SDK 側には反映されているので、API リファレンスへの反映はこれからのようです。
従来のスナップショット情報とサイズ
まず、DB スナップショットの情報として従来どんなサイズ系の値が取れるのかを見ておきます。
検証用に MySQL 8.4.9、ストレージ 20 GiB の DB インスタンスを 1 台用意し、数 GB のデータを入れた状態で手動スナップショットを取得しました。
このスナップショットの情報から、サイズや容量に関係しそうなフィールドだけ抜き出してみます。
aws rds describe-db-snapshots \
--db-snapshot-identifier hoge-fss-gen1 \
--query "DBSnapshots[0].{AllocatedStorage:AllocatedStorage,Iops:Iops,StorageThroughput:StorageThroughput,StorageType:StorageType,FullSnapshotSizeInBytes:FullSnapshotSizeInBytes}"
{
"AllocatedStorage": 20,
"Iops": 3000,
"StorageThroughput": 125,
"StorageType": "gp3",
"FullSnapshotSizeInBytes": 14354481152
}
容量に関係する値は、従来からある AllocatedStorage(20 GiB、割り当てストレージ)と、今回加わった FullSnapshotSizeInBytes(14354481152 バイト、約 13.4 GiB)です。
Iops や StorageThroughput は性能値なのでここでは置いておきます。
AllocatedStorage はスナップショットの中身に関係なく常に 20 GiB ですが、FullSnapshotSizeInBytes はそれとは別の値が返っていますね。
なお、FullSnapshotSizeInBytes はスナップショットが available になってから値が入ります。creating の間は null でした。
増分スナップショットでもフルサイズが返る
ここで気になったのが、2 回目以降の増分スナップショットで FullSnapshotSizeInBytes がどうなるかです。
増分スナップショットは前回からの差分だけを保存するので、この値も「差分のサイズ」になるのか、それとも「その時点の全データのサイズ」になるのか、名前だけでは判断できません。
そこで、先ほどのスナップショット(gen1)の後にさらに約 0.5 GiB のデータを追加し、2 つ目のスナップショット(gen2)を取得して比べてみました。
aws rds describe-db-snapshots \
--db-instance-identifier hoge-fullsnapsize-test \
--query "sort_by(DBSnapshots,&SnapshotCreateTime)[].{Snapshot:DBSnapshotIdentifier,Type:SnapshotType,AllocatedStorageGiB:AllocatedStorage,FullSnapshotSizeInBytes:FullSnapshotSizeInBytes}" \
--output table
----------------------------------------------------------------------------------------------------------------
| DescribeDBSnapshots |
+---------------------+--------------------------+-----------------------------------------------+-------------+
| AllocatedStorageGiB | FullSnapshotSizeInBytes | Snapshot | Type |
+---------------------+--------------------------+-----------------------------------------------+-------------+
| 20 | 657981440 | rds:hoge-fullsnapsize-test-2026-08-30-02-01 | automated |
| 20 | 14354481152 | hoge-fss-gen1 | manual |
| 20 | 15917383680 | hoge-fss-gen2 | manual |
+---------------------+--------------------------+-----------------------------------------------+-------------+
後から取った gen2(約 14.8 GiB)は、gen1(約 13.4 GiB)より大きくなっています。
差分だけなら追加した約 0.5 GiB 相当になるはずなので、FullSnapshotSizeInBytes は増分ではなく、その時点のフルサイズを表しているようですね。
これは EBS スナップショットの同名フィールドと同じ考え方です。EBS 側のドキュメントには、増分ではなくフルサイズである旨が書かれています。
This is not the incremental size of the snapshot. This is the full snapshot size and represents the size of all the blocks that were written to the source volume at the time the snapshot was created.
一番上の自動スナップショット(automated、約 627 MiB)は、データを入れる前のインスタンス作成直後に取得されたものです。
その時点ではデータがほとんど入っていなかったので、フルサイズも小さくなっています。手動・自動どちらのスナップショットでも、それぞれの取得時点のフルサイズが入る形ですね。
マネジメントコンソールでは表示されるのか
EBS スナップショットの時はコンソールに「フルスナップショットサイズ」の列が追加されましたが、RDS ではどうなのか気になったので確認してみました。
まずスナップショット一覧の列設定を開いてみます。

選べる列にストレージ(割り当てストレージ)はありますが、フルスナップショットサイズに相当する列は見当たりませんでした。
スナップショットの詳細画面も見てみます。

こちらも DB ストレージ(20 GiB)は表示されていますが、フルスナップショットサイズは項目にありませんでした。
本日時点では、コンソールの一覧・詳細のどちらにもフルスナップショットサイズは表示されず、値を取得できるのは API と CLI だけのようです。
EBS のようにコンソールでも見られると分かりやすいので、ここは今後のアップデートで確認できるようになってほしいですね。
さいごに
本日は Amazon RDS の DB スナップショットで FullSnapshotSizeInBytes が取得できるようになったアップデートを確認してみました。
これまでは割り当てストレージしか分からず、スナップショットが実際にどれくらいの容量なのかは見えませんでした。
これが分かるようになったことで、バックアップの実際の容量を把握してコストの判断に役立てられそうです。
コンソールからも見られるようになると、より手軽に確認できそうですね。







