Azure VM Backup と 3 - 2 - 1 ルール について

こんにちは、アーキテクトのやまぱんです。
補足コメントや質問、<font color="red">**いいね、拡散**</font>、是非お願いします🥺！
間違ってたら<font color="red">**優しく**</font>教えてください！
今回は Azure VM Backup における ３－２－１ルール に ついて調べてみました。

# モチベーション
 Azure Backup (Azure VM バックアップ) って 3-2-1 ルールに準拠してるんだっけ？っていうお話が起こったので調べてみました。

# ３－２－１ルールって？
そもそもここでいう３－２－１ルールについての説明です。
３－２－１ルールとは、データのバックアップにおけるベストプラクティスの一つです。
簡単にいうとバックアップデータを保存する際に以下の点に考慮しましょうという点です。

:::note info
## バックアップにおける 3 - 2 - 1 ルール
+ **3** つのコピー：単純にデータが失われる可能性を減らす
+ **2** 種類のメディア：物理的に異なるメディアを ２ つ 使うことで、一つのメディアが故障しても他のメディアがデータを保護する
+ **1** つの地理的に異なる場所：火災、洪水、盗難などの災害からデータを守る
:::

ここであいまいなのが物理的に異なる場所です。
どれくらい離れていればいいのかが不明瞭ですが、火災、洪水、と考えると Azure の場合ゾーン冗長があればいいし、大規模地震と考えるとリージョン冗長があればOKと考えられます。

#  Azure の基礎知識
本題に入る前に基礎知識のおさらいです。
## リージョンとゾーン
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2982508/9074fe1e-4c9c-ab5e-4386-7793b57e6ed5.png)

+ リージョン / Region
  物理的に隔離されたデータセンターの集合体

+ ゾーン / Zone (可用性ゾーン / Availability Zones)
 リージョン内の個々のデータセンターをさらに分割したもの (1つ以上のデータセンター)
 各ゾーンは独自の電源、冷却、ネットワーク装置をもつ → 障害の発生時に他のゾーンに影響を与えないように設計される

参考) MS Learn - データの冗長性 - Azure Storage
https://learn.microsoft.com/ja-jp/azure/storage/common/storage-redundancy

:::note info
（一部リージョンではゾーンがない、例えば西日本リージョンはゾーンがない(2024/05/現在)）
:::

## 冗長性
ここでは基本的な LRS/ZRS/GRS といった基本的な冗長性について取り扱います。

### LRS：Locally Redundant Storage
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2982508/c0ca2911-4b2d-0c00-1357-47e0f169763e.png)

・１つの データセンター内で３つのコピーを持つ
・イレブンナイン (99.999999999%)以上
・**ハードウェア障害**に対応


### ZRS：Zone-Redundant Storage
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2982508/5a4dafd7-b558-ac7c-3bdb-8d52f34dff6b.png)

・３つの異なるゾーンのDC内でそれぞれ１つのコピーを持つ
・トゥエルブ ナイン (99.9999999999%)以上
・**ゾーン / DC 障害**に対応


### GRS (RA-GRS)：Geo-Redundant Storage/ (Read-Access GRS)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2982508/6529485e-42f0-cdb9-557d-8068c7174afe.png)


・２つのリージョンでそれぞれ **LRS 構成**
・**リージョン障害**に対応
・シックスティーン ナイン (99.99999999999999%) 以上

:::note info
### RA-XXX : Read-Access-XXX について
+ RA-XXX : セカンダリリージョンのデータへのアクセス(読み取りアクセス)が平常時でもできる
+ XXX : 一方 RA-がつかない場合は Azure によってプライマリ リージョンでの障害が宣言されるまで、セカンダリリージョンのデータにはアクセスできない
:::

## Azure VM バックアップ のふたつのバックアップポリシー
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2982508/cf4072c3-69ce-d2d3-5e2d-eed991d75073.png)

+ 基本的にはエンハンスドポリシーを利用するのがよい
新しいサービスへの対応は日に日にアップデートされている


## Azure VM バックアップ のふたつの保存先
+ Azure VM バックアップのシーケンス
① Azure VM バックアップはディスクのスナップショットを取得 (Take Snapshot)：
　デイスクのスナップショット領域にデータを保存 (**スナップショット層**)
② Recovery Services コンテナーへ転送 (Transfer data to vault)：
　ディスクのスナップショット領域に保存したデータをRecovery Services コンテナーに保存（**コンテナー層**)

### スナップショット層 (Snapshot Tier) /運用レベル /
+ バックアップ元の Azure VM (ディスク)のスナップショット領域
+ インスタントリストアに用いられる(インスタント回復スナップショット)
+ 保持期間はコンテナー層に比べて短め
+ 冗長性は LRS(スタンダードポリシー) or ZRS(エンハンスドポリシー)


### コンテナー層 (Vault Tier / Vault-standard)
+ バックアップ専用のストレージ、単にコンテナー や Recovery Services コンテナー、vault とも呼ばれる
+ Azure VM (ディスク) とは物理的に異なる場所(同じリージョン内)
+ スナップショット層のデータがなくなった場合、コンテナー層からのリストア
+ 冗長性はLRS/ZRS/GRS/RA-GRSなど 設定次第(対応状況はリージョンによる)

# Azure VM Backup と ３－２－１ルール
やっと本題です！
### <font color="red">３つ</font>のコピー
元のデータを含めて、データの３つのコピーを作成
* [x]   Azure VM Backup なら・・・スナップショット層、コンテナー層ともに **最低 LRS の冗長性** があるのでそれぞれで満たす

### <font color="red">２種類</font>のメディア
データのコピーを少なくとも２種類の物理的に異なるメディアに保存（内蔵HDDと外付けHDD、クラウドストレージなど）
* [x]  Azure VM Backup なら・・・①スナップショット層、コンテナー層の２種類の異なるメディアに保存されるので満たす（エンハンスドポリシーの場合は１日１回のみのバックアップがコンテナー層に転送されます）
* [x]  Azure VM Backup なら・・・②スナップショット層、コンテナー層のそれぞれの冗長性は**最低 LRS の冗長性**があるのでそれぞれで満たす。

### <font color="red">１つ</font>は地理的に異なる場所(オフサイト)に保管する
少なくとも１つのコピーを地理的に異なる場所（オフサイト）に保管
* [x]   Azure VM Backup なら・・・スナップショット層またはコンテナー層のそれぞれの冗長性が **ZRS や GRS**以上であればゾーンレベルまたはリージョンレベルの地理的に異なる場所にデータを保存されるのでそれぞれで満たす（LRSはハードウェア障害にしか対処できないのでNG）

## まとめ
結論、**冗長性が** **ZRS** **以上**であれば、スナップショット層、コンテナー層それぞれで 3-2-1 ルールを満たすと考えられます。
つまり、Azure VM バックアップ以外のコンテナー層に Azure Backup であれば、Recovery Services コンテナーの冗長性が ZRS 以上であれば、Recovery Services コンテナーのデータで 3 - 2 - 1 ルール を満たすと考えられます。

+ コンテナーにデータを持つものは以下の公式ブログをご確認ください。 
参考) MS Learn - Recovery Services コンテナーとバックアップ コンテナーについて
https://jpabrs-scem.github.io/blog/AzureBackupGeneral/RSV_BV/

# よだん
ランサムウェアはマルウェアのようなものではなくて、VPN装置とかRDP経由の脆弱性などついた侵入が大半らしいです。

ref: .NETラボ 勉強会 2024年7月 で お聞きしました

https://dotnetlab.connpass.com/event/323373/

# 関連

https://learn.microsoft.com/ja-jp/azure/security/fundamentals/backup-plan-to-protect-against-ransomware

# 謝辞
この記事を作成するにあたり、親愛なる同僚・仲間にアドバイスをいただきました、感謝します。