管理人Kのひとりごと

デジモノレビューやプログラミングや写真など

EBSのスナップショットはどれくらい圧縮されるのか調べてみた

EBSのスナップショットは圧縮されるとのことだけど、実際どれくらい圧縮されるのかは公開されていないようなので、実際にスナップショットをとって圧縮度合いを確認してみた。

検証環境

[ec2-user@ip-192-168-1-20 ~]$ cat /etc/*release
NAME="Amazon Linux"
VERSION="2"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2"
PRETTY_NAME="Amazon Linux 2"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2"
HOME_URL="https://amazonlinux.com/"
Amazon Linux release 2 (Karoo)

検証方法

1.EC2のインスタンスを作る
2.作成直後のEBSスナップショットを取得
3.請求書のEC2の利用状況から、スナップショットの利用状況をチェックする

EC2のインストール直後

[ec2-user@ip-192-168-1-20 ~]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        475M     0  475M   0% /dev
tmpfs           492M     0  492M   0% /dev/shm
tmpfs           492M  388K  492M   1% /run
tmpfs           492M     0  492M   0% /sys/fs/cgroup
/dev/xvda1       20G  1.3G   19G   7% /
tmpfs            99M     0   99M   0% /run/user/1000

1.3GB/20GB程度使われているみたいですね。

EC2直後のEBSスナップショットの利用状況

請求書 > EC2 > EBSで確認したところ、
「0.274GB」でした。ここで気になるのが、母体がどれくらいか(ボリューム全体なのか、実際に利用している領域なのか)ですね。AWSのアナウンスでは「ボリュームの最初のスナップショットについては、データ全体のコピーが Amazon S3 に保存されます」と書いてありますが、「データ全体」というのがわかりづらい。20GBを指すなら、0.274/20(GB) ≒ 1/73となりますし、実際の利用領域を指すなら、0.274/1.3(GB) ≒ 1/5となりますね。

スナップショットストレージの基盤になるのは、データを Amazon S3 で保存するのに使用された領域の大きさです。Amazon EBS では空のブロックが保存されないため、スナップショットのサイズはボリュームサイズよりもかなり少なくなるはずです。ボリュームの最初のスナップショットについては、データ全体のコピーが Amazon S3 に保存されます。増分スナップショットごとに、Amazon EBS ボリュームの変更部分のみが保存されます。


Snapshotに関しては、EBSボリュームの実サイズがそのまま計算されるのではなく、
圧縮してコピーされ、増分については変更部分のみ保存されます。
(費用をできる限り軽減するようにさせて頂いております。) 

初回分はEBSボリューム内の全データを圧縮した容量となります。
二回目以降変更のあった差分のみを取得するようになっており、圧縮も行われます。

誠に恐れ入りますが、圧縮率はデータ内容によって異なるため、
圧縮後に保存されるデータの実サイズについては、残念ながら明確な情報をお出しすることが出来かねます。

Forums | AWS re:Post