Azure VM のバックアップ - 新ポータルでの VM のバックアップ方法について
!!!重要!!!
当記事は、Azure バックアップ機能が、リソース マネージャー用に未実装の時期に代替案として記載した方法となります。今は、Azure バックアップ機能を使っていただくことが便利ですので、以下をご参照ください。
Linux 仮想マシンのバックアップ・リストア (ARM編)
https://blogs.technet.microsoft.com/jpaztech/2016/10/13/linux-backuprestore/
タイトルに Linux とありますが、Windows も同様の手順でバックアップ・リストアが出来ます。
Azure Backup の各機能の概要
/ja-jp/azure/backup/backup-introduction-to-azure-backup
念のため、過去記事も残しておきます。方法自体は有効です。
※ 2/29 V2 の仮想マシンについてのリストア方法を追記。それに伴いレイアウトを少し変更しました。
こんにちは、日本マイロソフトの石井です。
クラシック ポータル (https://manage.windowsazure.com/) では、Recovery Services というとても便利なバックアップの機能がありましたが、新ポータル (https://portal.azure.com/) にて、Azure の VM の簡単なバックアップ方法が無いのか?というご質問を多くいただきます。確かに、新ポータルでの利用において、安心して使うためのバックアップの方法は不可欠です。
現在、新ポータルで利用可能な UI ベースのバックアップ (Recovery Services という機能) を急ピッチで開発しています。プレビューが公開され次第、ポータル上に表示されますし、本ブログでもアナウンスしますのでご注目ください。
さて、Recovery Services の機能がリリースされるまでの間、どのようにしたらいいのかについて、ご紹介します。
バックアップの方法
以下は、バックアップを取るまでの手順になります。
- Azure 仮想マシン (IaaS VM) のバックアップ方法について
https://blogs.technet.com/b/askcorejp/archive/2016/01/19/azure-iaas-vm.aspx
"V2 の仮想マシンのバックアップ方法について" の項目を参照ください。
リストアの方法
リストアの方法で最も簡単なのは、JSON テンプレートを用いるものです。
- 新ポータルの画面左の上部から、[+新規] をクリックします。続いて、"Marketplace を検索" の検索欄に、"テンプレート" と入力します。[テンプレートのデプロイ] というものが検索結果にでますので、そちらを選択します。
- [テンプレートのデプロイ] の画面が右に現れるので、[作成] をクリックします。
- [テンプレートの編集] をクリックすると、画面右にテキスト編集欄があらわれます。こちらの内容にて、以下の URL にある JSON ファイル (定義ファイル) をそのままコピーし、[保存] します。
https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/201-vm-from-specialized-vhd/azuredeploy.json
※ GitHub より、"Azure/azure-quickstart-templates" を用いています。
https://github.com/Azure/azure-quickstart-templates/blob/master/201-vm-from-specialized-vhd/azuredeploy.json
4. [パラメーターの編集] にて、以下を入力してください。
- LOCATION: Japan East ※データセンターを入力
- OSDISKVHDURI: VHD ファイルの URL (※コピーした後のもの)
- OSTYPE: Windows に変更
- VMSIZE: Standard_DS2 等を入力。Premium ストレージを使うには DS シリーズである必要があります。
- VMNAME: VM に任意の名前をつけます。
最後に、[作成] ボタンを押すと、VM の作成が開始されます。
補足: リストアを PowerShell で行う場合
リストアの方法について、上記のテンプレートではなく、Azure PowerShell で行う場合、以下のサンプル スクリプトを起点にカスタマイズしていただくことが良いかと思います。VHD の URL は、バックアップを取った VHD のものに置き換えてお試しください。
#パラメータ
$SubscriptionId = "xxxxxx" #サブスクリプション ID
$VmName = "xxxxx" #仮想マシン名
$VmSize = "xxxx" #Standard_A1など
$VhdUri = "https://xxxx.blob.core.windows.net/vhds/xxxx.vhd" #VHD ファイルパス
$VnetName = "myvnet" #仮想ネットワーク名
$AddressPrefix = "192.168.1.0/25" #プレフィックス
$SubnetName = "mysubnetx" #サブネット名
$SubnetPrefix = "192.168.1.0/27" #プレフィックス
$ResourceGroupName = "xxxxx" #リソースグループ名
$Location = "japanwest" #リージョン名
$NicName = "mynic" #NIC名
# ログインとサブスクリプション指定
Login-AzureRmAccount
Select-AzureRmSubscription -SubscriptionId $SubscriptionId
#仮想ネットワークの作成
$Vnet = New-AzureRmVirtualNetwork -Location $Location -Name $VnetName -ResourceGroupName $ResourceGroupName -AddressPrefix $AddressPrefix
Add-AzureRmVirtualNetworkSubnetConfig -AddressPrefix $SubnetPrefix -Name $SubnetName -VirtualNetwork $Vnet
Set-AzureRmVirtualNetworkSubnetConfig -AddressPrefix $SubnetPrefix -Name $SubnetName -VirtualNetwork $Vnet
Set-AzureRmVirtualNetwork -VirtualNetwork $Vnet
# 仮想マシン設定の定義
$Vm = New-AzureRmVMConfig -Name $VmName -VMSize $VmSize
$Vm = Set-AzureRmVMOSDisk -VM $Vm -VhdUri $VhdUri -Name "OSDisk" -CreateOption attach -Windows -Caching ReadWrite
# 対象サブネット情報取得
$Subnet = (Get-AzureRmVirtualNetwork -ResourceGroupName $ResourceGroupName -Name $VnetName).Subnets[0]
# NIC 新規作成
$Nic = New-AzureRmNetworkInterface -Name $NicName -ResourceGroupName $ResourceGroupName -Location $Location -Subnet $Subnet
# 作成した NIC を追加
$Nic = Get-AzureRmNetworkInterface -ResourceGroupName $ResourceGroupName -Name $NicName
$Vm = Add-AzureRmVMNetworkInterface -VM $Vm -NetworkInterface $Nic
$Vm.NetworkProfile.NetworkInterfaces.Item(0).Primary = $true
# 仮想マシンの新規作成
New-AzureRmVM -ResourceGroupName $ResourceGroupName -Location $Location -VM $Vm -Verbose
Azure PowerShell については、以下の参考情報が分かりやすいです。是非ご参考ください。
- Azure PowerShell チートシート
https://www.syuheiuda.com/?p=3489
// teppei