Azure Backup手法まとめ

Azure Backup便利なんですが、バックアップやリストアの手法がいくつかあったり注意点があったりするので、よく使うであろうバックアップ・リストア手法を纏めました。

# Azure Backupってなに？
* Azure Virtual MachineをAgentレスでバックアップ可能なサービス
* 基本はAzure VMを丸ごとバックアップする。複数ディスクがあっても全て取得する
* Agentを導入することで、フォルダ/ファイル単位にバックアップが可能
* バックアップスケジュールを設定することで、定期的な取得が可能
* アプリケーション整合性の担保
* オンプレのデータもAzureにバックアップ可能
* 裏でAzure Storageに格納されるが、ユーザはStorageの存在は意識しない（但しStorage種別LRS/GRSを選択することが可能）

# VM単位バックアップ - VM単位復元

## 概要
* VM丸ごとバックアップして、丸ごとリストアする手法です。
* 複数ディスクがアタッチされていても全て取得します。
* リストアは別仮想マシンとして復元します。
* VMと異なるリージョンのAzure Backupには取得できません。
* 復元も同一リージョンからのみです。
* Windows/Linux両方共対応してます。

## イメージ図
![image.png](https://qiita-image-store.s3.amazonaws.com/0/180335/d7585f0c-dcde-d08b-053e-20ffb8fbd95d.png)


# VM単位バックアップ - ファイル単位復元

## 概要
* VM丸ごとバックアップして、フォルダ/ファイル単位でリストアする手法です。
* リストア時は、exe/shellをダウンロードして、該当サーバで実行することで新規デバイスにiSCSIマウントします。
* Windows/Linux両方共対応してます。
* バックアップ対象とは異なるサーバでリストアすることも可能です。
* リストアはAzureだけでなくオンプレでも可能です。

## イメージ図
![image.png](https://qiita-image-store.s3.amazonaws.com/0/180335/cc20d054-76f3-f9c6-6252-a5b5b2abb98a.png)

## リストアイメージ
* ダウンロードしたexeを実行すると、
![image.png](https://qiita-image-store.s3.amazonaws.com/0/180335/76668eb9-eecc-a300-f855-e613f5132a6a.png)
<br>

* 新規ドライブレターでiSCSIマウントされます。バックアップ取得元のCドライブ配下が見えてます。
* ここから任意のフォルダ/ファイルを復元します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/180335/a1adedaa-d895-dcc5-dfd4-14af60a819f1.png)

# Agentバックアップ/復元

## 概要
* Agentをインストールしてフォルダ/ファイル単位にバックアップします。
* バックアップ先のAzure Backupは別のリージョンでも可能です。
* バックアップ取得元サーバは、AzureVMだけでなくオンプレでも可能です。
* なので、ファイル遠隔地保管としても使えます。
* バックアップ対象とは異なるサーバでリストアすることも可能です。(Agentのインストールと、Azure Backupにネットワーク接続可能であること）
* Windowsのみ対応です。

## イメージ図
![image.png](https://qiita-image-store.s3.amazonaws.com/0/180335/b02633a2-1380-978f-91f4-6d17b617d18b.png)

# VM単位とAgentの違い
2つのバックアップ手法の違いを纏めます。
要件に合わせて選定することになります。

| 項目            | VM単位          | Agent        |
| --------------- | -------------- | ------------ |
|取得単位 |VM丸ごと。複数ディスク含む。  |任意のフォルダ/ファイル単位  |
|対応OS            |Windows/Linux  |Windows  |
|復元単位       |別VMを新規作成して戻す <br> フォルダ/ファイル単位で戻す  |フォルダ/ファイル単位で戻す  |
|整合性             |Windows：アプリケーション整合性(VSS連動) <br> Linux：ファイルシステム整合性(前後スクリプト導入でアプリケーション整合性可能)  |アプリケーション整合性(VSS連動)  |
|OS停止中     |可  |不可  |
|リージョン        |バックアップ元と先が同一リージョンのみ  |バックアップ元と先が異なるリージョン可能  |

# Azure Backup注意点
* 共通
    * バックアップ取得先のStorage種別（LRS/GRS）は、一度取得し始めたら変更できない。（デフォルトはGRS）
* VM単位
    * VM丸ごとなので容量によっては転送に時間が掛かる（業務停止はないが忙しくない時間帯を選んだほうが良い）
    * ~~1ディスク当たり1,023GBが取得制限（VM全体ではなく1ディスクです）~~
    * 1ディスク当たりの最大容量が4,095GBに増えました。
* Agent
    * バックアップ時のキャッシュ保存先としてCドライブ以外の割当が必要（一時ディスクのDドライブ不可）
    * 格納先はPaaSのAzure Backupなので、オンプレからの転送時に注意が必要（Azure BackupはvNet内に配置出来ないため）
        * インターネット：○
        * インターネットVPN：✕
        * ExpressRoute(Private Peering)：✕
        * ExpressRoute(Public Peering)：○
    ![image.png](https://qiita-image-store.s3.amazonaws.com/0/180335/9f98ba16-33dc-7c87-07d8-71bcd3044ffc.png)

# ディスクスナップショット
Azure Backupとは異なりますが、VMのバックアップ手法としてスナップショットも選択肢としてあります。
Azure Backupの制限である1,023GB以上のディスクバックアップが必要な場合はこちらが選択肢になるかと思います。

## スナップショット取得
* マーケットプレイスからSnapshotを選択します
![image.png](https://qiita-image-store.s3.amazonaws.com/0/180335/d40d1a29-47b3-0ad1-3113-7e4f764b9152.png)
<br>

* ソースディスクを選びます
![image.png](https://qiita-image-store.s3.amazonaws.com/0/180335/b440e62f-ed06-3193-a1d1-a835b39da723.png)
<br>

* アカウントの種類にHDDかSSDを選ぶことができますが、これはあくまでもSnapshotのディスクの種類です。ここでHDDを選んだからといったリストアしたときのVMがHDDになるわけではありません。
* SSDを選ぶとSnapshotからのリストア時の速度に影響するようです。が、通常はHDDで問題ないです。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/180335/3de3133d-8c72-b5af-1e1e-ee8f288b2d52.png)
<br>

* スナップショットなので数秒で取得完了します
![image.png](https://qiita-image-store.s3.amazonaws.com/0/180335/c43aef10-bf23-2f96-7d02-30a04686dae2.png)

## スナップショットリストア
* ManagedDiskを作成します。
* ソースの種類に取得したスナップショットを選択します
![image.png](https://qiita-image-store.s3.amazonaws.com/0/180335/30aa210c-b9af-411e-a891-4062705ea186.png)
<br>

* ManagedDiskができたら、このディスクから新規VMを作成します
![image.png](https://qiita-image-store.s3.amazonaws.com/0/180335/956eeb65-3da4-2201-f8c8-176b75289d3d.png)
<br>

* 以降は普通にVMを作成します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/180335/22afd1c2-d973-be8e-5600-72ad0ec66e7a.png)

## スナップショット注意点
* スナップショット取得の自動実行や世代管理はユーザ側で考慮する必要があります。（Azure Automationを使うのがよさそう）
* スナップショットはディスク単位の取得になるため、複数ディスクをアタッチしたVMでは整合性に注意して静止点の取り方を検討する必要があります。

# 番外編：Backupコンテナーが消せない？
バックアップアイテムが残っている場合は、Azure Backupを削除することはできません。
消そうとすると以下のようなエラーメッセージが出力されます。
```
Vault cannot be deleted as there are existing resources within the vault. Please ensure there are no backup items, protected servers or backup management servers associated with this vault. Unregister the following containers associated with this vault before proceeding for deletion : [xxx],[yyy]. Unregister all containers from the vault and then retry to delete vault
```

## VM単位バックアップの削除
* 概要ページのバックアップアイテムを選択します
![image.png](https://qiita-image-store.s3.amazonaws.com/0/180335/b9691488-ea90-7fb6-d3b0-cb8d7d741b7b.png)
<br>

* Azure Virtual Machineを選択します
![image.png](https://qiita-image-store.s3.amazonaws.com/0/180335/7ef1c064-5d1e-4734-cad6-e76ed04336bc.png)
<br>

* バックアップアイテムが表示されるので、選択後、項目表示→バックアップの停止の順に選びます
![image.png](https://qiita-image-store.s3.amazonaws.com/0/180335/285ea42d-d63d-c611-ba55-f4f05f9e4d43.png)
<br>

* バックアップデータの削除を選んで削除します
![image.png](https://qiita-image-store.s3.amazonaws.com/0/180335/411b1969-6d28-83c0-3fb2-de0e17c4e22d.png)

## Agentバックアップの削除
* バックアップインフラストラクチャを選択します
![image.png](https://qiita-image-store.s3.amazonaws.com/0/180335/acc34dab-25b3-b633-4511-a8131dd612a7.png)
<br>

* 保護されたサーバー、Azure Backup Agentの順に選択します
![image.png](https://qiita-image-store.s3.amazonaws.com/0/180335/85face0b-3718-47be-d8d0-664f4708ede5.png)

* 対象サーバを選択し、削除します
![image.png](https://qiita-image-store.s3.amazonaws.com/0/180335/663f0eaa-0f0e-580c-ef52-00313ab308ac.png)