こんにちはますのです。
AzureVMの構築が完了し、今度はインスタンスのバックアップをしたいという話にたどり着きました。
AWSでは「AWS Backup」やSDKを使ったPHPでのバックアップなどをやったことがありましたが、Azureではどうなるのだろうと調べてみました。
AzureでもAWSと同様にインスタンスを丸ごとバックアップできる仕組みがあるようで、そちらをやっていきたいと思います。
Azureでのバックアップ方法は2つ
- Azure Backupによるインスタンス丸ごとバックアップ
- ディスクのスナップショット取得
手法としてはこの2つ。
ディスクのスナップショット取得は「ディスク単体」となります。
例えば、複数のディスクをAzureVMにアタッチしていた場合、ひとつずつスナップショット取得を行い、復元時には再度アタッチする必要があります。
複数ディスクを設定している場合はシステム状況によっては不整合が発生する必要があるため注意が必要です。
Azure Backupはディスクがいくつアタッチされていても、構成をそのままバックアップが取れるためディスクのことを考えなくても良い状況を作れます。
管理上ではAzureBackupが簡単なので、今回はAzureBackupを採用しました。
そのため、あまり容量を利用しない場合はスナップショットの方が金額が抑えることが可能です。AzureBackupは利用容量に関係なく、アタッチされているディスクの容量が課金されるため状況によって使い分けましょう。
詳しく試算したい場合は料金計算ツールで確認すると良しです。
https://azure.microsoft.com/ja-jp/pricing/calculator/?service=backup
Azure Backupの使い方
今回の手順はMicrosoft Docsを参考にしました。
手順:Recovery Services コンテナーに Azure VM をバックアップする
ステップ1:バックアップ用のリソース「Recovery Serviceコンテナー」を作成する
- Azureポータル>「リソースの作成」をクリック
- 検索バーに「Backup an Site Recovery」と入力し表示された項目をクリック>「作成」ボタンをクリック
- 以下をそれぞれ設定>「確認および作成」をクリック>「作成」をクリック
・サブスクリプション – リソースグループ:環境に合わせて設定
※バックアップしたい仮想マシンと同じリソースグループになるかと。
・資格情報コンテナー名:任意のコンテナー名を設定
・リージョン:バックアップしたい仮想マシンがあるリージョン
リージョン:西日本で作成された仮想マシンをバックアップしたい場合、コンテナーも「西日本」に設定する必要があります。
AzureBackupは仮想マシンと同一のリージョンのものしかバックアップを保存出来ないようです。なお、バックアップを復元する時はCRRオプションを使うことで「セカンダリリージョン限定」でリージョン間の復元が出来るようになったようです。
情報:https://azure.microsoft.com/ja-jp/blog/cross-region-restore-crr-for-azure-virtual-machines-using-azure-backup/
手順:https://docs.microsoft.com/ja-jp/azure/backup/backup-create-rs-vault#set-cross-region-restore
しばらくすると「Recovery Services コンテナー」の作成が完了します。
ステップ2:仮想マシンのバックアップ設定を有効化する
ステップ1で作成した「Recovery Services コンテナー」の管理画面を表示します。
- 「+ バックアップ」をクリック
- 「ストレージレプリケーションがgeo冗長に…」をクリック
- ストレージレプリケーションの種類、リージョンをまたがる復元を設定し「保存」をクリック
- 「バックアップ」をクリック
Azureの推奨としては「ストレージレプリケーションの種類:geo冗長」となっているようです。
しかし、バックアップデータを保存する際に「BLOB」ストレージが利用されるので、インスタンス全体の容量分の金額が別途発生します。
※1000GBのAzureVM、GRSの場合:\9,000程度
→\1,120×2+(スナップショット:ディスク利用分)+1,000GB×\5.0176=\6,137+α復元データのデータ持続性に応じて、各自設定しましょう。
LRS(ローカル冗長) GRS(geo冗長) RA-GRS(リージョンをまたがる復元:有効) ストレージ (GB/月) ¥2.5088/GB ¥5.0176/GB ¥6.3728/GB - 「新しいポリシーを作成する」をクリック
- バックアップポリシーの設定を環境に合わせて設定をする
※保持期間の部分が世代管理の日数となります。
※Azure Backup リソースグループは省略した場合、「AzureBackupRG_japaneast_1」のようにバックアップ用のリソースグループが自動で作成されます。インスタント リストアとは?
バックアップする時の動作として、「①仮想マシン→②スナップショット→③コンテナ(BLOB)」に段階的に保存されるそうな。
リストアする時に「②スナップショット」からも復元出来るよ!そのほうが復元時間短縮出来るよ!
1日~5日分は保存出来るけど、スナップショット保存の代金が別途掛かっちゃうよ!こんな感じで認識しました。
詳しい仕組みは他サイトの記事で確認あれです。
参考:https://www.softbanktech.co.jp/special/blog/cloud_blog/2019/0021/ - 「仮想マシン:追加」をクリック
- バックアップしたい仮想マシンを選択>「OK」をクリック
- 最後に「バックアップの有効化」をクリック
仮想マシンにバックアップが有効化されたか確認する
念のためバックアップが有効化されたかを確認します。
- Azureポータル>仮想マシン>対象のマシン名をクリック
- 左カラム:バックアップをクリック
- バックアップ状態:バックアップの事前チェックが「成功」となっていればOKです
初回のバックアップを取ってみたい場合は左上の「今すぐバックアップ」をクリックすることで即時で取得することが可能です。
初回のバックアップは「フルバックアップ」を取得するため少し時間が掛かるようです。
2回目以降は増分バックアップとして取得するため、データの書き換えが少なければ時間が短縮される仕組みとなります。
参考:https://cloud.nissho-ele.co.jp/blog/azure-backup_verification/
30日分取得したら金額結構あがるのかしら…。と思いましたが、差分は1.5倍程度とそこまで値上がりはしない様子です。
AWSではAWS Backupが出来る前に構築したので、SDKをインストールして自動バックアップ&世代管理をするphpを導入してたのです。
管理用に別途金額掛かるところは気を付けないとですが、GUIでポチポチするだけでバックアップの世代管理が出来るのはやはり良いと感じましたです。