AWS Backup for VMware の利用コストを実環境で検証してみた

# 1. はじめに

AWS Backupの主な利用コストはバックアップストレージ使用量の従量課金であり、どれだけのデータがAWS Backupのストレージ領域に保管・保護されているかで決まります。

https://aws.amazon.com/jp/backup/pricing/

計算式は単純に`「バックアップデータが消費するAWS Backupの使用済みストレージ容量(月間平均GB)」x「単価($/GB)」`なのですが、VMware仮想マシン(VM)をバックアップした際にカウントされる`「バックアップデータが消費するAWS Backupの使用済みストレージ容量」`は対象のVMおよびそのデータ種別、形式などによって変動すると想定されます。

例えば、VMへのディスク割り当ては90GBだがOSからみた使用中ストレージは10GBのみ、vSphereから見ると実際の物理ストレージ使用量は20GBなど、関連しそうなパラメーター複数ありそうです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864151/83502f8a-fc98-315d-7fad-68b47757dac3.png)
上図は AWS Black Belt 資料から抜粋。(参考資料)

今回は１つの参考値として、私がVMware Cloud on AWS環境上の仮想マシンのバックアップをAWS Backupで取得し、1ヶ月間の課金情報から`「バックアップデータが消費する使用済みAWS Backupのストレージ容量」`を算出してみたものを備忘録として残します。

また実利用の際にリストアやバックアップデータのリージョン転送などを実施する際には、上図の課金が別途発生するのでその点はご留意ください。

:::note warn
本記事は2023年11月-12月、2024年1月-3月頃に個人的に実施したテスト環境におけるアウトプット値をそのまま記載しています。

参考にされる場合には環境依存の要素があること、今後のアップデートによって結果が異なる可能性があること、また結果の解釈には個人の見解も含まれる点をご承知ください。あくまで参考データの１つとして取り扱いお願いします。

AWS利用料に関わる重要なポイントですので実際に導入検討する際には、実環境において事前に検証いただくことを推奨します。
:::

AWS BackupのVMware仮想環境におけるセットアップ方法や活用手法などは、本記事下部の参考資料をご参照ください。

# 2. 試してみた

次の環境で、2023年12月分のAWS Backup利用料金を確認しました。

:::note warn
ややこしいですがGBとGiBを併記し、「GiB」をメインとして以下記載していきます。Windows OS、vSphereの表記はGBとなりますが、一般にAWSサービスの課金はGiB (gibibytes) ベースとなります。
:::

## テスト環境

### VMware仮想環境

| VMware 仮想環境 | VMware Cloud on AWS |
|:-:|:-:|
| SDDCバージョン  | 1.24  |
| vSphereバージョン  | 8.0  |
| サイズ  | i3.metal * 1ホスト  |
| リージョン  | N.Virginia  |
| 備考  | VMware Cloud on AWS 環境では Thin Provisioning (シンプロビジョニング) のみ有効で、Thick Provisioning (シックプロビジョニング) は構成不可。|

### バックアップ対象VMware仮想マシン
| OS | Windows Server 2019 |
|:-:|:-:|
| VM Hardwareバージョン  | 19  |
| 割り当て済みディスク (Cドライブのみ)  | `90GB` `(83.819GiB)` (`Thin Provisioning`) |
| 備考  | Cドライブ内に追加約10GB分のファイルを格納 (主にISOファイルなど) 。バックアップ時には対象仮想マシンを電源オフ状態とした。 |

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864151/81937c15-d461-aea2-5c9c-821e28e4db2b.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864151/9022de63-c801-684b-2b18-9f122996973c.png)

### AWS Backup
| バックアップ取得日時 | 2023/11/17 |
|:-:|:-:|
| バックアップ保管期間  | `2023/11/17 - 2024/01/20`  |
| ストレージティア  | `Warm` |
| リージョン  | N.Virginia  |
| 備考  | 保管期間中は増分バックアップ、バックアップ対象VMの追加、コールドストレージへの移行などは一切行わず、対象VMのバックアップのWarmストレージでの保管のみAWS Backup利用料金が発生するように調整済み。  |

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864151/e9a38ef8-f78c-f20f-83b3-a6179f0635b2.png)


#### AWS CLIから確認する詳細な値
AWS CloudShellでAWS CLIを実行して、より細かい値も取得してみました。

https://docs.aws.amazon.com/cli/latest/reference/backup/describe-recovery-point.html

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864151/a3d667c3-3e87-2ebc-bf38-af3e7573e9e2.png)

`BackupSizeInBytes`はAWS Backupが認識するバックアップサイズです。
GB換算では96.6GBとなりますが、GiB表記として再度計算してみます。

> 96,636,764,160 bytes = `90 (GiB)`

https://www.google.com/search?q=96636764160+bytes+in+gib

となり、GiB表記ではちょうど 90 GiB となっています。


## 実際のAWS Backup利用料金 (2023年12月分)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864151/86f872e0-5653-a951-14bf-e2764f1d5f33.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864151/63f881b2-9d26-1956-63a4-520212c1dcb5.png)

`2023/12/1-12/31`の1ヶ月分のAWS Backup利用料金は、`$0.95`でした。
これをN.Virgninia regionのAWS Backup Warmストレージ単価(`$0.05/GiB`)で除算すると、

> 0.95(USD) ÷ 0.05(USD/GB) = `19.0 (GiB)`

本テストにおいて、実際に「バックアップデータが消費するAWS Backupの使用済みストレージ容量(月間平均GiB)」としてカウントされたのは、`19.0 GiB`という計算結果になりました。

関連する数値を下表にまとめてみます。

| 対象VMに割り当てたディスク容量 (シンプロビジョニング) | Windows OSが使用済みと認識したストレージ使用量 | `VMware vSphereが認識した使用済みストレージ使用量` | `AWS Backupが課金対象とした消費ストレージ使用量` |
|:-:|:-:|:-:|:-:|
| 90 GB (83.8 GiB) | 18.7 GB (17.4 GiB) |  `18.3 GiB` (19.66 GB) | `19.0 GiB` (17.7 GB) |

このようにしてみると少なくとも今回のテストにおいては、`Windows OSが認識したストレージ使用量`もしくは`VMware vSphereからみた実際のストレージ使用量`とほぼ同じデータ容量がAWS Backupで保管・課金されたと考えられます。

# 3. 考察と個人的な見解

今回のテストケースでは、AWS BackupでVMware仮想マシン(VM)をバックアップした際に、AWS Backupで課金対象となるデータ容量は対象VMの`論理的な割り当て容量(90GB)`ではなく、`VMware vSphereが認識した使用済みストレージ使用量(18.3GiB)`もしくは`Windows OSが使用済みと認識したストレージ使用量(18.7GiB)`とほぼ同じサイズ(`19.0GiB`)であったと確認できました。

[VMware仮想マシンの実態は仮想マシン(VMDK)ファイル](https://docs.vmware.com/jp/VMware-vSphere/7.0/com.vmware.vsphere.vm_admin.doc/GUID-CEFF6D89-8C19-4143-8C26-4B6D6734D2CB.html)であることを踏まえると、AWS Backupの課金対象となる消費ストレージ使用量は、`VMware vSphereが認識した使用済みストレージ使用量`(今回の対象VMでは19GiB)に比例する値になるのではないかと思います。

裏付けとなりそうな情報を探してみると、AWS re:Postで次のような投稿がありました。

https://repost.aws/questions/QUl-Y2_6A7Q9ORAx2dlUOfzg/aws-backup-service-deduplication-and-compression

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864151/3c3a33dc-1b86-a6af-b89a-523ea9153975.png)

曰く、AWS Backupは保管するバックアップデータの圧縮・重複排除をサポートしていないようです。ということはバックアップ対象VMについて、`VMware vSphereが認識した使用済みストレージ使用量`からあまり変化なく、同じぐらいの容量が`AWS Backupが課金対象とした消費ストレージ使用量`となることにも納得感がありそうです。

また末尾にLinux仮想マシンのバックアップで追加検証結果を記載していますが、同様に`シンプロビジョニング環境`においては`対象VMに割り当てたディスク容量`ではなく、`ストレージの実使用量`に紐づきそうだという調査結果となりました。


:::note warn
繰り返しとなりますが、本記事は2023年11月-12月、2024年1月-3月頃に個人的に実施したテスト環境におけるアウトプット値をそのまま記載しています。

参考にされる場合には環境依存の要素があること、今後のアップデートによって結果が異なる可能性があること、また結果の解釈には個人の見解が含まれる点をご承知ください。あくまで参考データの１つとして取り扱いお願いします。

AWS利用料に関わる重要なポイントですので実際に導入検討する際には、実環境において事前に検証いただくことを推奨します。
:::

# 4. 参考資料

## AWS公式ガイド、セミナー資料など

https://docs.aws.amazon.com/ja_jp/aws-backup/latest/devguide/vm-backups.html

https://aws.amazon.com/jp/blogs/news/getting-started-with-aws-backups-for-vmware-cloud-on-aws/

https://aws.amazon.com/jp/blogs/news/simplifying-operations-for-vmware-workloads-using-aws-backup-and-vmware-cloud-on-aws/

https://www.youtube.com/watch?v=xoOJ-1timik

https://aws.amazon.com/jp/blogs/storage/a-guide-to-budgeting-for-aws-backup-in-vmware-virtual-environments/

## 関連するブログ

https://qiita.com/sanjushi003/items/7d250088875463005dd3

https://qiita.com/sanjushi003/items/bda4ee765fafb8fffc9f

https://qiita.com/sanjushi003/items/ba67935cdc4c5b090a20

https://qiita.com/sanjushi003/items/7e3b484ff3e92f0a6d5c


# 5. おまけ: 追加検証 (別リージョン、別OS)

次の環境で、2024年2月分のAWS Backup利用料金を確認しました。

## テスト環境

### VMware仮想環境

| VMware 仮想環境 | VMware Cloud on AWS |
|:-:|:-:|
| SDDCバージョン  | 1.24  |
| vSphereバージョン  | 8.0  |
| サイズ  | i3.metal * 1ホスト  |
| リージョン  | Oregon  |
| 備考  | VMware Cloud on AWS 環境では Thin Provisioning (シンプロビジョニング) のみ有効で、Thick Provisioning (シックプロビジョニング) は構成不可。|

### バックアップ対象VMware仮想マシン
| OS | Ubuntu 20.04.4 LTS |
|:-:|:-:|
| VM Hardwareバージョン  | 19  |
| 割り当て済みディスク | `1,024GB` (`Thin Provisioning`) |
| 備考  | 特にファイル追加や書き込みなどは実施せず、ほぼデフォルト状態。バックアップ時には対象仮想マシンを電源オフ状態とした。 |

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864151/d7bea785-490b-2682-fabd-40c830806c08.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864151/07e5631c-f995-290b-411f-0d46c4fe4c71.png)


### AWS Backup
| バックアップ取得日時 | 2024/01/23 |
|:-:|:-:|
| バックアップ保管期間  | `2024/01/23 - 2024/03/03`  |
| ストレージティア  | `Warm` |
| リージョン  | Oregon  |
| 備考  | 保管期間中は増分バックアップ、バックアップ対象VMの追加、コールドストレージへの移行などは一切行わず、対象VMのバックアップのWarmストレージでの保管のみAWS Backup利用料金が発生するように調整済み。  |

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864151/7256aee1-e912-368d-799b-e6abd7dad436.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864151/ab3ee06b-f913-78d4-b9f5-61f22b87e165.png)

## 実際のAWS Backup利用料金 (2024年02月分)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864151/ea1cbd80-744d-65a4-34fd-c36baa81580c.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864151/6d1aca58-f9ee-b2fc-bbc8-7b3ecc6def49.png)

`2024/02/01-02/29`の1ヶ月分のAWS Backup利用料金は、`$1.38`でした。
これをOregon regionのAWS Backup Warmストレージ単価(`$0.05/GB`)で除算すると、

> 1.38(USD) ÷ 0.05(USD/GB) = `27.6 (GB)`

本テストにおいて、実際に「バックアップデータが消費するAWS Backupの使用済みストレージ容量(月間平均GB)」としてカウントされたのは、`27.6 GB`という計算結果になりました。

関連する数値を下表にまとめてみます。

| 対象VMに割り当てたディスク容量 (シンプロビジョニング) | Ubuntu Linuxが使用済みと認識したストレージ使用量 | `VMware vSphereが認識した使用済みストレージ使用量` | `AWS Backupが課金対象とした消費ストレージ使用量` |
|:-:|:-:|:-:|:-:|
| `1024 GB`  | 9.3 GB  |  11.27 GB | `27.6 GB`  |

今回のテストにおいては、`Ubuntu Linuxが認識したストレージ使用量`もしくは`VMware vSphereからみた実際のストレージ使用量` と比べて15-18GB程度のギャップでデータ容量がAWS Backupで保管・課金されたと考えられます。

ただ実際に割り当てたディスク容量`1024 GB`からみると`27.6 GB`は`約2.7%`でしかないため、やはりAWS Backupの課金対象としては少なくとも`シンプロビジョニング環境`においては`対象VMに割り当てたディスク容量`ではなく、`ストレージの実使用量`に紐づくと想定されます。