こんにちは。新人クラウドエンジニアの三醍醐です。
今回は、管理ディスクのVirtual Machineを別リージョンに複製する方法について書いていきたいと思います。
目次
VMのリージョン間複製方法について
Azure Virtual Machine(以下VM)のリージョン間での複製方法は大きく分けて以下の2つです。
- ディスクコピー
- Azure Site Recovery
このうち、ディスクコピーは”通常の方法”では非管理ディスクのみの対応となり、Azure Site Recovery(以下ASR)は同一地理クラスター内のASR対応リージョンにのみの対応となります。(リージョンのサポート:https://docs.microsoft.com/ja-jp/azure/site-recovery/azure-to-azure-support-matrix#region-support)
しかし、PowershellもしくはAzure CLIを利用することで、管理ディスクでもリージョン間でディスクコピーを行うことが可能となります。
Powershellを利用したVHDコピー
今回のシナリオ:東日本リージョンで稼働しているサーバーを停止させずに、米国リージョンに複製。

1.稼働しているVMのスナップショットを取得します。

2.取得したスナップショットをエクスポートします。出力されたURLは必ず控えておいて下さい。


3.エクスポートしたVHDファイルを、複製先のBLOBストレージへ出力します。
以下のPowerShellコマンドを実行します。
※追記 Azure Storage Explorerを使うことで、もっと簡単にコピー&ペーストできました。
$subscriptionId = (Get-AzSubscription -SubscriptionName "サブスクリプション名").Id #サブスクリプションID取得
Set-AzContext -SubscriptionId $subscriptionId #サブスクリプションID指定
$targetRSG = "US-RSG" #ターゲットリソースグループ
$targetStorage = "ustgtstorage" #ターゲットストレージアカウント
$targetContainer = "vhds" #ターゲットコンテナー
$targetLocation = "westus" #ターゲットリージョン
New-AzResourceGroup -Name $targetRSG -Location $targetLocation #ターゲットリソースグループ作成
New-AzStorageAccount -ResourceGroupName $targetRSG -AccountName $targetStorage -Location $targetLocation -SkuName Standard_LRS #ターゲットストレージアカウント作成
$storageKey = Get-AzStorageAccountKey -ResourceGroupName $targetRSG -Name $targetStorage #ストレージアカウントキー取得
$storageCtx = New-AzStorageContext -StorageAccountName $targetStorage -StorageAccountKey $storageKey[0].Value #ストレージアカウントコンテクスト取得
New-AzStorageContainer -Name $targetContainer -Context $storageCtx #コンテナー作成
$destDisk = "TESTVMdisk.vhd" #複製先ディスク名
$sourceSASurl = "https://md-1234567890.blob.core.windows.net/..." #複製元VHDファイルのURL
Start-AzStorageBlobCopy -AbsoluteUri $sourceSASurl -DestBlob $destDisk -DestContainer $targetContainer -DestContext $storageCtx #BLOBへコピー
Get-AzStorageBlobCopyState -Container $targetContainer -Blob $destDisk -Context $storageCtx -WaitForComplete #コピー状況取得


データディスクも同様の方法で出力します。
4.管理ディスクの作成を行います。「すべてのサービス」から「ディスク」を選択して、追加を行います。


5.移行先リージョンを選択した後、「ソースの種類」から「ストレージBLOB」を選び、「ソースBLOB」からVHDファイルを指定します。


6.作成されたディスクから「VMの作成」を行えば、VMの複製完了です。データディスクはVMの設定から追加して下さい。


まとめ
今回のリージョン間でのVMの複製について、エンドユーザー様からお問い合わせを受けたため纏めていた情報を記事にしました。
リージョンを跨いだ複製に関しての情報が意外と少なく、またAzureRMからAzへ移行した後の情報もまだなかった為、ちょうどよい機会でした。
この記事を参考にVMのクローンを世界中に作ろーんとしていただければ嬉しいです。

三醍醐
PCゲーム、サバゲ、TRPGを趣味にする典型的サブカルオタクです。PCパーツ代と装備品代で毎月末苦しんでおります。
記事について・製品についてのお問い合わせは下記フォームよりお願いいたします。