[アップデート] EBSスナップショットのフルスナップショットサイズ容量が一目で分かるようになりました!
こんにちは!AWS事業本部のおつまみです。
Amazon EBS でアップデートがあったのでご紹介します!
3行まとめ
- EBSスナップショットの実データ容量がコンソールで直接確認できるようになった
- これまで見えなかったスナップショットの総容量が一目で把握可能に
- コスト管理の正確性向上と運用改善の両方を実現
前提
Amazon EBSとは何か?
Amazon EBS (Elastic Bolume Store) は、EC2 にアタッチして使用するブロックストレージサービスです。
EC2 インスタンスにおける OS やアプリケーション、データの保管場所など様々な用途で利用されます。
簡単に言うと、EC2インスタンスに接続できる「外付けハードディスク」のようなものです。
特徴についてはこちらの記事をご参考ください。
EBSスナップショットとは
EBSボリュームのバックアップを「スナップショット」と呼びます。
特徴として、EBSスナップショットでは増分バックアップが採用され、第1世代目はフルバックアップを取得し、2代目以降は前の世代から増えた分のみバックアップを取得していく方式です。
EBSスナップショットのコストについて
EBSスナップショットは基本スタンダードクラスのS3に保存され、GB単位で課金されます。
- EBS スナップショットのストレージ料金:スタンダード USD 0.05/1か月あたりのGB
参考:ハイパフォーマンスブロックストレージの料金 – Amazon EBS の料金 – Amazon Web Services
EBSスナップショットのコストの特徴として、「初回フルスナップショットと増分にだけ料金が発生する」という点です。料金の試算例を記載します。
例えばこのようにスナップショットを取得しているとします。
- 条件
- EBSボリュームのサイズ:100GB
- ボリューム内の実際のデータサイズ:20GiB
- 保管するスナップショット数:31個
- スナップショット毎の増分サイズ:1GB
この条件で1日1回、日次でスナップショットを取得した場合、
1日目:20 GB (初回フルスナップショット)
2日目:20 GB + 1 GB(増分スナップショット)
3日目:20 GB + 1 GB * 2 (増分スナップショット)
・・・
と徐々に容量が増加していき、31日目には20 GB + 1 GB * 30 で 50 GBとなります。
31日間の平均スナップショットサイズは、
- 初日: 20GB
- 最終日: 50GB (20GB + 30GB)
- 平均 = (20GB + 50GB) ÷ 2 = 35GB
この35GBが1ヶ月分の平均スナップショットサイズとなります。
そのため、料金計算は、月額料金は約1.75 USD となります。
- 35GB × 0.05 USD/GB-month = 1.75 USD/month
解説
今まで何が困っていたか?
アップデート前までは、画面上にボリュームサイズしか表示されませんでした。
そのため、以下のような課題がありました。
1. コスト面での課題
- スナップショットの実際の総容量が分かりにくい
- スナップショットにかかっているコスト把握が困難
- 将来のコスト予測が立てづらい
2. 運用面での課題
- バックアップの正常性確認が困難
- 実データ量が見えないため、想定通りバックアップされているか確認しづらい
- 増分の妥当性を判断できない
- 異常の早期発見が困難
- 急激な容量増加の検知ができない
例えば、以下のような日次バックアップケースを見てみます。
- ボリュームサイズ:100GB
- 実データ:20GB
- 毎日の更新:1GB
変更前の表示ではコンソール上は以下のようにしか確認できません。
- 1日目:100GB(ボリュームサイズのみ表示)
- 2日目:100GB(ボリュームサイズのみ表示)
- 3日目:100GB(ボリュームサイズのみ表示)
実際のデータとコストは以下のようになります。
- 1日目:20GB × 0.05 USD = 1.00 USD/月
- 2日目:(20GB + 1GB) × 0.05 USD = 1.05 USD/月
- 3日目:(20GB + 1GB + 1GB) × 0.05 USD = 1.10 USD/月
このように画面上ではボリュームサイズ(100GB)しか見えないため、以下の点で課題がありました。
- コスト面:実際の使用容量とコストを把握するのが非常に困難
- 運用面:バックアップの正常性確認や容量の異常検知が困難
なお、EBS Direct API を用いてEBSフルスナップショットやスナップショット間のサイズを求める方法はございましたが、実装の手間や運用負荷が課題でした。
詳細はこちらをご参照下さい。
今回のアップデートで何が嬉しいか
今回のアップデートにより、実際のフルスナップショットサイズ容量が確認できるようになったため、以下のような改善が実現しました。
1. コスト管理の改善
- スナップショットにかかるコストを即座に把握可能
- 将来のコスト予測が容易に
2. 運用管理の効率化
- バックアップの正常性を容易に確認可能
- 異常な容量増加を早期に検知
先ほどの具体例で見てみます。
日次バックアップケース
- ボリュームサイズ:100GB
- 実データ:20GB
- 毎日の更新:1GB
変更後のスナップショット一覧表示
- snap-001:フルスナップショットサイズ:20GB
- snap-002:フルスナップショットサイズ:21GB
- snap-003:フルスナップショットサイズ:22GB
図にするとこのようになります。
よって、実際の使用容量が明確となり、コスト計算が容易(フルサイズ × 0.05 USD)かつ容量の増加傾向が把握しやすくなります。また運用面でも異常な容量変化がないかなど即座に確認できるようになりました。
確認してみた
今回はマネジメントコンソールで確認してみました。
EC2コンソールからスナップショット画面へ遷移します。
この時点では、「フルスナップショットサイズ」が列に出ていませんでした。
画面右の歯車を押下し、「フルスナップショットサイズ」を有効にします。
すると、スナップショットの全量が表示されるようになりました!
分かりにくいため、1つのボリュームに絞ってみます。
こちらは日次で取得しており、1週間保存のライフサイクルールを設定しているスナップショットです。
スナップショットコストを試算してみた
今回確認したスナップショットのコストを試算してみます。
- 条件
- ボリュームサイズ:100 GiB
- フルスナップショットサイズ:約21.27 GiB ~ 21.37 GiB
- 期間:2025/02/07 ~ 2025/02/13(7日分)
- 日々の増分:約0.01-0.02 GiB
7日分のスナップショットすべての合計は149.22 GiB
1日あたりの平均サイズ:149.22 ÷ 7 = 21.32 GiB
月額コスト
= 平均サイズ(21.32 GiB)× スナップショット数(7個)× 料金(0.05 USD/GB/月)
= 21.32 × 7 × 0.05
= 7.46 USD/月
非常に簡単に計算できますね!
また日々の増分が非常に小さく(0.01-0.02 GiB)、異常な容量変化がないことも確認できました。
最後に
今回は、EBSスナップショットのフルスナップショットサイズ容量が確認できるようになったアップデートをご紹介しました!
スナップショットの実データ容量が可視化されたことで、コスト管理と運用の両面で大きな改善が期待できます。ぜひ皆様の環境でも確認してみてください!
以上、おつまみ(@AWS11077)でした!